From b97fa382ce8dd9c965528b9c02dde69e0b371410 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jan 2017 15:52:37 +0000 Subject: [PATCH 1/1] Import linux_4.9.2-2.debian.tar.xz [dgit import tarball linux 4.9.2-2 linux_4.9.2-2.debian.tar.xz] --- .gitignore | 27 + README.Debian | 56 + README.source | 239 + bin/abiupdate.py | 213 + bin/buildcheck.py | 258 + bin/check-patches.sh | 26 + bin/gencontrol.py | 577 + bin/genorig.py | 170 + bin/getconfig.py | 27 + bin/git-tag-gpg-wrapper | 33 + bin/kconfig.py | 41 + bin/no-depmod | 18 + bin/stable-update | 126 + bin/stable-update.sh | 2 + bin/test-patches | 101 + bin/uscan-hook | 19 + certs/benh@debian.org.cert.pem | 21 + changelog | 24728 ++++++++++++++++ compat | 1 + config.defines.dump | 2204 ++ config/alpha/config | 1087 + config/alpha/config.alpha-generic | 10 + config/alpha/config.alpha-smp | 16 + config/alpha/defines | 20 + config/amd64/config | 214 + config/amd64/defines | 22 + config/amd64/none/defines | 6 + config/amd64/rt/defines | 3 + config/arm64/config | 770 + config/arm64/defines | 18 + config/arm64/none/defines | 3 + config/armel/config | 10 + config/armel/config.marvell | 790 + config/armel/defines | 34 + config/armhf/config | 1318 + config/armhf/config.armmp-lpae | 21 + config/armhf/defines | 27 + config/config | 7113 +++++ config/defines | 68 + config/featureset-rt/config | 9 + config/featureset-rt/defines | 7 + config/hppa/config | 705 + config/hppa/config.parisc | 26 + config/hppa/config.parisc-smp | 28 + config/hppa/config.parisc64 | 17 + config/hppa/config.parisc64-smp | 58 + config/hppa/defines | 28 + config/i386/config | 556 + config/i386/config.686 | 87 + config/i386/config.686-pae | 54 + config/i386/defines | 35 + config/i386/none/defines | 7 + config/i386/rt/defines | 3 + config/kernelarch-arm/config | 117 + config/kernelarch-mips/config | 68 + config/kernelarch-mips/config.loongson-3 | 97 + config/kernelarch-mips/config.malta | 532 + config/kernelarch-mips/config.mips32r2 | 10 + config/kernelarch-mips/config.mips32r6 | 10 + config/kernelarch-mips/config.mips64r2 | 10 + config/kernelarch-mips/config.mips64r6 | 10 + config/kernelarch-mips/config.octeon | 180 + config/kernelarch-powerpc/config | 999 + config/kernelarch-powerpc/config-arch-64 | 182 + config/kernelarch-powerpc/config-arch-64-be | 106 + config/kernelarch-powerpc/config-arch-64-le | 37 + config/kernelarch-sparc/config | 627 + config/kernelarch-sparc/config-smp | 7 + config/kernelarch-sparc/config-up | 5 + config/kernelarch-x86/config | 2057 ++ config/m68k/README.build | 26 + config/m68k/config | 893 + config/m68k/defines | 17 + config/mips/config | 8 + config/mips/defines | 39 + config/mips64/config | 8 + config/mips64/defines | 29 + config/mips64el/config | 12 + config/mips64el/defines | 37 + config/mips64r6/config | 8 + config/mips64r6/defines | 22 + config/mips64r6el/config | 8 + config/mips64r6el/defines | 22 + config/mipsel/config | 8 + config/mipsel/defines | 47 + config/mipsn32/defines | 4 + config/mipsn32el/defines | 4 + config/mipsn32r6/defines | 4 + config/mipsn32r6el/defines | 4 + config/mipsr6/config | 8 + config/mipsr6/defines | 32 + config/mipsr6el/config | 8 + config/mipsr6el/defines | 32 + config/or1k/defines | 4 + config/powerpc/config.powerpc | 113 + config/powerpc/config.powerpc-smp | 5 + config/powerpc/defines | 30 + config/powerpcspe/config | 32 + config/powerpcspe/defines | 17 + config/ppc64/defines | 21 + config/ppc64el/defines | 19 + config/s390/defines | 4 + config/s390x/config | 212 + config/s390x/defines | 21 + config/sh3/defines | 4 + config/sh4/config | 66 + config/sh4/config.sh7751r | 174 + config/sh4/config.sh7785lcr | 228 + config/sh4/defines | 27 + config/sparc/defines | 4 + config/sparc64/defines | 27 + config/tilegx/defines | 4 + config/x32/defines | 4 + control | 7089 +++++ control.md5sum | 107 + copyright | 164 + hyperv-daemons.README.Debian | 14 + hyperv-daemons.hv-fcopy-daemon.init | 110 + hyperv-daemons.hv-fcopy-daemon.service | 10 + hyperv-daemons.hv-kvp-daemon.init | 109 + hyperv-daemons.hv-kvp-daemon.service | 9 + hyperv-daemons.hv-vss-daemon.init | 109 + hyperv-daemons.hv-vss-daemon.service | 9 + hyperv-daemons.install | 1 + installer/alpha/kernel-versions | 2 + .../alpha/modules/alpha-generic/ata-modules | 1 + .../alpha/modules/alpha-generic/btrfs-modules | 1 + .../modules/alpha-generic/cdrom-core-modules | 1 + .../alpha/modules/alpha-generic/crc-modules | 1 + .../modules/alpha-generic/crypto-dm-modules | 1 + .../modules/alpha-generic/crypto-modules | 1 + .../alpha/modules/alpha-generic/event-modules | 1 + .../alpha/modules/alpha-generic/ext4-modules | 1 + .../alpha/modules/alpha-generic/fat-modules | 1 + .../alpha/modules/alpha-generic/fb-modules | 4 + .../alpha/modules/alpha-generic/fuse-modules | 1 + .../alpha/modules/alpha-generic/input-modules | 1 + .../alpha/modules/alpha-generic/isofs-modules | 1 + .../alpha/modules/alpha-generic/jfs-modules | 1 + .../alpha/modules/alpha-generic/kernel-image | 1 + .../alpha/modules/alpha-generic/loop-modules | 1 + .../alpha/modules/alpha-generic/md-modules | 1 + .../alpha/modules/alpha-generic/mouse-modules | 1 + .../modules/alpha-generic/multipath-modules | 1 + .../alpha/modules/alpha-generic/nbd-modules | 1 + .../alpha/modules/alpha-generic/nic-modules | 1 + .../modules/alpha-generic/nic-pcmcia-modules | 1 + .../modules/alpha-generic/nic-shared-modules | 1 + .../modules/alpha-generic/nic-usb-modules | 1 + .../alpha-generic/nic-wireless-modules | 1 + .../alpha/modules/alpha-generic/pata-modules | 1 + .../modules/alpha-generic/pcmcia-modules | 1 + .../alpha/modules/alpha-generic/ppp-modules | 1 + .../alpha/modules/alpha-generic/sata-modules | 1 + .../modules/alpha-generic/scsi-core-modules | 1 + .../alpha/modules/alpha-generic/scsi-modules | 1 + .../modules/alpha-generic/serial-modules | 1 + .../modules/alpha-generic/squashfs-modules | 1 + .../alpha/modules/alpha-generic/srm-modules | 1 + .../alpha/modules/alpha-generic/usb-modules | 1 + .../modules/alpha-generic/usb-serial-modules | 1 + .../modules/alpha-generic/usb-storage-modules | 1 + .../modules/alpha-generic/virtio-modules | 1 + .../alpha/modules/alpha-generic/xfs-modules | 1 + .../alpha/modules/alpha-generic/zlib-modules | 1 + installer/alpha/package-list | 22 + installer/amd64/TODO | 3 + installer/amd64/kernel-versions | 2 + installer/amd64/modules/amd64/acpi-modules | 2 + installer/amd64/modules/amd64/ata-modules | 2 + installer/amd64/modules/amd64/btrfs-modules | 1 + .../amd64/modules/amd64/cdrom-core-modules | 2 + installer/amd64/modules/amd64/crc-modules | 1 + .../amd64/modules/amd64/crypto-dm-modules | 1 + installer/amd64/modules/amd64/crypto-modules | 1 + installer/amd64/modules/amd64/efi-modules | 1 + installer/amd64/modules/amd64/event-modules | 1 + installer/amd64/modules/amd64/ext4-modules | 1 + installer/amd64/modules/amd64/fat-modules | 2 + installer/amd64/modules/amd64/fb-modules | 3 + .../amd64/modules/amd64/firewire-core-modules | 1 + installer/amd64/modules/amd64/fuse-modules | 1 + installer/amd64/modules/amd64/hyperv-modules | 1 + installer/amd64/modules/amd64/i2c-modules | 1 + installer/amd64/modules/amd64/input-modules | 1 + installer/amd64/modules/amd64/isofs-modules | 1 + installer/amd64/modules/amd64/jfs-modules | 1 + installer/amd64/modules/amd64/kernel-image | 1 + installer/amd64/modules/amd64/loop-modules | 2 + installer/amd64/modules/amd64/md-modules | 2 + .../amd64/modules/amd64/mmc-core-modules | 1 + installer/amd64/modules/amd64/mmc-modules | 1 + installer/amd64/modules/amd64/mouse-modules | 1 + .../amd64/modules/amd64/multipath-modules | 1 + installer/amd64/modules/amd64/nbd-modules | 1 + installer/amd64/modules/amd64/nic-modules | 1 + .../amd64/modules/amd64/nic-pcmcia-modules | 1 + .../amd64/modules/amd64/nic-shared-modules | 1 + installer/amd64/modules/amd64/nic-usb-modules | 1 + .../amd64/modules/amd64/nic-wireless-modules | 1 + installer/amd64/modules/amd64/ntfs-modules | 1 + installer/amd64/modules/amd64/pata-modules | 2 + installer/amd64/modules/amd64/pcmcia-modules | 1 + .../modules/amd64/pcmcia-storage-modules | 1 + installer/amd64/modules/amd64/ppp-modules | 2 + installer/amd64/modules/amd64/sata-modules | 1 + .../amd64/modules/amd64/scsi-core-modules | 4 + installer/amd64/modules/amd64/scsi-modules | 1 + installer/amd64/modules/amd64/serial-modules | 1 + installer/amd64/modules/amd64/sound-modules | 1 + installer/amd64/modules/amd64/speakup-modules | 1 + .../amd64/modules/amd64/squashfs-modules | 1 + installer/amd64/modules/amd64/udf-modules | 1 + installer/amd64/modules/amd64/uinput-modules | 1 + installer/amd64/modules/amd64/usb-modules | 1 + .../amd64/modules/amd64/usb-serial-modules | 1 + .../amd64/modules/amd64/usb-storage-modules | 2 + installer/amd64/modules/amd64/virtio-modules | 1 + installer/amd64/modules/amd64/xfs-modules | 2 + installer/amd64/package-list | 14 + installer/arm64/kernel-versions | 2 + installer/arm64/modules/arm64/ata-modules | 1 + installer/arm64/modules/arm64/btrfs-modules | 1 + .../arm64/modules/arm64/cdrom-core-modules | 2 + installer/arm64/modules/arm64/crc-modules | 1 + .../arm64/modules/arm64/crypto-dm-modules | 1 + installer/arm64/modules/arm64/crypto-modules | 1 + installer/arm64/modules/arm64/efi-modules | 1 + installer/arm64/modules/arm64/event-modules | 1 + installer/arm64/modules/arm64/ext4-modules | 1 + installer/arm64/modules/arm64/fat-modules | 1 + installer/arm64/modules/arm64/fb-modules | 1 + installer/arm64/modules/arm64/fuse-modules | 1 + installer/arm64/modules/arm64/i2c-modules | 2 + installer/arm64/modules/arm64/input-modules | 1 + installer/arm64/modules/arm64/isofs-modules | 1 + installer/arm64/modules/arm64/jfs-modules | 1 + installer/arm64/modules/arm64/kernel-image | 7 + installer/arm64/modules/arm64/leds-modules | 1 + installer/arm64/modules/arm64/loop-modules | 1 + installer/arm64/modules/arm64/md-modules | 1 + installer/arm64/modules/arm64/mmc-modules | 1 + .../arm64/modules/arm64/multipath-modules | 1 + installer/arm64/modules/arm64/nbd-modules | 1 + installer/arm64/modules/arm64/nic-modules | 9 + .../arm64/modules/arm64/nic-shared-modules | 1 + installer/arm64/modules/arm64/nic-usb-modules | 1 + .../arm64/modules/arm64/nic-wireless-modules | 1 + installer/arm64/modules/arm64/ppp-modules | 1 + installer/arm64/modules/arm64/sata-modules | 7 + .../arm64/modules/arm64/scsi-core-modules | 1 + installer/arm64/modules/arm64/scsi-modules | 1 + .../arm64/modules/arm64/squashfs-modules | 1 + installer/arm64/modules/arm64/udf-modules | 1 + installer/arm64/modules/arm64/uinput-modules | 1 + installer/arm64/modules/arm64/usb-modules | 3 + .../arm64/modules/arm64/usb-storage-modules | 1 + installer/arm64/modules/arm64/virtio-modules | 1 + installer/arm64/modules/arm64/xfs-modules | 1 + installer/arm64/package-list | 8 + installer/armel/kernel-versions | 2 + .../armel/modules/armel-marvell/btrfs-modules | 1 + .../modules/armel-marvell/cdrom-core-modules | 2 + .../armel/modules/armel-marvell/crc-modules | 1 + .../modules/armel-marvell/crypto-dm-modules | 1 + .../modules/armel-marvell/crypto-modules | 1 + .../armel/modules/armel-marvell/event-modules | 2 + .../armel/modules/armel-marvell/ext4-modules | 1 + .../armel/modules/armel-marvell/fat-modules | 1 + .../armel/modules/armel-marvell/fb-modules | 3 + .../armel/modules/armel-marvell/fuse-modules | 1 + .../armel/modules/armel-marvell/input-modules | 3 + .../armel/modules/armel-marvell/ipv6-modules | 1 + .../armel/modules/armel-marvell/isofs-modules | 1 + .../armel/modules/armel-marvell/jffs2-modules | 1 + .../armel/modules/armel-marvell/jfs-modules | 1 + .../armel/modules/armel-marvell/kernel-image | 1 + .../armel/modules/armel-marvell/leds-modules | 2 + .../armel/modules/armel-marvell/loop-modules | 1 + .../armel/modules/armel-marvell/md-modules | 1 + .../armel/modules/armel-marvell/minix-modules | 1 + .../armel/modules/armel-marvell/mmc-modules | 2 + .../armel/modules/armel-marvell/mouse-modules | 1 + .../armel/modules/armel-marvell/mtd-modules | 2 + .../modules/armel-marvell/multipath-modules | 1 + .../armel/modules/armel-marvell/nbd-modules | 1 + .../armel/modules/armel-marvell/nic-modules | 2 + .../modules/armel-marvell/nic-shared-modules | 2 + .../modules/armel-marvell/nic-usb-modules | 1 + .../armel/modules/armel-marvell/ppp-modules | 2 + .../armel/modules/armel-marvell/sata-modules | 2 + .../modules/armel-marvell/scsi-core-modules | 1 + .../modules/armel-marvell/squashfs-modules | 1 + .../armel/modules/armel-marvell/udf-modules | 1 + .../modules/armel-marvell/uinput-modules | 1 + .../armel/modules/armel-marvell/usb-modules | 2 + .../modules/armel-marvell/usb-serial-modules | 1 + .../modules/armel-marvell/usb-storage-modules | 1 + .../armel/modules/armel-marvell/zlib-modules | 1 + installer/armel/package-list | 11 + installer/armhf/kernel-versions | 2 + .../armhf/modules/armhf-armmp/ata-modules | 1 + .../armhf/modules/armhf-armmp/btrfs-modules | 1 + .../armhf/modules/armhf-armmp/crc-modules | 1 + .../modules/armhf-armmp/crypto-dm-modules | 1 + .../armhf/modules/armhf-armmp/crypto-modules | 1 + .../armhf/modules/armhf-armmp/efi-modules | 1 + .../armhf/modules/armhf-armmp/event-modules | 1 + .../armhf/modules/armhf-armmp/ext4-modules | 1 + .../armhf/modules/armhf-armmp/fat-modules | 1 + .../armhf/modules/armhf-armmp/fb-modules | 3 + .../armhf/modules/armhf-armmp/fuse-modules | 1 + .../armhf/modules/armhf-armmp/input-modules | 1 + .../armhf/modules/armhf-armmp/isofs-modules | 1 + .../armhf/modules/armhf-armmp/jfs-modules | 1 + .../armhf/modules/armhf-armmp/kernel-image | 17 + .../armhf/modules/armhf-armmp/leds-modules | 1 + .../armhf/modules/armhf-armmp/loop-modules | 1 + .../armhf/modules/armhf-armmp/md-modules | 1 + .../armhf/modules/armhf-armmp/mmc-modules | 1 + .../armhf/modules/armhf-armmp/mtd-modules | 3 + .../modules/armhf-armmp/multipath-modules | 1 + .../armhf/modules/armhf-armmp/nbd-modules | 1 + .../armhf/modules/armhf-armmp/nic-modules | 14 + .../modules/armhf-armmp/nic-shared-modules | 1 + .../armhf/modules/armhf-armmp/nic-usb-modules | 1 + .../modules/armhf-armmp/nic-wireless-modules | 1 + .../armhf/modules/armhf-armmp/pata-modules | 1 + .../armhf/modules/armhf-armmp/ppp-modules | 1 + .../armhf/modules/armhf-armmp/sata-modules | 9 + .../modules/armhf-armmp/scsi-core-modules | 1 + .../armhf/modules/armhf-armmp/scsi-modules | 2 + .../modules/armhf-armmp/squashfs-modules | 1 + .../armhf/modules/armhf-armmp/udf-modules | 1 + .../armhf/modules/armhf-armmp/uinput-modules | 1 + .../armhf/modules/armhf-armmp/usb-modules | 14 + .../modules/armhf-armmp/usb-storage-modules | 1 + .../armhf/modules/armhf-armmp/virtio-modules | 1 + .../armhf/modules/armhf-armmp/zlib-modules | 1 + installer/armhf/package-list | 9 + installer/hppa/kernel-versions | 3 + .../modules/hppa-parisc64-smp/ata-modules | 1 + .../modules/hppa-parisc64-smp/btrfs-modules | 1 + .../hppa-parisc64-smp/cdrom-core-modules | 1 + .../modules/hppa-parisc64-smp/crc-modules | 1 + .../hppa-parisc64-smp/crypto-dm-modules | 1 + .../modules/hppa-parisc64-smp/crypto-modules | 1 + .../modules/hppa-parisc64-smp/event-modules | 1 + .../modules/hppa-parisc64-smp/ext4-modules | 1 + .../modules/hppa-parisc64-smp/fat-modules | 1 + .../hppa/modules/hppa-parisc64-smp/fb-modules | 6 + .../modules/hppa-parisc64-smp/fuse-modules | 1 + .../modules/hppa-parisc64-smp/input-modules | 1 + .../modules/hppa-parisc64-smp/isofs-modules | 1 + .../modules/hppa-parisc64-smp/jfs-modules | 1 + .../modules/hppa-parisc64-smp/kernel-image | 1 + .../modules/hppa-parisc64-smp/loop-modules | 1 + .../hppa/modules/hppa-parisc64-smp/md-modules | 1 + .../modules/hppa-parisc64-smp/mouse-modules | 1 + .../hppa-parisc64-smp/multipath-modules | 1 + .../modules/hppa-parisc64-smp/nbd-modules | 1 + .../modules/hppa-parisc64-smp/nic-modules | 1 + .../hppa-parisc64-smp/nic-shared-modules | 1 + .../modules/hppa-parisc64-smp/nic-usb-modules | 1 + .../modules/hppa-parisc64-smp/pata-modules | 1 + .../modules/hppa-parisc64-smp/ppp-modules | 1 + .../modules/hppa-parisc64-smp/sata-modules | 1 + .../hppa-parisc64-smp/scsi-core-modules | 1 + .../modules/hppa-parisc64-smp/scsi-modules | 1 + .../modules/hppa-parisc64-smp/serial-modules | 1 + .../hppa-parisc64-smp/squashfs-modules | 1 + .../modules/hppa-parisc64-smp/usb-modules | 1 + .../hppa-parisc64-smp/usb-serial-modules | 1 + .../hppa-parisc64-smp/usb-storage-modules | 1 + .../modules/hppa-parisc64-smp/virtio-modules | 1 + .../modules/hppa-parisc64-smp/xfs-modules | 1 + .../modules/hppa-parisc64-smp/zlib-modules | 1 + installer/hppa/modules/hppa/ata-modules | 1 + installer/hppa/modules/hppa/btrfs-modules | 1 + .../hppa/modules/hppa/cdrom-core-modules | 2 + installer/hppa/modules/hppa/crc-modules | 1 + installer/hppa/modules/hppa/crypto-dm-modules | 1 + installer/hppa/modules/hppa/crypto-modules | 1 + installer/hppa/modules/hppa/event-modules | 1 + installer/hppa/modules/hppa/ext4-modules | 1 + installer/hppa/modules/hppa/fat-modules | 2 + installer/hppa/modules/hppa/fuse-modules | 1 + installer/hppa/modules/hppa/input-modules | 6 + installer/hppa/modules/hppa/isofs-modules | 1 + installer/hppa/modules/hppa/jfs-modules | 1 + installer/hppa/modules/hppa/kernel-image | 1 + installer/hppa/modules/hppa/loop-modules | 2 + installer/hppa/modules/hppa/md-modules | 2 + installer/hppa/modules/hppa/mouse-modules | 1 + installer/hppa/modules/hppa/multipath-modules | 1 + installer/hppa/modules/hppa/nbd-modules | 1 + installer/hppa/modules/hppa/nic-modules | 4 + .../hppa/modules/hppa/nic-shared-modules | 1 + installer/hppa/modules/hppa/nic-usb-modules | 1 + installer/hppa/modules/hppa/pata-modules | 2 + installer/hppa/modules/hppa/ppp-modules | 2 + installer/hppa/modules/hppa/sata-modules | 2 + installer/hppa/modules/hppa/scsi-core-modules | 1 + installer/hppa/modules/hppa/scsi-modules | 19 + installer/hppa/modules/hppa/serial-modules | 1 + installer/hppa/modules/hppa/squashfs-modules | 1 + installer/hppa/modules/hppa/usb-modules | 1 + .../hppa/modules/hppa/usb-serial-modules | 1 + .../hppa/modules/hppa/usb-storage-modules | 2 + installer/hppa/modules/hppa/virtio-modules | 1 + installer/hppa/modules/hppa/xfs-modules | 1 + installer/hppa/modules/hppa/zlib-modules | 1 + installer/hppa/package-list | 17 + installer/i386/kernel-versions | 3 + installer/i386/modules/i386/acpi-modules | 2 + installer/i386/modules/i386/ata-modules | 2 + installer/i386/modules/i386/btrfs-modules | 1 + .../i386/modules/i386/cdrom-core-modules | 2 + installer/i386/modules/i386/crc-modules | 1 + installer/i386/modules/i386/crypto-dm-modules | 1 + installer/i386/modules/i386/crypto-modules | 1 + installer/i386/modules/i386/efi-modules | 1 + installer/i386/modules/i386/event-modules | 1 + installer/i386/modules/i386/ext4-modules | 1 + installer/i386/modules/i386/fat-modules | 2 + installer/i386/modules/i386/fb-modules | 5 + .../i386/modules/i386/firewire-core-modules | 1 + installer/i386/modules/i386/fuse-modules | 1 + installer/i386/modules/i386/hyperv-modules | 1 + installer/i386/modules/i386/i2c-modules | 1 + installer/i386/modules/i386/input-modules | 5 + installer/i386/modules/i386/isofs-modules | 1 + installer/i386/modules/i386/jfs-modules | 1 + installer/i386/modules/i386/kernel-image | 1 + installer/i386/modules/i386/loop-modules | 2 + installer/i386/modules/i386/md-modules | 2 + installer/i386/modules/i386/mmc-core-modules | 1 + installer/i386/modules/i386/mmc-modules | 1 + installer/i386/modules/i386/mouse-modules | 1 + installer/i386/modules/i386/multipath-modules | 1 + installer/i386/modules/i386/nbd-modules | 1 + installer/i386/modules/i386/nic-modules | 1 + .../i386/modules/i386/nic-pcmcia-modules | 1 + .../i386/modules/i386/nic-shared-modules | 1 + installer/i386/modules/i386/nic-usb-modules | 1 + .../i386/modules/i386/nic-wireless-modules | 1 + installer/i386/modules/i386/ntfs-modules | 1 + installer/i386/modules/i386/pata-modules | 2 + installer/i386/modules/i386/pcmcia-modules | 1 + .../i386/modules/i386/pcmcia-storage-modules | 1 + installer/i386/modules/i386/ppp-modules | 2 + installer/i386/modules/i386/sata-modules | 2 + installer/i386/modules/i386/scsi-core-modules | 4 + installer/i386/modules/i386/scsi-modules | 1 + installer/i386/modules/i386/serial-modules | 1 + installer/i386/modules/i386/sound-modules | 1 + installer/i386/modules/i386/speakup-modules | 1 + installer/i386/modules/i386/squashfs-modules | 1 + installer/i386/modules/i386/udf-modules | 1 + installer/i386/modules/i386/uinput-modules | 1 + installer/i386/modules/i386/usb-modules | 1 + .../i386/modules/i386/usb-serial-modules | 1 + .../i386/modules/i386/usb-storage-modules | 2 + installer/i386/modules/i386/virtio-modules | 1 + installer/i386/modules/i386/xfs-modules | 2 + installer/i386/package-list | 14 + installer/m68k/kernel-versions | 2 + installer/m68k/modules/m68k/btrfs-modules | 1 + .../m68k/modules/m68k/cdrom-core-modules | 1 + installer/m68k/modules/m68k/crc-modules | 1 + installer/m68k/modules/m68k/crypto-modules | 1 + installer/m68k/modules/m68k/ext4-modules | 1 + installer/m68k/modules/m68k/fat-modules | 1 + installer/m68k/modules/m68k/fuse-modules | 1 + installer/m68k/modules/m68k/isofs-modules | 1 + installer/m68k/modules/m68k/kernel-image | 1 + installer/m68k/modules/m68k/md-modules | 1 + installer/m68k/modules/m68k/nbd-modules | 1 + .../m68k/modules/m68k/nic-shared-modules | 19 + installer/m68k/modules/m68k/ppp-modules | 1 + installer/m68k/modules/m68k/scsi-modules | 1 + installer/m68k/modules/m68k/squashfs-modules | 1 + installer/m68k/modules/m68k/udf-modules | 1 + installer/m68k/modules/m68k/zlib-modules | 1 + installer/m68k/package-list | 6 + installer/mips/kernel-versions | 3 + .../mips/modules/mips-4kc-malta/affs-modules | 1 + .../mips/modules/mips-4kc-malta/ata-modules | 1 + .../mips/modules/mips-4kc-malta/btrfs-modules | 1 + .../modules/mips-4kc-malta/cdrom-core-modules | 1 + .../mips/modules/mips-4kc-malta/crc-modules | 1 + .../modules/mips-4kc-malta/crypto-dm-modules | 1 + .../modules/mips-4kc-malta/crypto-modules | 1 + .../mips/modules/mips-4kc-malta/event-modules | 1 + .../mips/modules/mips-4kc-malta/ext4-modules | 1 + .../mips/modules/mips-4kc-malta/fat-modules | 1 + .../mips/modules/mips-4kc-malta/fuse-modules | 1 + .../mips/modules/mips-4kc-malta/hfs-modules | 1 + .../mips/modules/mips-4kc-malta/i2c-modules | 1 + .../mips/modules/mips-4kc-malta/input-modules | 1 + .../mips/modules/mips-4kc-malta/isofs-modules | 1 + .../mips/modules/mips-4kc-malta/jfs-modules | 1 + .../mips/modules/mips-4kc-malta/kernel-image | 1 + .../mips/modules/mips-4kc-malta/loop-modules | 1 + .../mips/modules/mips-4kc-malta/md-modules | 1 + .../mips/modules/mips-4kc-malta/minix-modules | 1 + .../modules/mips-4kc-malta/mmc-core-modules | 1 + .../mips/modules/mips-4kc-malta/mmc-modules | 1 + .../mips/modules/mips-4kc-malta/mouse-modules | 1 + .../modules/mips-4kc-malta/multipath-modules | 1 + .../mips/modules/mips-4kc-malta/nbd-modules | 1 + .../mips/modules/mips-4kc-malta/nic-modules | 4 + .../modules/mips-4kc-malta/nic-shared-modules | 1 + .../modules/mips-4kc-malta/nic-usb-modules | 1 + .../mips-4kc-malta/nic-wireless-modules | 1 + .../mips/modules/mips-4kc-malta/ntfs-modules | 1 + .../mips/modules/mips-4kc-malta/pata-modules | 1 + .../mips/modules/mips-4kc-malta/ppp-modules | 1 + .../mips/modules/mips-4kc-malta/qnx4-modules | 1 + .../mips/modules/mips-4kc-malta/sata-modules | 1 + .../modules/mips-4kc-malta/scsi-core-modules | 1 + .../mips/modules/mips-4kc-malta/scsi-modules | 1 + .../mips/modules/mips-4kc-malta/sound-modules | 1 + .../modules/mips-4kc-malta/squashfs-modules | 1 + .../mips/modules/mips-4kc-malta/udf-modules | 1 + .../mips/modules/mips-4kc-malta/usb-modules | 1 + .../modules/mips-4kc-malta/usb-serial-modules | 1 + .../mips-4kc-malta/usb-storage-modules | 1 + .../modules/mips-4kc-malta/virtio-modules | 1 + .../mips/modules/mips-4kc-malta/xfs-modules | 1 + .../mips/modules/mips-4kc-malta/zlib-modules | 1 + .../mips/modules/mips-octeon/affs-modules | 1 + .../mips/modules/mips-octeon/btrfs-modules | 1 + .../modules/mips-octeon/cdrom-core-modules | 1 + .../mips/modules/mips-octeon/crc-modules | 1 + .../modules/mips-octeon/crypto-dm-modules | 1 + .../mips/modules/mips-octeon/crypto-modules | 1 + .../mips/modules/mips-octeon/event-modules | 1 + .../mips/modules/mips-octeon/ext4-modules | 1 + .../mips/modules/mips-octeon/fat-modules | 1 + .../mips/modules/mips-octeon/fuse-modules | 1 + .../mips/modules/mips-octeon/hfs-modules | 1 + .../mips/modules/mips-octeon/input-modules | 1 + .../mips/modules/mips-octeon/isofs-modules | 1 + .../mips/modules/mips-octeon/jfs-modules | 1 + .../mips/modules/mips-octeon/kernel-image | 1 + .../mips/modules/mips-octeon/loop-modules | 1 + installer/mips/modules/mips-octeon/md-modules | 1 + .../mips/modules/mips-octeon/minix-modules | 1 + .../modules/mips-octeon/multipath-modules | 1 + .../mips/modules/mips-octeon/nbd-modules | 1 + .../mips/modules/mips-octeon/nic-modules | 15 + .../modules/mips-octeon/nic-shared-modules | 1 + .../mips/modules/mips-octeon/nic-usb-modules | 1 + .../modules/mips-octeon/nic-wireless-modules | 1 + .../mips/modules/mips-octeon/ntfs-modules | 1 + .../mips/modules/mips-octeon/pata-modules | 1 + .../mips/modules/mips-octeon/ppp-modules | 1 + .../mips/modules/mips-octeon/qnx4-modules | 1 + .../mips/modules/mips-octeon/rtc-modules | 1 + .../mips/modules/mips-octeon/sata-modules | 3 + .../modules/mips-octeon/scsi-core-modules | 1 + .../mips/modules/mips-octeon/scsi-modules | 6 + .../mips/modules/mips-octeon/sound-modules | 1 + .../mips/modules/mips-octeon/squashfs-modules | 1 + .../mips/modules/mips-octeon/udf-modules | 1 + .../mips/modules/mips-octeon/usb-modules | 2 + .../modules/mips-octeon/usb-serial-modules | 1 + .../modules/mips-octeon/usb-storage-modules | 1 + .../mips/modules/mips-octeon/virtio-modules | 1 + .../mips/modules/mips-octeon/xfs-modules | 1 + .../mips/modules/mips-octeon/zlib-modules | 1 + installer/mips/modules/mips/btrfs-modules | 1 + installer/mips/modules/mips/crc-modules | 1 + installer/mips/modules/mips/crypto-dm-modules | 1 + installer/mips/modules/mips/crypto-modules | 1 + installer/mips/modules/mips/ext4-modules | 1 + installer/mips/modules/mips/fuse-modules | 1 + installer/mips/modules/mips/isofs-modules | 1 + installer/mips/modules/mips/jfs-modules | 2 + installer/mips/modules/mips/kernel-image | 1 + installer/mips/modules/mips/loop-modules | 2 + installer/mips/modules/mips/md-modules | 2 + installer/mips/modules/mips/multipath-modules | 1 + installer/mips/modules/mips/nbd-modules | 1 + .../mips/modules/mips/nic-shared-modules | 1 + installer/mips/modules/mips/squashfs-modules | 1 + installer/mips/modules/mips/udf-modules | 1 + installer/mips/modules/mips/xfs-modules | 2 + installer/mips/modules/mips/zlib-modules | 1 + installer/mips/package-list | 7 + installer/mips64/kernel-versions | 3 + installer/mips64/modules/mips64 | 1 + installer/mips64/modules/mips64-5kc-malta | 1 + installer/mips64/modules/mips64-octeon | 1 + installer/mips64/package-list | 7 + installer/mips64el/kernel-versions | 4 + installer/mips64el/modules/mips64el-5kc-malta | 1 + .../mips64el/modules/mips64el-loongson-3 | 1 + installer/mips64el/modules/mips64el-octeon | 1 + installer/mips64el/package-list | 8 + installer/mips64r6/kernel-versions | 2 + installer/mips64r6/modules/mips64r6 | 1 + installer/mips64r6/package-list | 7 + installer/mips64r6el/kernel-versions | 2 + installer/mips64r6el/modules/mips64r6 | 1 + installer/mips64r6el/package-list | 7 + installer/mipsel/kernel-versions | 4 + installer/mipsel/modules/mipsel-4kc-malta | 1 + .../modules/mipsel-loongson-3/affs-modules | 1 + .../modules/mipsel-loongson-3/ata-modules | 1 + .../modules/mipsel-loongson-3/btrfs-modules | 1 + .../mipsel-loongson-3/cdrom-core-modules | 1 + .../modules/mipsel-loongson-3/crc-modules | 1 + .../mipsel-loongson-3/crypto-dm-modules | 1 + .../modules/mipsel-loongson-3/crypto-modules | 1 + .../modules/mipsel-loongson-3/event-modules | 1 + .../modules/mipsel-loongson-3/ext4-modules | 1 + .../modules/mipsel-loongson-3/fat-modules | 1 + .../modules/mipsel-loongson-3/fb-modules | 1 + .../mipsel-loongson-3/firewire-core-modules | 1 + .../modules/mipsel-loongson-3/fuse-modules | 1 + .../modules/mipsel-loongson-3/hfs-modules | 1 + .../modules/mipsel-loongson-3/input-modules | 1 + .../modules/mipsel-loongson-3/isofs-modules | 1 + .../modules/mipsel-loongson-3/jfs-modules | 1 + .../modules/mipsel-loongson-3/kernel-image | 1 + .../modules/mipsel-loongson-3/loop-modules | 1 + .../modules/mipsel-loongson-3/md-modules | 1 + .../modules/mipsel-loongson-3/minix-modules | 1 + .../mipsel-loongson-3/multipath-modules | 1 + .../modules/mipsel-loongson-3/nbd-modules | 1 + .../modules/mipsel-loongson-3/nfs-modules | 1 + .../modules/mipsel-loongson-3/nic-modules | 11 + .../mipsel-loongson-3/nic-shared-modules | 1 + .../modules/mipsel-loongson-3/nic-usb-modules | 1 + .../mipsel-loongson-3/nic-wireless-modules | 1 + .../modules/mipsel-loongson-3/ntfs-modules | 1 + .../modules/mipsel-loongson-3/pata-modules | 1 + .../modules/mipsel-loongson-3/ppp-modules | 1 + .../modules/mipsel-loongson-3/qnx4-modules | 1 + .../modules/mipsel-loongson-3/sata-modules | 1 + .../mipsel-loongson-3/scsi-core-modules | 1 + .../modules/mipsel-loongson-3/scsi-modules | 6 + .../modules/mipsel-loongson-3/sound-modules | 1 + .../modules/mipsel-loongson-3/speakup-modules | 1 + .../mipsel-loongson-3/squashfs-modules | 1 + .../modules/mipsel-loongson-3/udf-modules | 1 + .../modules/mipsel-loongson-3/usb-modules | 1 + .../mipsel-loongson-3/usb-serial-modules | 1 + .../mipsel-loongson-3/usb-storage-modules | 1 + .../modules/mipsel-loongson-3/virtio-modules | 1 + .../modules/mipsel-loongson-3/xfs-modules | 1 + .../modules/mipsel-loongson-3/zlib-modules | 1 + installer/mipsel/modules/mipsel-octeon | 1 + installer/mipsel/package-list | 8 + installer/mipsr6/kernel-versions | 2 + installer/mipsr6/modules/mips32r6 | 1 + installer/mipsr6/package-list | 7 + installer/mipsr6el/kernel-versions | 2 + installer/mipsr6el/modules/mips32r6 | 1 + installer/mipsr6el/package-list | 7 + installer/modules/acpi-modules | 2 + installer/modules/affs-modules | 1 + installer/modules/ata-modules | 2 + installer/modules/btrfs-modules | 1 + installer/modules/cdrom-core-modules | 2 + installer/modules/crc-modules | 5 + installer/modules/crypto-dm-modules | 1 + installer/modules/crypto-modules | 9 + installer/modules/efi-modules | 1 + installer/modules/event-modules | 1 + installer/modules/ext4-modules | 2 + installer/modules/fat-modules | 6 + installer/modules/firewire-core-modules | 3 + installer/modules/fuse-modules | 1 + installer/modules/hfs-modules | 2 + installer/modules/hyperv-modules | 7 + installer/modules/i2c-modules | 3 + installer/modules/input-modules | 39 + installer/modules/ipv6-modules | 1 + installer/modules/isofs-modules | 1 + installer/modules/jffs2-modules | 1 + installer/modules/jfs-modules | 1 + installer/modules/kernel-image | 6 + installer/modules/leds-modules | 1 + installer/modules/loop-modules | 1 + installer/modules/lzo-modules | 1 + installer/modules/md-modules | 14 + installer/modules/minix-modules | 1 + installer/modules/mmc-core-modules | 1 + installer/modules/mmc-modules | 5 + installer/modules/mouse-modules | 1 + installer/modules/mtd-modules | 2 + installer/modules/multipath-modules | 3 + installer/modules/nbd-modules | 1 + installer/modules/nfs-modules | 3 + installer/modules/nic-modules | 23 + installer/modules/nic-pcmcia-modules | 10 + installer/modules/nic-shared-modules | 5 + installer/modules/nic-usb-modules | 15 + installer/modules/nic-wireless-modules | 31 + installer/modules/pata-modules | 9 + installer/modules/pcmcia-modules | 8 + installer/modules/pcmcia-storage-modules | 2 + installer/modules/ppp-modules | 5 + installer/modules/qnx4-modules | 1 + installer/modules/rtc-modules | 2 + installer/modules/sata-modules | 15 + installer/modules/scsi-core-modules | 4 + installer/modules/scsi-modules | 50 + installer/modules/serial-modules | 3 + installer/modules/sound-modules | 15 + installer/modules/speakup-modules | 15 + installer/modules/squashfs-modules | 1 + installer/modules/udf-modules | 1 + installer/modules/uinput-modules | 1 + installer/modules/usb-modules | 13 + installer/modules/usb-serial-modules | 28 + installer/modules/usb-storage-modules | 2 + installer/modules/virtio-modules | 9 + installer/modules/xfs-modules | 2 + installer/modules/zlib-modules | 1 + installer/package-list | 385 + installer/powerpc/kernel-versions | 3 + .../powerpc-powerpc-miboot/affs-modules | 1 + .../powerpc-powerpc-miboot/ata-modules | 1 + .../powerpc-powerpc-miboot/btrfs-modules | 1 + .../powerpc-powerpc-miboot/cdrom-core-modules | 1 + .../powerpc-powerpc-miboot/crc-modules | 1 + .../powerpc-powerpc-miboot/crypto-dm-modules | 1 + .../powerpc-powerpc-miboot/crypto-modules | 1 + .../powerpc-powerpc-miboot/event-modules | 1 + .../powerpc-powerpc-miboot/ext4-modules | 1 + .../powerpc-powerpc-miboot/fat-modules | 1 + .../firewire-core-modules | 1 + .../powerpc-powerpc-miboot/fuse-modules | 1 + .../powerpc-powerpc-miboot/hfs-modules | 1 + .../powerpc-powerpc-miboot/input-modules | 1 + .../powerpc-powerpc-miboot/isofs-modules | 1 + .../powerpc-powerpc-miboot/jfs-modules | 1 + .../powerpc-powerpc-miboot/kernel-image | 1 + .../powerpc-powerpc-miboot/loop-modules | 1 + .../modules/powerpc-powerpc-miboot/md-modules | 1 + .../powerpc-powerpc-miboot/mouse-modules | 1 + .../powerpc-powerpc-miboot/multipath-modules | 1 + .../powerpc-powerpc-miboot/nbd-modules | 1 + .../powerpc-powerpc-miboot/nic-modules | 28 + .../powerpc-powerpc-miboot/nic-pcmcia-modules | 1 + .../powerpc-powerpc-miboot/nic-shared-modules | 1 + .../powerpc-powerpc-miboot/pata-modules | 1 + .../powerpc-powerpc-miboot/pcmcia-modules | 1 + .../pcmcia-storage-modules | 1 + .../powerpc-powerpc-miboot/ppp-modules | 1 + .../powerpc-powerpc-miboot/sata-modules | 1 + .../powerpc-powerpc-miboot/scsi-core-modules | 1 + .../powerpc-powerpc-miboot/scsi-modules | 1 + .../powerpc-powerpc-miboot/serial-modules | 1 + .../powerpc-powerpc-miboot/squashfs-modules | 1 + .../powerpc-powerpc-miboot/udf-modules | 1 + .../powerpc-powerpc-miboot/uinput-modules | 1 + .../powerpc-powerpc-miboot/usb-modules | 1 + .../powerpc-powerpc-miboot/usb-serial-modules | 1 + .../usb-storage-modules | 1 + .../powerpc-powerpc-miboot/xfs-modules | 1 + .../powerpc-powerpc-miboot/zlib-modules | 1 + .../modules/powerpc-powerpc64/affs-modules | 1 + .../modules/powerpc-powerpc64/ata-modules | 1 + .../modules/powerpc-powerpc64/btrfs-modules | 1 + .../powerpc-powerpc64/cdrom-core-modules | 1 + .../modules/powerpc-powerpc64/crc-modules | 1 + .../powerpc-powerpc64/crypto-dm-modules | 1 + .../modules/powerpc-powerpc64/crypto-modules | 1 + .../modules/powerpc-powerpc64/event-modules | 1 + .../modules/powerpc-powerpc64/ext4-modules | 1 + .../powerpc-powerpc64/fancontrol-modules | 19 + .../modules/powerpc-powerpc64/fat-modules | 1 + .../powerpc-powerpc64/firewire-core-modules | 1 + .../modules/powerpc-powerpc64/fuse-modules | 1 + .../modules/powerpc-powerpc64/hfs-modules | 1 + .../powerpc-powerpc64/hypervisor-modules | 2 + .../modules/powerpc-powerpc64/input-modules | 1 + .../modules/powerpc-powerpc64/isofs-modules | 1 + .../modules/powerpc-powerpc64/jfs-modules | 1 + .../modules/powerpc-powerpc64/kernel-image | 1 + .../modules/powerpc-powerpc64/loop-modules | 1 + .../modules/powerpc-powerpc64/md-modules | 1 + .../modules/powerpc-powerpc64/mouse-modules | 1 + .../powerpc-powerpc64/multipath-modules | 1 + .../modules/powerpc-powerpc64/nbd-modules | 1 + .../modules/powerpc-powerpc64/nic-modules | 7 + .../powerpc-powerpc64/nic-pcmcia-modules | 1 + .../powerpc-powerpc64/nic-shared-modules | 1 + .../modules/powerpc-powerpc64/pata-modules | 1 + .../modules/powerpc-powerpc64/pcmcia-modules | 1 + .../powerpc-powerpc64/pcmcia-storage-modules | 1 + .../modules/powerpc-powerpc64/ppp-modules | 1 + .../modules/powerpc-powerpc64/sata-modules | 1 + .../powerpc-powerpc64/scsi-core-modules | 1 + .../modules/powerpc-powerpc64/scsi-modules | 5 + .../modules/powerpc-powerpc64/serial-modules | 1 + .../powerpc-powerpc64/squashfs-modules | 1 + .../modules/powerpc-powerpc64/udf-modules | 1 + .../modules/powerpc-powerpc64/uinput-modules | 1 + .../modules/powerpc-powerpc64/usb-modules | 1 + .../powerpc-powerpc64/usb-serial-modules | 1 + .../powerpc-powerpc64/usb-storage-modules | 1 + .../modules/powerpc-powerpc64/virtio-modules | 1 + .../modules/powerpc-powerpc64/xfs-modules | 1 + .../powerpc/modules/powerpc/affs-modules | 2 + installer/powerpc/modules/powerpc/ata-modules | 1 + .../powerpc/modules/powerpc/btrfs-modules | 1 + .../modules/powerpc/cdrom-core-modules | 2 + installer/powerpc/modules/powerpc/crc-modules | 1 + .../powerpc/modules/powerpc/crypto-dm-modules | 1 + .../powerpc/modules/powerpc/crypto-modules | 1 + .../powerpc/modules/powerpc/event-modules | 1 + .../powerpc/modules/powerpc/ext4-modules | 1 + installer/powerpc/modules/powerpc/fat-modules | 2 + installer/powerpc/modules/powerpc/fb-modules | 5 + .../modules/powerpc/firewire-core-modules | 1 + .../powerpc/modules/powerpc/fuse-modules | 1 + installer/powerpc/modules/powerpc/hfs-modules | 1 + .../powerpc/modules/powerpc/input-modules | 3 + .../powerpc/modules/powerpc/isofs-modules | 1 + installer/powerpc/modules/powerpc/jfs-modules | 2 + .../powerpc/modules/powerpc/kernel-image | 2 + .../powerpc/modules/powerpc/loop-modules | 2 + installer/powerpc/modules/powerpc/md-modules | 2 + .../powerpc/modules/powerpc/mouse-modules | 1 + .../powerpc/modules/powerpc/multipath-modules | 1 + installer/powerpc/modules/powerpc/nbd-modules | 1 + installer/powerpc/modules/powerpc/nic-modules | 8 + .../modules/powerpc/nic-pcmcia-modules | 1 + .../modules/powerpc/nic-shared-modules | 2 + .../powerpc/modules/powerpc/pata-modules | 3 + .../powerpc/modules/powerpc/pcmcia-modules | 1 + .../modules/powerpc/pcmcia-storage-modules | 2 + installer/powerpc/modules/powerpc/ppp-modules | 2 + .../powerpc/modules/powerpc/sata-modules | 2 + .../powerpc/modules/powerpc/scsi-core-modules | 1 + .../powerpc/modules/powerpc/scsi-modules | 5 + .../powerpc/modules/powerpc/serial-modules | 1 + .../powerpc/modules/powerpc/squashfs-modules | 1 + installer/powerpc/modules/powerpc/udf-modules | 1 + .../powerpc/modules/powerpc/uinput-modules | 1 + installer/powerpc/modules/powerpc/usb-modules | 1 + .../modules/powerpc/usb-serial-modules | 1 + .../modules/powerpc/usb-storage-modules | 2 + .../powerpc/modules/powerpc/virtio-modules | 1 + installer/powerpc/modules/powerpc/xfs-modules | 2 + .../powerpc/modules/powerpc/zlib-modules | 1 + installer/powerpc/package-list | 25 + installer/ppc64/kernel-versions | 2 + installer/ppc64/modules/powerpc | 1 + installer/ppc64/modules/ppc64 | 1 + installer/ppc64/package-list | 1 + installer/ppc64el/kernel-versions | 2 + installer/ppc64el/modules/ppc64el/ata-modules | 1 + .../ppc64el/modules/ppc64el/btrfs-modules | 1 + .../modules/ppc64el/cdrom-core-modules | 1 + installer/ppc64el/modules/ppc64el/crc-modules | 1 + .../ppc64el/modules/ppc64el/crypto-dm-modules | 1 + .../ppc64el/modules/ppc64el/crypto-modules | 1 + .../ppc64el/modules/ppc64el/event-modules | 1 + .../ppc64el/modules/ppc64el/ext4-modules | 1 + .../modules/ppc64el/fancontrol-modules | 1 + installer/ppc64el/modules/ppc64el/fat-modules | 1 + .../modules/ppc64el/firewire-core-modules | 1 + .../ppc64el/modules/ppc64el/fuse-modules | 1 + .../modules/ppc64el/hypervisor-modules | 1 + .../ppc64el/modules/ppc64el/input-modules | 1 + .../ppc64el/modules/ppc64el/isofs-modules | 1 + installer/ppc64el/modules/ppc64el/jfs-modules | 1 + .../ppc64el/modules/ppc64el/kernel-image | 1 + .../ppc64el/modules/ppc64el/loop-modules | 1 + installer/ppc64el/modules/ppc64el/md-modules | 1 + .../ppc64el/modules/ppc64el/mouse-modules | 1 + .../ppc64el/modules/ppc64el/multipath-modules | 1 + installer/ppc64el/modules/ppc64el/nbd-modules | 1 + installer/ppc64el/modules/ppc64el/nic-modules | 5 + .../modules/ppc64el/nic-shared-modules | 1 + installer/ppc64el/modules/ppc64el/ppp-modules | 1 + .../ppc64el/modules/ppc64el/sata-modules | 1 + .../ppc64el/modules/ppc64el/scsi-core-modules | 1 + .../ppc64el/modules/ppc64el/scsi-modules | 3 + .../ppc64el/modules/ppc64el/serial-modules | 1 + .../ppc64el/modules/ppc64el/squashfs-modules | 1 + installer/ppc64el/modules/ppc64el/udf-modules | 1 + .../ppc64el/modules/ppc64el/uinput-modules | 1 + installer/ppc64el/modules/ppc64el/usb-modules | 1 + .../modules/ppc64el/usb-serial-modules | 1 + .../modules/ppc64el/usb-storage-modules | 1 + .../ppc64el/modules/ppc64el/virtio-modules | 1 + installer/ppc64el/modules/ppc64el/xfs-modules | 1 + installer/ppc64el/package-list | 1 + installer/s390x/kernel-versions | 2 + installer/s390x/modules/s390x/btrfs-modules | 1 + installer/s390x/modules/s390x/crc-modules | 1 + .../s390x/modules/s390x/crypto-dm-modules | 1 + installer/s390x/modules/s390x/crypto-modules | 1 + .../s390x/modules/s390x/dasd-extra-modules | 1 + installer/s390x/modules/s390x/dasd-modules | 2 + installer/s390x/modules/s390x/ext4-modules | 1 + installer/s390x/modules/s390x/fat-modules | 2 + installer/s390x/modules/s390x/fuse-modules | 1 + installer/s390x/modules/s390x/isofs-modules | 1 + installer/s390x/modules/s390x/kernel-image | 2 + installer/s390x/modules/s390x/loop-modules | 1 + installer/s390x/modules/s390x/md-modules | 2 + .../s390x/modules/s390x/multipath-modules | 1 + installer/s390x/modules/s390x/nbd-modules | 1 + installer/s390x/modules/s390x/nic-modules | 6 + .../s390x/modules/s390x/scsi-core-modules | 2 + installer/s390x/modules/s390x/scsi-modules | 1 + installer/s390x/modules/s390x/udf-modules | 1 + installer/s390x/modules/s390x/virtio-modules | 1 + installer/s390x/modules/s390x/xfs-modules | 2 + installer/s390x/modules/s390x/zlib-modules | 1 + installer/s390x/package-list | 19 + installer/sh4/kernel-versions | 3 + .../sh4/modules/sh4-sh7751r/btrfs-modules | 1 + .../modules/sh4-sh7751r/cdrom-core-modules | 2 + installer/sh4/modules/sh4-sh7751r/crc-modules | 1 + .../sh4/modules/sh4-sh7751r/crypto-dm-modules | 1 + .../sh4/modules/sh4-sh7751r/crypto-modules | 1 + .../sh4/modules/sh4-sh7751r/ext4-modules | 1 + installer/sh4/modules/sh4-sh7751r/fat-modules | 1 + .../modules/sh4-sh7751r/firewire-core-modules | 1 + .../sh4/modules/sh4-sh7751r/fuse-modules | 1 + installer/sh4/modules/sh4-sh7751r/i2c-modules | 1 + .../sh4/modules/sh4-sh7751r/isofs-modules | 1 + installer/sh4/modules/sh4-sh7751r/jfs-modules | 1 + .../sh4/modules/sh4-sh7751r/kernel-image | 1 + .../sh4/modules/sh4-sh7751r/loop-modules | 1 + installer/sh4/modules/sh4-sh7751r/md-modules | 1 + .../sh4/modules/sh4-sh7751r/minix-modules | 1 + .../sh4/modules/sh4-sh7751r/multipath-modules | 1 + installer/sh4/modules/sh4-sh7751r/nbd-modules | 1 + installer/sh4/modules/sh4-sh7751r/nic-modules | 6 + .../sh4/modules/sh4-sh7751r/nic-usb-modules | 1 + .../sh4/modules/sh4-sh7751r/pata-modules | 1 + installer/sh4/modules/sh4-sh7751r/ppp-modules | 1 + .../sh4/modules/sh4-sh7751r/sata-modules | 1 + .../sh4/modules/sh4-sh7751r/sound-modules | 1 + .../sh4/modules/sh4-sh7751r/speakup-modules | 1 + .../sh4/modules/sh4-sh7751r/squashfs-modules | 1 + installer/sh4/modules/sh4-sh7751r/udf-modules | 1 + .../modules/sh4-sh7751r/usb-serial-modules | 1 + .../modules/sh4-sh7751r/usb-storage-modules | 1 + .../sh4/modules/sh4-sh7751r/virtio-modules | 1 + installer/sh4/modules/sh4-sh7751r/xfs-modules | 1 + .../sh4/modules/sh4-sh7751r/zlib-modules | 1 + .../sh4/modules/sh4-sh7785lcr/btrfs-modules | 1 + .../modules/sh4-sh7785lcr/cdrom-core-modules | 2 + .../sh4/modules/sh4-sh7785lcr/crc-modules | 1 + .../modules/sh4-sh7785lcr/crypto-dm-modules | 1 + .../sh4/modules/sh4-sh7785lcr/crypto-modules | 1 + .../sh4/modules/sh4-sh7785lcr/ext4-modules | 1 + .../sh4/modules/sh4-sh7785lcr/fat-modules | 1 + .../sh4-sh7785lcr/firewire-core-modules | 1 + .../sh4/modules/sh4-sh7785lcr/fuse-modules | 1 + .../sh4/modules/sh4-sh7785lcr/isofs-modules | 1 + .../sh4/modules/sh4-sh7785lcr/jfs-modules | 1 + .../sh4/modules/sh4-sh7785lcr/kernel-image | 1 + .../sh4/modules/sh4-sh7785lcr/loop-modules | 1 + .../sh4/modules/sh4-sh7785lcr/md-modules | 1 + .../sh4/modules/sh4-sh7785lcr/minix-modules | 1 + .../modules/sh4-sh7785lcr/multipath-modules | 1 + .../sh4/modules/sh4-sh7785lcr/nbd-modules | 1 + .../sh4/modules/sh4-sh7785lcr/nic-modules | 6 + .../sh4/modules/sh4-sh7785lcr/nic-usb-modules | 1 + .../sh4/modules/sh4-sh7785lcr/pata-modules | 1 + .../sh4/modules/sh4-sh7785lcr/ppp-modules | 1 + .../sh4/modules/sh4-sh7785lcr/sata-modules | 1 + .../sh4/modules/sh4-sh7785lcr/sound-modules | 1 + .../sh4/modules/sh4-sh7785lcr/speakup-modules | 1 + .../modules/sh4-sh7785lcr/squashfs-modules | 1 + .../sh4/modules/sh4-sh7785lcr/udf-modules | 1 + .../modules/sh4-sh7785lcr/usb-serial-modules | 1 + .../sh4/modules/sh4-sh7785lcr/xfs-modules | 1 + .../sh4/modules/sh4-sh7785lcr/zlib-modules | 1 + installer/sh4/package-list | 7 + installer/sparc64/kernel-versions | 2 + installer/sparc64/modules/sparc64/ata-modules | 1 + .../sparc64/modules/sparc64/btrfs-modules | 1 + .../modules/sparc64/cdrom-core-modules | 2 + installer/sparc64/modules/sparc64/crc-modules | 1 + .../sparc64/modules/sparc64/crypto-dm-modules | 1 + .../sparc64/modules/sparc64/crypto-modules | 1 + .../sparc64/modules/sparc64/ext4-modules | 1 + installer/sparc64/modules/sparc64/fat-modules | 2 + .../sparc64/modules/sparc64/fuse-modules | 1 + .../sparc64/modules/sparc64/input-modules | 1 + .../sparc64/modules/sparc64/isofs-modules | 1 + installer/sparc64/modules/sparc64/jfs-modules | 1 + .../sparc64/modules/sparc64/kernel-image | 1 + installer/sparc64/modules/sparc64/md-modules | 2 + .../sparc64/modules/sparc64/multipath-modules | 1 + installer/sparc64/modules/sparc64/nbd-modules | 1 + installer/sparc64/modules/sparc64/nic-modules | 50 + .../sparc64/modules/sparc64/pata-modules | 1 + installer/sparc64/modules/sparc64/ppp-modules | 2 + .../sparc64/modules/sparc64/sata-modules | 1 + .../sparc64/modules/sparc64/scsi-core-modules | 6 + .../sparc64/modules/sparc64/scsi-modules | 27 + .../sparc64/modules/sparc64/squashfs-modules | 1 + installer/sparc64/modules/sparc64/udf-modules | 1 + installer/sparc64/modules/sparc64/usb-modules | 1 + .../modules/sparc64/usb-storage-modules | 2 + .../sparc64/modules/sparc64/virtio-modules | 1 + installer/sparc64/modules/sparc64/xfs-modules | 2 + .../sparc64/modules/sparc64/zlib-modules | 1 + installer/sparc64/package-list | 15 + lib/python/debian_linux/__init__.py | 1 + lib/python/debian_linux/abi.py | 42 + lib/python/debian_linux/config.py | 260 + lib/python/debian_linux/debian.py | 467 + lib/python/debian_linux/firmware.py | 89 + lib/python/debian_linux/gencontrol.py | 355 + lib/python/debian_linux/kconfig.py | 91 + lib/python/debian_linux/patches.py | 180 + lib/python/debian_linux/utils.py | 93 + libcpupower-dev.install | 2 + libcpupower1.install | 1 + libcpupower1.symbols | 39 + liblockdep-dev.README.Debian | 13 + liblockdep-dev.docs | 1 + liblockdep-dev.install | 3 + libusbip-dev.install | 3 + linux-cpupower.install | 2 + ...x-headers-4.8.0-0.bpo.2-4kc-malta.postinst | 18 + ...x-headers-4.8.0-0.bpo.2-5kc-malta.postinst | 18 + linux-headers-4.8.0-0.bpo.2-686-pae.postinst | 18 + linux-headers-4.8.0-0.bpo.2-686.postinst | 18 + ...aders-4.8.0-0.bpo.2-alpha-generic.postinst | 18 + ...x-headers-4.8.0-0.bpo.2-alpha-smp.postinst | 18 + linux-headers-4.8.0-0.bpo.2-amd64.postinst | 18 + linux-headers-4.8.0-0.bpo.2-arm64.postinst | 18 + ...-headers-4.8.0-0.bpo.2-armmp-lpae.postinst | 18 + linux-headers-4.8.0-0.bpo.2-armmp.postinst | 18 + ...-headers-4.8.0-0.bpo.2-loongson-3.postinst | 18 + linux-headers-4.8.0-0.bpo.2-m68k.postinst | 18 + linux-headers-4.8.0-0.bpo.2-marvell.postinst | 18 + linux-headers-4.8.0-0.bpo.2-octeon.postinst | 18 + linux-headers-4.8.0-0.bpo.2-parisc.postinst | 18 + ...eaders-4.8.0-0.bpo.2-parisc64-smp.postinst | 18 + ...headers-4.8.0-0.bpo.2-powerpc-smp.postinst | 18 + linux-headers-4.8.0-0.bpo.2-powerpc.postinst | 18 + ...x-headers-4.8.0-0.bpo.2-powerpc64.postinst | 18 + ...headers-4.8.0-0.bpo.2-powerpc64le.postinst | 18 + ...-headers-4.8.0-0.bpo.2-powerpcspe.postinst | 18 + ...-headers-4.8.0-0.bpo.2-rt-686-pae.postinst | 18 + linux-headers-4.8.0-0.bpo.2-rt-amd64.postinst | 18 + linux-headers-4.8.0-0.bpo.2-s390x.postinst | 18 + linux-headers-4.8.0-0.bpo.2-sh7751r.postinst | 18 + ...x-headers-4.8.0-0.bpo.2-sh7785lcr.postinst | 18 + ...headers-4.8.0-0.bpo.2-sparc64-smp.postinst | 18 + linux-headers-4.8.0-0.bpo.2-sparc64.postinst | 18 + ...x-headers-4.8.0-0.bpo.2-versatile.postinst | 18 + linux-headers-4.8.0-2-4kc-malta.postinst | 18 + linux-headers-4.8.0-2-5kc-malta.postinst | 18 + linux-headers-4.8.0-2-686-pae.postinst | 18 + linux-headers-4.8.0-2-686.postinst | 18 + linux-headers-4.8.0-2-alpha-generic.postinst | 18 + linux-headers-4.8.0-2-alpha-smp.postinst | 18 + linux-headers-4.8.0-2-amd64.postinst | 18 + linux-headers-4.8.0-2-arm64.postinst | 18 + linux-headers-4.8.0-2-armmp-lpae.postinst | 18 + linux-headers-4.8.0-2-armmp.postinst | 18 + linux-headers-4.8.0-2-loongson-3.postinst | 18 + linux-headers-4.8.0-2-m68k.postinst | 18 + linux-headers-4.8.0-2-marvell.postinst | 18 + linux-headers-4.8.0-2-octeon.postinst | 18 + linux-headers-4.8.0-2-parisc.postinst | 18 + linux-headers-4.8.0-2-parisc64-smp.postinst | 18 + linux-headers-4.8.0-2-powerpc-smp.postinst | 18 + linux-headers-4.8.0-2-powerpc.postinst | 18 + linux-headers-4.8.0-2-powerpc64.postinst | 18 + linux-headers-4.8.0-2-powerpc64le.postinst | 18 + linux-headers-4.8.0-2-powerpcspe.postinst | 18 + linux-headers-4.8.0-2-rt-686-pae.postinst | 18 + linux-headers-4.8.0-2-rt-amd64.postinst | 18 + linux-headers-4.8.0-2-s390x.postinst | 18 + linux-headers-4.8.0-2-sh7751r.postinst | 18 + linux-headers-4.8.0-2-sh7785lcr.postinst | 18 + linux-headers-4.8.0-2-sparc64-smp.postinst | 18 + linux-headers-4.8.0-2-sparc64.postinst | 18 + linux-headers-4.8.0-2-versatile.postinst | 18 + linux-headers-4.9.0-1-4kc-malta.postinst | 18 + linux-headers-4.9.0-1-5kc-malta.postinst | 18 + linux-headers-4.9.0-1-686-pae.postinst | 18 + linux-headers-4.9.0-1-686.postinst | 18 + linux-headers-4.9.0-1-alpha-generic.postinst | 18 + linux-headers-4.9.0-1-alpha-smp.postinst | 18 + linux-headers-4.9.0-1-amd64.postinst | 18 + linux-headers-4.9.0-1-arm64.postinst | 18 + linux-headers-4.9.0-1-armmp-lpae.postinst | 18 + linux-headers-4.9.0-1-armmp.postinst | 18 + linux-headers-4.9.0-1-loongson-3.postinst | 18 + linux-headers-4.9.0-1-m68k.postinst | 18 + linux-headers-4.9.0-1-marvell.postinst | 18 + linux-headers-4.9.0-1-octeon.postinst | 18 + linux-headers-4.9.0-1-parisc.postinst | 18 + linux-headers-4.9.0-1-parisc64-smp.postinst | 18 + linux-headers-4.9.0-1-powerpc-smp.postinst | 18 + linux-headers-4.9.0-1-powerpc.postinst | 18 + linux-headers-4.9.0-1-powerpc64.postinst | 18 + linux-headers-4.9.0-1-powerpc64le.postinst | 18 + linux-headers-4.9.0-1-powerpcspe.postinst | 18 + linux-headers-4.9.0-1-rt-686-pae.postinst | 18 + linux-headers-4.9.0-1-rt-amd64.postinst | 18 + linux-headers-4.9.0-1-s390x.postinst | 18 + linux-headers-4.9.0-1-sh7751r.postinst | 18 + linux-headers-4.9.0-1-sh7785lcr.postinst | 18 + linux-headers-4.9.0-1-sparc64-smp.postinst | 18 + linux-headers-4.9.0-1-sparc64.postinst | 18 + linux-image-4.8.0-0.bpo.2-4kc-malta.postinst | 25 + linux-image-4.8.0-0.bpo.2-4kc-malta.postrm | 31 + linux-image-4.8.0-0.bpo.2-4kc-malta.preinst | 21 + linux-image-4.8.0-0.bpo.2-4kc-malta.prerm | 17 + linux-image-4.8.0-0.bpo.2-5kc-malta.postinst | 25 + linux-image-4.8.0-0.bpo.2-5kc-malta.postrm | 31 + linux-image-4.8.0-0.bpo.2-5kc-malta.preinst | 21 + linux-image-4.8.0-0.bpo.2-5kc-malta.prerm | 17 + ....8.0-0.bpo.2-686-pae-dbg.lintian-overrides | 2 + ...ge-4.8.0-0.bpo.2-686-pae-unsigned.postinst | 25 + ...mage-4.8.0-0.bpo.2-686-pae-unsigned.postrm | 31 + ...age-4.8.0-0.bpo.2-686-pae-unsigned.preinst | 21 + ...image-4.8.0-0.bpo.2-686-pae-unsigned.prerm | 17 + ...-image-4.8.0-0.bpo.2-686-unsigned.postinst | 25 + linux-image-4.8.0-0.bpo.2-686-unsigned.postrm | 31 + ...x-image-4.8.0-0.bpo.2-686-unsigned.preinst | 21 + linux-image-4.8.0-0.bpo.2-686-unsigned.prerm | 17 + ...image-4.8.0-0.bpo.2-alpha-generic.postinst | 25 + ...x-image-4.8.0-0.bpo.2-alpha-generic.postrm | 31 + ...-image-4.8.0-0.bpo.2-alpha-generic.preinst | 21 + linux-image-4.8.0-0.bpo.2-alpha-generic.prerm | 17 + linux-image-4.8.0-0.bpo.2-alpha-smp.postinst | 25 + linux-image-4.8.0-0.bpo.2-alpha-smp.postrm | 31 + linux-image-4.8.0-0.bpo.2-alpha-smp.preinst | 21 + linux-image-4.8.0-0.bpo.2-alpha-smp.prerm | 17 + ...-4.8.0-0.bpo.2-amd64-dbg.lintian-overrides | 2 + ...mage-4.8.0-0.bpo.2-amd64-unsigned.postinst | 25 + ...-image-4.8.0-0.bpo.2-amd64-unsigned.postrm | 31 + ...image-4.8.0-0.bpo.2-amd64-unsigned.preinst | 21 + ...x-image-4.8.0-0.bpo.2-amd64-unsigned.prerm | 17 + ...-4.8.0-0.bpo.2-arm64-dbg.lintian-overrides | 2 + ...mage-4.8.0-0.bpo.2-arm64-unsigned.postinst | 25 + ...-image-4.8.0-0.bpo.2-arm64-unsigned.postrm | 31 + ...image-4.8.0-0.bpo.2-arm64-unsigned.preinst | 21 + ...x-image-4.8.0-0.bpo.2-arm64-unsigned.prerm | 17 + ...4.8.0-0.bpo.2-armmp-lpae-unsigned.postinst | 25 + ...e-4.8.0-0.bpo.2-armmp-lpae-unsigned.postrm | 31 + ...-4.8.0-0.bpo.2-armmp-lpae-unsigned.preinst | 21 + ...ge-4.8.0-0.bpo.2-armmp-lpae-unsigned.prerm | 17 + ...mage-4.8.0-0.bpo.2-armmp-unsigned.postinst | 25 + ...-image-4.8.0-0.bpo.2-armmp-unsigned.postrm | 31 + ...image-4.8.0-0.bpo.2-armmp-unsigned.preinst | 21 + ...x-image-4.8.0-0.bpo.2-armmp-unsigned.prerm | 17 + linux-image-4.8.0-0.bpo.2-loongson-3.postinst | 25 + linux-image-4.8.0-0.bpo.2-loongson-3.postrm | 31 + linux-image-4.8.0-0.bpo.2-loongson-3.preinst | 21 + linux-image-4.8.0-0.bpo.2-loongson-3.prerm | 17 + linux-image-4.8.0-0.bpo.2-m68k.postinst | 25 + linux-image-4.8.0-0.bpo.2-m68k.postrm | 31 + linux-image-4.8.0-0.bpo.2-m68k.preinst | 21 + linux-image-4.8.0-0.bpo.2-m68k.prerm | 17 + linux-image-4.8.0-0.bpo.2-marvell.postinst | 25 + linux-image-4.8.0-0.bpo.2-marvell.postrm | 31 + linux-image-4.8.0-0.bpo.2-marvell.preinst | 21 + linux-image-4.8.0-0.bpo.2-marvell.prerm | 17 + linux-image-4.8.0-0.bpo.2-octeon.postinst | 25 + linux-image-4.8.0-0.bpo.2-octeon.postrm | 31 + linux-image-4.8.0-0.bpo.2-octeon.preinst | 21 + linux-image-4.8.0-0.bpo.2-octeon.prerm | 17 + linux-image-4.8.0-0.bpo.2-parisc.postinst | 25 + linux-image-4.8.0-0.bpo.2-parisc.postrm | 31 + linux-image-4.8.0-0.bpo.2-parisc.preinst | 21 + linux-image-4.8.0-0.bpo.2-parisc.prerm | 17 + ...-image-4.8.0-0.bpo.2-parisc64-smp.postinst | 25 + linux-image-4.8.0-0.bpo.2-parisc64-smp.postrm | 31 + ...x-image-4.8.0-0.bpo.2-parisc64-smp.preinst | 21 + linux-image-4.8.0-0.bpo.2-parisc64-smp.prerm | 17 + ....8.0-0.bpo.2-powerpc-smp-unsigned.postinst | 25 + ...-4.8.0-0.bpo.2-powerpc-smp-unsigned.postrm | 31 + ...4.8.0-0.bpo.2-powerpc-smp-unsigned.preinst | 21 + ...e-4.8.0-0.bpo.2-powerpc-smp-unsigned.prerm | 17 + ...ge-4.8.0-0.bpo.2-powerpc-unsigned.postinst | 25 + ...mage-4.8.0-0.bpo.2-powerpc-unsigned.postrm | 31 + ...age-4.8.0-0.bpo.2-powerpc-unsigned.preinst | 21 + ...image-4.8.0-0.bpo.2-powerpc-unsigned.prerm | 17 + ...-4.8.0-0.bpo.2-powerpc64-unsigned.postinst | 25 + ...ge-4.8.0-0.bpo.2-powerpc64-unsigned.postrm | 31 + ...e-4.8.0-0.bpo.2-powerpc64-unsigned.preinst | 21 + ...age-4.8.0-0.bpo.2-powerpc64-unsigned.prerm | 17 + linux-image-4.8.0-0.bpo.2-powerpc64.postinst | 25 + linux-image-4.8.0-0.bpo.2-powerpc64.postrm | 31 + linux-image-4.8.0-0.bpo.2-powerpc64.preinst | 21 + linux-image-4.8.0-0.bpo.2-powerpc64.prerm | 17 + ....8.0-0.bpo.2-powerpc64le-unsigned.postinst | 25 + ...-4.8.0-0.bpo.2-powerpc64le-unsigned.postrm | 31 + ...4.8.0-0.bpo.2-powerpc64le-unsigned.preinst | 21 + ...e-4.8.0-0.bpo.2-powerpc64le-unsigned.prerm | 17 + linux-image-4.8.0-0.bpo.2-powerpcspe.postinst | 25 + linux-image-4.8.0-0.bpo.2-powerpcspe.postrm | 31 + linux-image-4.8.0-0.bpo.2-powerpcspe.preinst | 21 + linux-image-4.8.0-0.bpo.2-powerpcspe.prerm | 17 + ...0-0.bpo.2-rt-686-pae-dbg.lintian-overrides | 2 + ...4.8.0-0.bpo.2-rt-686-pae-unsigned.postinst | 25 + ...e-4.8.0-0.bpo.2-rt-686-pae-unsigned.postrm | 31 + ...-4.8.0-0.bpo.2-rt-686-pae-unsigned.preinst | 21 + ...ge-4.8.0-0.bpo.2-rt-686-pae-unsigned.prerm | 17 + ...8.0-0.bpo.2-rt-amd64-dbg.lintian-overrides | 2 + ...e-4.8.0-0.bpo.2-rt-amd64-unsigned.postinst | 25 + ...age-4.8.0-0.bpo.2-rt-amd64-unsigned.postrm | 31 + ...ge-4.8.0-0.bpo.2-rt-amd64-unsigned.preinst | 21 + ...mage-4.8.0-0.bpo.2-rt-amd64-unsigned.prerm | 17 + ...-4.8.0-0.bpo.2-s390x-dbg.lintian-overrides | 2 + ...mage-4.8.0-0.bpo.2-s390x-unsigned.postinst | 25 + ...-image-4.8.0-0.bpo.2-s390x-unsigned.postrm | 31 + ...image-4.8.0-0.bpo.2-s390x-unsigned.preinst | 21 + ...x-image-4.8.0-0.bpo.2-s390x-unsigned.prerm | 17 + linux-image-4.8.0-0.bpo.2-sh7751r.postinst | 25 + linux-image-4.8.0-0.bpo.2-sh7751r.postrm | 31 + linux-image-4.8.0-0.bpo.2-sh7751r.preinst | 21 + linux-image-4.8.0-0.bpo.2-sh7751r.prerm | 17 + linux-image-4.8.0-0.bpo.2-sh7785lcr.postinst | 25 + linux-image-4.8.0-0.bpo.2-sh7785lcr.postrm | 31 + linux-image-4.8.0-0.bpo.2-sh7785lcr.preinst | 21 + linux-image-4.8.0-0.bpo.2-sh7785lcr.prerm | 17 + ...x-image-4.8.0-0.bpo.2-sparc64-smp.postinst | 25 + linux-image-4.8.0-0.bpo.2-sparc64-smp.postrm | 31 + linux-image-4.8.0-0.bpo.2-sparc64-smp.preinst | 21 + linux-image-4.8.0-0.bpo.2-sparc64-smp.prerm | 17 + linux-image-4.8.0-0.bpo.2-sparc64.postinst | 25 + linux-image-4.8.0-0.bpo.2-sparc64.postrm | 31 + linux-image-4.8.0-0.bpo.2-sparc64.preinst | 21 + linux-image-4.8.0-0.bpo.2-sparc64.prerm | 17 + linux-image-4.8.0-0.bpo.2-versatile.postinst | 25 + linux-image-4.8.0-0.bpo.2-versatile.postrm | 31 + linux-image-4.8.0-0.bpo.2-versatile.preinst | 21 + linux-image-4.8.0-0.bpo.2-versatile.prerm | 17 + ...4.8.0-2-4kc-malta-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-4kc-malta.postinst | 25 + linux-image-4.8.0-2-4kc-malta.postrm | 31 + linux-image-4.8.0-2-4kc-malta.preinst | 21 + linux-image-4.8.0-2-4kc-malta.prerm | 17 + ...4.8.0-2-5kc-malta-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-5kc-malta.postinst | 25 + linux-image-4.8.0-2-5kc-malta.postrm | 31 + linux-image-4.8.0-2-5kc-malta.preinst | 21 + linux-image-4.8.0-2-5kc-malta.prerm | 17 + ...image-4.8.0-2-686-dbgsym.lintian-overrides | 2 + ...e-4.8.0-2-686-pae-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-686-pae-unsigned.postinst | 25 + linux-image-4.8.0-2-686-pae-unsigned.postrm | 31 + linux-image-4.8.0-2-686-pae-unsigned.preinst | 21 + linux-image-4.8.0-2-686-pae-unsigned.prerm | 17 + linux-image-4.8.0-2-686-unsigned.postinst | 25 + linux-image-4.8.0-2-686-unsigned.postrm | 31 + linux-image-4.8.0-2-686-unsigned.preinst | 21 + linux-image-4.8.0-2-686-unsigned.prerm | 17 + ...0-2-alpha-generic-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-alpha-generic.postinst | 25 + linux-image-4.8.0-2-alpha-generic.postrm | 31 + linux-image-4.8.0-2-alpha-generic.preinst | 21 + linux-image-4.8.0-2-alpha-generic.prerm | 17 + ...4.8.0-2-alpha-smp-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-alpha-smp.postinst | 25 + linux-image-4.8.0-2-alpha-smp.postrm | 31 + linux-image-4.8.0-2-alpha-smp.preinst | 21 + linux-image-4.8.0-2-alpha-smp.prerm | 17 + ...age-4.8.0-2-amd64-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-amd64-unsigned.postinst | 25 + linux-image-4.8.0-2-amd64-unsigned.postrm | 31 + linux-image-4.8.0-2-amd64-unsigned.preinst | 21 + linux-image-4.8.0-2-amd64-unsigned.prerm | 17 + ...age-4.8.0-2-arm64-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-arm64-unsigned.postinst | 25 + linux-image-4.8.0-2-arm64-unsigned.postrm | 31 + linux-image-4.8.0-2-arm64-unsigned.preinst | 21 + linux-image-4.8.0-2-arm64-unsigned.prerm | 17 + ...age-4.8.0-2-armmp-dbgsym.lintian-overrides | 2 + ....8.0-2-armmp-lpae-dbgsym.lintian-overrides | 2 + ...image-4.8.0-2-armmp-lpae-unsigned.postinst | 25 + ...x-image-4.8.0-2-armmp-lpae-unsigned.postrm | 31 + ...-image-4.8.0-2-armmp-lpae-unsigned.preinst | 21 + linux-image-4.8.0-2-armmp-lpae-unsigned.prerm | 17 + linux-image-4.8.0-2-armmp-unsigned.postinst | 25 + linux-image-4.8.0-2-armmp-unsigned.postrm | 31 + linux-image-4.8.0-2-armmp-unsigned.preinst | 21 + linux-image-4.8.0-2-armmp-unsigned.prerm | 17 + ....8.0-2-loongson-3-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-loongson-3.postinst | 25 + linux-image-4.8.0-2-loongson-3.postrm | 31 + linux-image-4.8.0-2-loongson-3.preinst | 21 + linux-image-4.8.0-2-loongson-3.prerm | 17 + ...mage-4.8.0-2-m68k-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-m68k.postinst | 25 + linux-image-4.8.0-2-m68k.postrm | 31 + linux-image-4.8.0-2-m68k.preinst | 21 + linux-image-4.8.0-2-m68k.prerm | 17 + ...e-4.8.0-2-marvell-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-marvell.postinst | 25 + linux-image-4.8.0-2-marvell.postrm | 31 + linux-image-4.8.0-2-marvell.preinst | 21 + linux-image-4.8.0-2-marvell.prerm | 17 + ...ge-4.8.0-2-octeon-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-octeon.postinst | 25 + linux-image-4.8.0-2-octeon.postrm | 31 + linux-image-4.8.0-2-octeon.preinst | 21 + linux-image-4.8.0-2-octeon.prerm | 17 + ...ge-4.8.0-2-parisc-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-parisc.postinst | 25 + linux-image-4.8.0-2-parisc.postrm | 31 + linux-image-4.8.0-2-parisc.preinst | 21 + linux-image-4.8.0-2-parisc.prerm | 17 + ....0-2-parisc64-smp-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-parisc64-smp.postinst | 25 + linux-image-4.8.0-2-parisc64-smp.postrm | 31 + linux-image-4.8.0-2-parisc64-smp.preinst | 21 + linux-image-4.8.0-2-parisc64-smp.prerm | 17 + ...e-4.8.0-2-powerpc-dbgsym.lintian-overrides | 2 + ...8.0-2-powerpc-smp-dbgsym.lintian-overrides | 2 + ...mage-4.8.0-2-powerpc-smp-unsigned.postinst | 25 + ...-image-4.8.0-2-powerpc-smp-unsigned.postrm | 31 + ...image-4.8.0-2-powerpc-smp-unsigned.preinst | 21 + ...x-image-4.8.0-2-powerpc-smp-unsigned.prerm | 17 + linux-image-4.8.0-2-powerpc-unsigned.postinst | 25 + linux-image-4.8.0-2-powerpc-unsigned.postrm | 31 + linux-image-4.8.0-2-powerpc-unsigned.preinst | 21 + linux-image-4.8.0-2-powerpc-unsigned.prerm | 17 + ...4.8.0-2-powerpc64-dbgsym.lintian-overrides | 2 + ...-image-4.8.0-2-powerpc64-unsigned.postinst | 25 + linux-image-4.8.0-2-powerpc64-unsigned.postrm | 31 + ...x-image-4.8.0-2-powerpc64-unsigned.preinst | 21 + linux-image-4.8.0-2-powerpc64-unsigned.prerm | 17 + linux-image-4.8.0-2-powerpc64.postinst | 25 + linux-image-4.8.0-2-powerpc64.postrm | 31 + linux-image-4.8.0-2-powerpc64.preinst | 21 + linux-image-4.8.0-2-powerpc64.prerm | 17 + ...8.0-2-powerpc64le-dbgsym.lintian-overrides | 2 + ...mage-4.8.0-2-powerpc64le-unsigned.postinst | 25 + ...-image-4.8.0-2-powerpc64le-unsigned.postrm | 31 + ...image-4.8.0-2-powerpc64le-unsigned.preinst | 21 + ...x-image-4.8.0-2-powerpc64le-unsigned.prerm | 17 + ....8.0-2-powerpcspe-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-powerpcspe.postinst | 25 + linux-image-4.8.0-2-powerpcspe.postrm | 31 + linux-image-4.8.0-2-powerpcspe.preinst | 21 + linux-image-4.8.0-2-powerpcspe.prerm | 17 + ....8.0-2-rt-686-pae-dbgsym.lintian-overrides | 2 + ...image-4.8.0-2-rt-686-pae-unsigned.postinst | 25 + ...x-image-4.8.0-2-rt-686-pae-unsigned.postrm | 31 + ...-image-4.8.0-2-rt-686-pae-unsigned.preinst | 21 + linux-image-4.8.0-2-rt-686-pae-unsigned.prerm | 17 + ...-4.8.0-2-rt-amd64-dbgsym.lintian-overrides | 2 + ...x-image-4.8.0-2-rt-amd64-unsigned.postinst | 25 + linux-image-4.8.0-2-rt-amd64-unsigned.postrm | 31 + linux-image-4.8.0-2-rt-amd64-unsigned.preinst | 21 + linux-image-4.8.0-2-rt-amd64-unsigned.prerm | 17 + ...age-4.8.0-2-s390x-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-s390x-unsigned.postinst | 25 + linux-image-4.8.0-2-s390x-unsigned.postrm | 31 + linux-image-4.8.0-2-s390x-unsigned.preinst | 21 + linux-image-4.8.0-2-s390x-unsigned.prerm | 17 + ...e-4.8.0-2-sh7751r-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-sh7751r.postinst | 25 + linux-image-4.8.0-2-sh7751r.postrm | 31 + linux-image-4.8.0-2-sh7751r.preinst | 21 + linux-image-4.8.0-2-sh7751r.prerm | 17 + ...4.8.0-2-sh7785lcr-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-sh7785lcr.postinst | 25 + linux-image-4.8.0-2-sh7785lcr.postrm | 31 + linux-image-4.8.0-2-sh7785lcr.preinst | 21 + linux-image-4.8.0-2-sh7785lcr.prerm | 17 + ...e-4.8.0-2-sparc64-dbgsym.lintian-overrides | 2 + ...8.0-2-sparc64-smp-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-sparc64-smp.postinst | 25 + linux-image-4.8.0-2-sparc64-smp.postrm | 31 + linux-image-4.8.0-2-sparc64-smp.preinst | 21 + linux-image-4.8.0-2-sparc64-smp.prerm | 17 + linux-image-4.8.0-2-sparc64.postinst | 25 + linux-image-4.8.0-2-sparc64.postrm | 31 + linux-image-4.8.0-2-sparc64.preinst | 21 + linux-image-4.8.0-2-sparc64.prerm | 17 + ...4.8.0-2-versatile-dbgsym.lintian-overrides | 2 + linux-image-4.8.0-2-versatile.postinst | 25 + linux-image-4.8.0-2-versatile.postrm | 31 + linux-image-4.8.0-2-versatile.preinst | 21 + linux-image-4.8.0-2-versatile.prerm | 17 + ...4.9.0-1-4kc-malta-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-4kc-malta.postinst | 25 + linux-image-4.9.0-1-4kc-malta.postrm | 31 + linux-image-4.9.0-1-4kc-malta.preinst | 21 + linux-image-4.9.0-1-4kc-malta.prerm | 17 + ...4.9.0-1-5kc-malta-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-5kc-malta.postinst | 25 + linux-image-4.9.0-1-5kc-malta.postrm | 31 + linux-image-4.9.0-1-5kc-malta.preinst | 21 + linux-image-4.9.0-1-5kc-malta.prerm | 17 + ...image-4.9.0-1-686-dbgsym.lintian-overrides | 2 + ...e-4.9.0-1-686-pae-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-686-pae-unsigned.postinst | 25 + linux-image-4.9.0-1-686-pae-unsigned.postrm | 31 + linux-image-4.9.0-1-686-pae-unsigned.preinst | 21 + linux-image-4.9.0-1-686-pae-unsigned.prerm | 17 + linux-image-4.9.0-1-686-unsigned.postinst | 25 + linux-image-4.9.0-1-686-unsigned.postrm | 31 + linux-image-4.9.0-1-686-unsigned.preinst | 21 + linux-image-4.9.0-1-686-unsigned.prerm | 17 + ...0-1-alpha-generic-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-alpha-generic.postinst | 25 + linux-image-4.9.0-1-alpha-generic.postrm | 31 + linux-image-4.9.0-1-alpha-generic.preinst | 21 + linux-image-4.9.0-1-alpha-generic.prerm | 17 + ...4.9.0-1-alpha-smp-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-alpha-smp.postinst | 25 + linux-image-4.9.0-1-alpha-smp.postrm | 31 + linux-image-4.9.0-1-alpha-smp.preinst | 21 + linux-image-4.9.0-1-alpha-smp.prerm | 17 + ...age-4.9.0-1-amd64-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-amd64-unsigned.postinst | 25 + linux-image-4.9.0-1-amd64-unsigned.postrm | 31 + linux-image-4.9.0-1-amd64-unsigned.preinst | 21 + linux-image-4.9.0-1-amd64-unsigned.prerm | 17 + ...age-4.9.0-1-arm64-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-arm64-unsigned.postinst | 25 + linux-image-4.9.0-1-arm64-unsigned.postrm | 31 + linux-image-4.9.0-1-arm64-unsigned.preinst | 21 + linux-image-4.9.0-1-arm64-unsigned.prerm | 17 + ...age-4.9.0-1-armmp-dbgsym.lintian-overrides | 2 + ....9.0-1-armmp-lpae-dbgsym.lintian-overrides | 2 + ...image-4.9.0-1-armmp-lpae-unsigned.postinst | 25 + ...x-image-4.9.0-1-armmp-lpae-unsigned.postrm | 31 + ...-image-4.9.0-1-armmp-lpae-unsigned.preinst | 21 + linux-image-4.9.0-1-armmp-lpae-unsigned.prerm | 17 + linux-image-4.9.0-1-armmp-unsigned.postinst | 25 + linux-image-4.9.0-1-armmp-unsigned.postrm | 31 + linux-image-4.9.0-1-armmp-unsigned.preinst | 21 + linux-image-4.9.0-1-armmp-unsigned.prerm | 17 + ....9.0-1-loongson-3-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-loongson-3.postinst | 25 + linux-image-4.9.0-1-loongson-3.postrm | 31 + linux-image-4.9.0-1-loongson-3.preinst | 21 + linux-image-4.9.0-1-loongson-3.prerm | 17 + ...mage-4.9.0-1-m68k-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-m68k.postinst | 25 + linux-image-4.9.0-1-m68k.postrm | 31 + linux-image-4.9.0-1-m68k.preinst | 21 + linux-image-4.9.0-1-m68k.prerm | 17 + ...e-4.9.0-1-marvell-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-marvell.postinst | 25 + linux-image-4.9.0-1-marvell.postrm | 31 + linux-image-4.9.0-1-marvell.preinst | 21 + linux-image-4.9.0-1-marvell.prerm | 17 + ...ge-4.9.0-1-octeon-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-octeon.postinst | 25 + linux-image-4.9.0-1-octeon.postrm | 31 + linux-image-4.9.0-1-octeon.preinst | 21 + linux-image-4.9.0-1-octeon.prerm | 17 + ...ge-4.9.0-1-parisc-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-parisc.postinst | 25 + linux-image-4.9.0-1-parisc.postrm | 31 + linux-image-4.9.0-1-parisc.preinst | 21 + linux-image-4.9.0-1-parisc.prerm | 17 + ....0-1-parisc64-smp-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-parisc64-smp.postinst | 25 + linux-image-4.9.0-1-parisc64-smp.postrm | 31 + linux-image-4.9.0-1-parisc64-smp.preinst | 21 + linux-image-4.9.0-1-parisc64-smp.prerm | 17 + ...e-4.9.0-1-powerpc-dbgsym.lintian-overrides | 2 + ...9.0-1-powerpc-smp-dbgsym.lintian-overrides | 2 + ...mage-4.9.0-1-powerpc-smp-unsigned.postinst | 25 + ...-image-4.9.0-1-powerpc-smp-unsigned.postrm | 31 + ...image-4.9.0-1-powerpc-smp-unsigned.preinst | 21 + ...x-image-4.9.0-1-powerpc-smp-unsigned.prerm | 17 + linux-image-4.9.0-1-powerpc-unsigned.postinst | 25 + linux-image-4.9.0-1-powerpc-unsigned.postrm | 31 + linux-image-4.9.0-1-powerpc-unsigned.preinst | 21 + linux-image-4.9.0-1-powerpc-unsigned.prerm | 17 + ...4.9.0-1-powerpc64-dbgsym.lintian-overrides | 2 + ...-image-4.9.0-1-powerpc64-unsigned.postinst | 25 + linux-image-4.9.0-1-powerpc64-unsigned.postrm | 31 + ...x-image-4.9.0-1-powerpc64-unsigned.preinst | 21 + linux-image-4.9.0-1-powerpc64-unsigned.prerm | 17 + linux-image-4.9.0-1-powerpc64.postinst | 25 + linux-image-4.9.0-1-powerpc64.postrm | 31 + linux-image-4.9.0-1-powerpc64.preinst | 21 + linux-image-4.9.0-1-powerpc64.prerm | 17 + ...9.0-1-powerpc64le-dbgsym.lintian-overrides | 2 + ...mage-4.9.0-1-powerpc64le-unsigned.postinst | 25 + ...-image-4.9.0-1-powerpc64le-unsigned.postrm | 31 + ...image-4.9.0-1-powerpc64le-unsigned.preinst | 21 + ...x-image-4.9.0-1-powerpc64le-unsigned.prerm | 17 + ....9.0-1-powerpcspe-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-powerpcspe.postinst | 25 + linux-image-4.9.0-1-powerpcspe.postrm | 31 + linux-image-4.9.0-1-powerpcspe.preinst | 21 + linux-image-4.9.0-1-powerpcspe.prerm | 17 + ....9.0-1-rt-686-pae-dbgsym.lintian-overrides | 2 + ...image-4.9.0-1-rt-686-pae-unsigned.postinst | 25 + ...x-image-4.9.0-1-rt-686-pae-unsigned.postrm | 31 + ...-image-4.9.0-1-rt-686-pae-unsigned.preinst | 21 + linux-image-4.9.0-1-rt-686-pae-unsigned.prerm | 17 + ...-4.9.0-1-rt-amd64-dbgsym.lintian-overrides | 2 + ...x-image-4.9.0-1-rt-amd64-unsigned.postinst | 25 + linux-image-4.9.0-1-rt-amd64-unsigned.postrm | 31 + linux-image-4.9.0-1-rt-amd64-unsigned.preinst | 21 + linux-image-4.9.0-1-rt-amd64-unsigned.prerm | 17 + ...age-4.9.0-1-s390x-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-s390x-unsigned.postinst | 25 + linux-image-4.9.0-1-s390x-unsigned.postrm | 31 + linux-image-4.9.0-1-s390x-unsigned.preinst | 21 + linux-image-4.9.0-1-s390x-unsigned.prerm | 17 + ...e-4.9.0-1-sh7751r-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-sh7751r.postinst | 25 + linux-image-4.9.0-1-sh7751r.postrm | 31 + linux-image-4.9.0-1-sh7751r.preinst | 21 + linux-image-4.9.0-1-sh7751r.prerm | 17 + ...4.9.0-1-sh7785lcr-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-sh7785lcr.postinst | 25 + linux-image-4.9.0-1-sh7785lcr.postrm | 31 + linux-image-4.9.0-1-sh7785lcr.preinst | 21 + linux-image-4.9.0-1-sh7785lcr.prerm | 17 + ...e-4.9.0-1-sparc64-dbgsym.lintian-overrides | 2 + ...9.0-1-sparc64-smp-dbgsym.lintian-overrides | 2 + linux-image-4.9.0-1-sparc64-smp.postinst | 25 + linux-image-4.9.0-1-sparc64-smp.postrm | 31 + linux-image-4.9.0-1-sparc64-smp.preinst | 21 + linux-image-4.9.0-1-sparc64-smp.prerm | 17 + linux-image-4.9.0-1-sparc64.postinst | 25 + linux-image-4.9.0-1-sparc64.postrm | 31 + linux-image-4.9.0-1-sparc64.preinst | 21 + linux-image-4.9.0-1-sparc64.prerm | 17 + linux-perf-4.8.lintian-overrides | 3 + linux-perf-4.9.lintian-overrides | 3 + lockdep.dirs | 1 + .../all/cpupower-bump-soname-version.patch | 29 + ...pupower-fix-checks-for-cpu-existence.patch | 49 + .../all/disable-some-marvell-phys.patch | 91 + patches/bugfix/all/ext4-fix-bug-838544.patch | 218 + ...-redundant-log-messages-from-drivers.patch | 2660 ++ ..._class-log-every-success-and-failure.patch | 64 + ...ftdep-declarations-for-hard-coded-cr.patch | 85 + ...use-hyphen-in-exported-variable-name.patch | 48 + .../kbuild-fix-recordmcount-dependency.patch | 23 + ...kbuild-use-nostdinc-in-compile-tests.patch | 84 + ...blockdep-define-the-array_size-macro.patch | 26 + .../liblockdep-enable-wall-by-default.patch | 28 + ...efined-but-not-used-warning-for-init.patch | 54 + ...ockdep-fix-set-but-not-used-warnings.patch | 44 + ...dep-fix-undefined-symbol-prandom_u32.patch | 34 + ...liblockdep-fix-unused-value-warnings.patch | 72 + ...e-max_lock_depth-to-avoid-overflowin.patch | 44 + .../bugfix/all/lockdep-fix-oot-build.patch | 40 + patches/bugfix/all/lockdep-fix-soname.patch | 18 + ...kqueue-for-creating-per-memcg-caches.patch | 73 + ...disable-matching-missing-version-crc.patch | 23 + ...-usb-kconfig-using-select-for-usb_co.patch | 28 + ...uired-for-drm-and-kms-on-r600-onward.patch | 80 + ...ove-bpf-run-time-check-at-build-time.patch | 34 + .../all/tools-lib-lockdep-use-ldflags.patch | 18 + ...t-fix-use-of-uninitialized-variables.patch | 70 + .../tools-lib-traceevent-use-ldflags.patch | 27 + patches/bugfix/all/tools-perf-man-date.patch | 33 + .../all/tools-perf-remove-shebangs.patch | 39 + .../all/usbip-document-tcp-wrappers.patch | 29 + ...support-for-__sane_userspace_types__.patch | 56 + ...a-move-exports-to-actual-definitions.patch | 949 + ...ert-ia64-move-exports-to-definitions.patch | 643 + ...ert-m68k-move-exports-to-definitions.patch | 254 + ...ing-crcs-add-yet-more-asm-prototypes.patch | 27 + .../powerpc-remove-mac-on-linux-hooks.patch | 53 + ...ert-s390-move-exports-to-definitions.patch | 141 + ...rt-sparc-move-exports-to-definitions.patch | 1291 + ...d-fix-libunwind-feature-detection-on.patch | 22 + .../tools-hv-fix-fortify-format-warning.patch | 55 + .../viafb-autoload-on-olpc-xo1.5-only.patch | 34 + ...nprivileged-CLONE_NEWUSER-by-default.patch | 93 + ...e-auto-loading-as-mitigation-against.patch | 29 + .../debian/arch-sh4-fix-uimage-build.patch | 18 + .../cdc_ncm-cdc_mbim-use-ncm-by-default.patch | 27 + ...uto-loading-as-mitigation-against-lo.patch | 37 + ...-powerpc-platforms-8xx-ucode-disable.patch | 29 + ...ers-media-dvb-dvb-usb-af9005-disable.patch | 15 + .../dfsg/drivers-net-appletalk-cops.patch | 50 + patches/debian/dfsg/files-1 | 20 + patches/debian/dfsg/firmware-cleanup.patch | 34 + .../video-remove-nvidiafb-and-rivafb.patch | 130 + patches/debian/dfsg/vs6624-disable.patch | 15 + ...n-use-of-fanotify_access_permissions.patch | 29 + ...ink-security-restrictions-by-default.patch | 22 + patches/debian/gitignore.patch | 44 + ...86-pae-pci-set-pci-nobios-by-default.patch | 27 + ...i-do-not-request-unreleased-firmware.patch | 26 + patches/debian/kernelvariables.patch | 104 + patches/debian/mips-disable-werror.patch | 28 + patches/debian/modpost-symbol-prefix.patch | 22 + patches/debian/powerpcspe-omit-uimage.patch | 43 + ...-loading-as-mitigation-against-local.patch | 34 + patches/debian/sched-autogroup-disabled.patch | 19 + .../debian/snd-pcsp-disable-autoload.patch | 30 + patches/debian/tools-perf-install.patch | 50 + patches/debian/tools-perf-version.patch | 106 + patches/debian/uname-version-timestamp.patch | 33 + patches/debian/version.patch | 138 + patches/debian/yama-disable-by-default.patch | 26 + ...fig-Verbose-version-of-listnewconfig.patch | 155 + patches/features/all/aufs4/aufs4-base.patch | 240 + patches/features/all/aufs4/aufs4-mmap.patch | 418 + .../features/all/aufs4/aufs4-standalone.patch | 398 + patches/features/all/aufs4/gen-patch | 31 + ...edia-dvb-usb-af9005-request_firmware.patch | 145 + ...n-translation-section-permission-fau.patch | 86 + ...intk-drop-the-logbuf_lock-more-often.patch | 76 + ...wngrade-preempt_disable-d-region-to-.patch | 52 + ...-mark-LAPIC-timer-handler-as-irqsafe.patch | 26 + ...-replace-seqcount_t-with-a-seqlock_t.patch | 128 + ...acpi_gbl_hardware-lock-back-to-a-raw.patch | 174 + .../arch-arm64-Add-lazy-preempt-support.patch | 119 + ...ove-irq-handler-when-clock-is-unused.patch | 145 + ...-tclib-default-to-tclib-timer-for-rt.patch | 33 + .../all/rt/arm-convert-boot-lock-to-raw.patch | 408 + .../all/rt/arm-enable-highmem-for-rt.patch | 174 + .../rt/arm-highmem-flush-tlb-on-unmap.patch | 28 + ...arm-include-definition-for-cpumask_t.patch | 25 + ...probe-replace-patch_lock-to-raw-lock.patch | 71 + .../all/rt/arm-preempt-lazy-support.patch | 152 + .../all/rt/arm-unwind-use_raw_lock.patch | 84 + ...arm64-xen--Make-XEN-depend-on-non-rt.patch | 24 + .../rt/at91_dont_enable_disable_clock.patch | 92 + .../rt/ata-disable-interrupts-if-non-rt.patch | 65 + .../all/rt/block-blk-mq-use-swait.patch | 115 + ...k-mq-don-t-complete-requests-via-IPI.patch | 103 + .../rt/block-mq-drop-preempt-disable.patch | 52 + .../all/rt/block-mq-use-cpu_light.patch | 30 + ...k-shorten-interrupt-disabled-regions.patch | 97 + .../features/all/rt/block-use-cpu-chill.patch | 46 + ..._btrfs_all_work_done-from-normal_wor.patch | 39 + ...-and-trace-point-in-run_ordered_work.patch | 34 + .../all/rt/bug-rt-dependend-variants.patch | 37 + ...heduling-while-atomic-in-cgroup-code.patch | 105 + ...roups-use-simple-wait-in-css_release.patch | 87 + ...ers-timer-atmel-pit-fix-double-free_.patch | 46 + ...source-tclib-allow-higher-clockrates.patch | 158 + .../completion-use-simple-wait-queues.patch | 348 + .../all/rt/cond-resched-lock-rt-tweak.patch | 27 + .../all/rt/cond-resched-softirq-rt.patch | 53 + ...c-Protect-send_msg-with-a-local-lock.patch | 68 + ...ument-why-PREEMPT_RT-uses-a-spinlock.patch | 56 + ...tplug-lock-a-sleeping-spinlock-on-rt.patch | 115 + .../all/rt/cpu-rt-rework-cpu-down.patch | 526 + ...-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch | 107 + .../cpu_down_move_migrate_enable_back.patch | 53 + ...rop-K8-s-driver-from-beeing-selected.patch | 33 + .../rt/cpumask-disable-offstack-on-rt.patch | 68 + ...-preempt-disabled-regions-more-algos.patch | 242 + patches/features/all/rt/debugobjects-rt.patch | 26 + .../features/all/rt/dm-make-rt-aware.patch | 27 + ...am-Replace-bit-spinlocks-with-rtmute.patch | 176 + .../drivers-net-8139-disable-irq-nosync.patch | 26 + ...rivers-net-vortex-fix-locking-issues.patch | 49 + ...andom-reduce-preempt-disabled-region.patch | 33 + .../rt/drivers-tty-fix-omap-lock-crap.patch | 43 + ...rivers-tty-pl011-irq-disable-madness.patch | 48 + ...-t-disable-preemption-in-zcomp_strea.patch | 92 + ...op-trace_i915_gem_ring_dispatch-onrt.patch | 59 + ...rq()_in_intel_pipe_update_startend().patch | 113 + ...disableenable_rt()_where_recommended.patch | 52 + .../all/rt/epoll-use-get-cpu-light.patch | 31 + .../all/rt/fs-aio-simple-simple-work.patch | 107 + .../features/all/rt/fs-block-rt-support.patch | 23 + .../all/rt/fs-dcache-include-wait.h.patch | 24 + .../fs-dcache-init-in_lookup_hashtable.patch | 28 + ...cache-use-cpu-chill-in-trylock-loops.patch | 108 + ...use-swait_queue-instead-of-waitqueue.patch | 215 + .../all/rt/fs-jbd-replace-bh_state-lock.patch | 97 + ...ull-your-plug-when-waiting-for-space.patch | 32 + .../all/rt/fs-namespace-preemption-fix.patch | 31 + ...-nfs-turn-rmdir_sem-into-a-semaphore.patch | 139 + .../rt/fs-ntfs-disable-interrupt-non-rt.patch | 76 + .../fs-replace-bh_uptodate_lock-for-rt.patch | 162 + .../ftrace-Fix-trace-header-alignment.patch | 63 + .../rt/ftrace-migrate-disable-tracing.patch | 74 + ...k-unlock-symetry-versus-pi_lock-and-.patch | 43 + .../all/rt/futex-requeue-pi-fix.patch | 114 + .../all/rt/genirq-disable-irqpoll-on-rt.patch | 38 + ...voke-the-affinity-callback-via-a-wor.patch | 137 + .../all/rt/genirq-force-threading.patch | 49 + ...-irq_set_irqchip_state-documentation.patch | 26 + patches/features/all/rt/genpatch.py | 110 + .../gpu_don_t_check_for_the_lock_owner.patch | 33 + ...cpus_allowed_ptr-in-sync_unplug_thre.patch | 47 + .../rt/hotplug-light-get-online-cpus.patch | 198 + ...ync_unplug-no-27-5cn-27-in-task-name.patch | 25 + .../all/rt/hotplug-use-migrate-disable.patch | 40 + ...-schedule_work-call-to-helper-thread.patch | 92 + .../rt/hrtimer-enfore-64byte-alignment.patch | 28 + ...timer-callback-changes-for-preempt-r.patch | 341 + .../rt/hrtimers-prepare-full-preemption.patch | 205 + ...ng-from-i915-when-running-on-PREEMPT.patch | 30 + .../rt/ide-use-nort-local-irq-variants.patch | 170 + .../idr-use-local-lock-for-protection.patch | 124 + .../infiniband-mellanox-ib-use-nort-irq.patch | 41 + .../rt/inpt-gameport-use-local-irq-nort.patch | 61 + .../introduce_migrate_disable_cpu_light.patch | 281 + .../all/rt/iommu-amd--Use-WARN_ON_NORT.patch | 47 + ...-disable-preempt-around-this_cpu_ptr.patch | 82 + ...-disable-preemption-while-accessing-.patch | 59 + .../rt/ipc-sem-rework-semaphore-wakeups.patch | 70 + ...irq-processing-in-irq-thread-context.patch | 147 + ...rk-Move-irq-safe-work-to-irq-context.patch | 78 + ...-push_most_work_into_softirq_context.patch | 186 + patches/features/all/rt/jump-label-rt.patch | 36 + .../rt/kconfig-disable-a-few-options-rt.patch | 34 + .../all/rt/kconfig-preempt-rt-full.patch | 59 + ...el-SRCU-provide-a-static-initializer.patch | 125 + ...pu-down-problem-if-kthread-s-cpu-is-.patch | 86 + ...kernel-futex-don-t-deboost-too-early.patch | 162 + ...restore-original-cpu-mask-oncpu-down.patch | 59 + ...isable-do-fastpath-in-atomic-irqs-of.patch | 34 + ...-perf_cpu_context-s-timer-as-irqsafe.patch | 25 + ...n-t-try-to-print-from-IRQ-NMI-region.patch | 42 + ...e-stack-kprobe-clean-up-to-__put_tas.patch | 61 + .../kernel-softirq-unlock-with-irqs-on.patch | 28 + .../all/rt/kgb-serial-hackaround.patch | 102 + patches/features/all/rt/latency-hist.patch | 1818 ++ ...tency_hist-update-sched_wakeup-probe.patch | 41 + .../rt/latencyhist-disable-jump-labels.patch | 62 + ...ds-trigger-disable-CPU-trigger-on-RT.patch | 36 + .../list_bl-fixup-bogus-lockdep-warning.patch | 98 + ..._bl.h-make-list-head-locking-RT-safe.patch | 115 + .../rt/local-irq-rt-depending-variants.patch | 53 + .../all/rt/locallock-add-local_lock_on.patch | 32 + patches/features/all/rt/localversion.patch | 14 + .../lockdep-no-softirq-accounting-on-rt.patch | 59 + ...-fix-warnings-due-to-missing-PREEMPT.patch | 142 + ...ardirq-context-test-for-raw-spinlock.patch | 57 + ...ure-Do-NOT-include-rwlock.h-directly.patch | 27 + ...wsem-use-swait-for-the-wating-writer.patch | 73 + .../features/all/rt/md-disable-bcache.patch | 32 + .../md-raid5-percpu-handling-rt-aware.patch | 70 + .../all/rt/mips-disable-highmem-on-rt.patch | 23 + ...--rt--Fix-generic-kmap_atomic-for-RT.patch | 41 + ...on-t-disable-IRQs-in-wb_congested_pu.patch | 42 + .../rt/mm-bounce-local-irq-save-nort.patch | 28 + .../rt/mm-convert-swap-to-percpu-locked.patch | 191 + .../features/all/rt/mm-disable-sloub-rt.patch | 32 + patches/features/all/rt/mm-enable-slub.patch | 465 + .../all/rt/mm-make-vmstat-rt-aware.patch | 137 + ...n-t-call-schedule_work_on-in-preempt.patch | 69 + .../rt/mm-memcontrol-do_not_disable_irq.patch | 102 + ...m_cgroup_migrate-replace-another-loc.patch | 30 + ...e-alloc-use-local-lock-on-target-cpu.patch | 28 + ...e_alloc-reduce-lock-sections-further.patch | 205 + ...page_alloc-rt-friendly-per-cpu-pages.patch | 204 + ...m-perform-lru_add_drain_all-remotely.patch | 111 + .../rt/mm-protect-activate-switch-mm.patch | 72 + .../all/rt/mm-rt-kmap-atomic-scheduling.patch | 289 + ...-scatterlist-dont-disable-irqs-on-RT.patch | 44 + .../all/rt/mm-vmalloc-use-get-cpu-light.patch | 66 + ...-not-protect-workingset_shadow_nodes.patch | 154 + ...oc_copy_with_get_cpu_var_and_locking.patch | 197 + .../all/rt/mmci-remove-bogus-irq-save.patch | 40 + .../move_sched_delayed_work_to_helper.patch | 73 + .../features/all/rt/mutex-no-spin-on-rt.patch | 29 + ...schedule_irqoff-disable-interrupts-o.patch | 69 + ...Qdisc-use-a-seqlock-instead-seqcount.patch | 274 + .../rt/net-add-a-lock-around-icmp_sk.patch | 73 + ...-missing-serialization-in-ip_send_un.patch | 94 + ...al-irq-disable-alloc-atomic-headache.patch | 59 + ...tplug-drain-input_pkt_queue-lockless.patch | 47 + ...-users-of-napi_alloc_cache-against-r.patch | 113 + ...ake-qdisc-s-busylock-in-__dev_xmit_s.patch | 35 + ...ble-xt-write-recseq-begin-rt-fallout.patch | 75 + .../net-make-devnet_rename_seq-a-mutex.patch | 107 + ...recursion-to-per-task-variable-on-RT.patch | 151 + .../all/rt/net-prevent-abba-deadlock.patch | 112 + ...y-to-delegate-processing-a-softirq-t.patch | 79 + ...activate_many-use-msleep-1-instead-o.patch | 58 + .../features/all/rt/net-use-cpu-chill.patch | 63 + .../all/rt/net-wireless-warn-nort.patch | 24 + .../features/all/rt/oleg-signal-rt-fix.patch | 143 + .../all/rt/panic-disable-random-on-rt.patch | 27 + ...ce-rcu-bh-qs-where-safe-from-softirq.patch | 109 + .../pci-access-use-__wake_up_all_locked.patch | 26 + .../all/rt/percpu_ida-use-locklocks.patch | 102 + .../perf-make-swevent-hrtimer-irqsafe.patch | 69 + .../all/rt/peter_zijlstra-frob-rcu.patch | 167 + .../all/rt/peterz-percpu-rwsem-rt.patch | 219 + .../all/rt/peterz-srcu-crypto-chain.patch | 183 + .../all/rt/pid.h-include-atomic.h.patch | 37 + patches/features/all/rt/ping-sysrq.patch | 122 + .../all/rt/posix-timers-no-broadcast.patch | 34 + ...timers-thread-posix-cpu-timers-on-rt.patch | 302 + .../all/rt/power-disable-highmem-on-rt.patch | 23 + .../rt/power-use-generic-rwsem-on-rt.patch | 27 + ...ble-in-kernel-MPIC-emulation-for-PRE.patch | 38 + .../all/rt/powerpc-preempt-lazy-support.patch | 174 + ...ce-init.c-adapt-to-completions-using.patch | 32 + .../all/rt/preempt-lazy-support.patch | 589 + .../all/rt/preempt-nort-rt-variants.patch | 48 + ...27-boot-param-to-help-with-debugging.patch | 32 + patches/features/all/rt/printk-kill.patch | 164 + patches/features/all/rt/printk-rt-aware.patch | 92 + ...ace-fix-ptrace-vs-tasklist_lock-race.patch | 154 + .../features/all/rt/radix-tree-rt-aware.patch | 80 + .../all/rt/random-make-it-work-on-rt.patch | 133 + ...tree-include-rcu.h-because-we-use-it.patch | 25 + ...nate-softirq-processing-from-rcutree.patch | 434 + .../rt/rcu-disable-rcu-fast-no-hz-on-rt.patch | 25 + ..._normal_after_boot-by-default-for-RT.patch | 30 + .../rt/rcu-make-RCU_BOOST-default-on-RT.patch | 35 + ...merge-rcu-bh-into-rcu-preempt-for-rt.patch | 366 + ...pdate-make-RCU_EXPEDITE_BOOT-default.patch | 61 + ...s-disable-irq-while-calling-rcu_pree.patch | 49 + ...ate_disable-race-with-cpu-hotplug-3f.patch | 35 + ...l-arm-coredump-fails-for-cpu-3e-3d-4.patch | 69 + ...function-called-from-invalid-context.patch | 96 + patches/features/all/rt/rt-add-rt-locks.patch | 2235 ++ .../all/rt/rt-introduce-cpu-chill.patch | 129 + .../features/all/rt/rt-local-irq-lock.patch | 326 + ...-Reenable-migration-accross-schedule.patch | 112 + .../all/rt/rt-preempt-base-config.patch | 54 + .../features/all/rt/rt-serial-warn-fix.patch | 38 + ...ndle-non-enqueued-waiters-gracefully.patch | 33 + ...rtmutex-add-a-first-shot-of-ww_mutex.patch | 424 + .../all/rt/rtmutex-avoid-include-hell.patch | 24 + .../all/rt/rtmutex-futex-prepare-rt.patch | 244 + .../all/rt/rtmutex-lock-killable.patch | 52 + .../rt/rtmutex-trylock-is-okay-on-RT.patch | 28 + .../all/rt/rtmutex_dont_include_rcu.patch | 159 + ...rxrpc-remove-unused-static-variables.patch | 28 + ...t-t-disable-interrupts-in-qc_issue-h.patch | 79 + ...line-dl_task_timer-has-to-be-irqsafe.patch | 23 + .../all/rt/sched-delay-put-task.patch | 82 + .../sched-disable-rt-group-sched-on-rt.patch | 29 + .../all/rt/sched-disable-ttwu-queue.patch | 32 + .../all/rt/sched-limit-nr-migrate.patch | 27 + ...might-sleep-do-not-account-rcu-depth.patch | 48 + .../all/rt/sched-mmdrop-delayed.patch | 128 + .../all/rt/sched-rt-mutex-wakeup.patch | 94 + ...twu-ensure-success-return-is-correct.patch | 35 + ...Only-wake-up-idle-workers-if-not-blo.patch | 38 + .../features/all/rt/scsi-fcoe-rt-aware.patch | 106 + ...function-called-from-invalid-context.patch | 48 + .../rt/seqlock-prevent-rt-starvation.patch | 191 + .../all/rt/signal-fix-up-rcu-wreckage.patch | 39 + .../signal-revert-ptrace-preempt-magic.patch | 32 + ...t-tasks-to-cache-one-sigqueue-struct.patch | 199 + .../features/all/rt/skbufhead-raw-lock.patch | 158 + .../rt/slub-disable-SLUB_CPU_PARTIAL.patch | 48 + .../all/rt/slub-enable-irqs-for-no-wait.patch | 48 + ...pcm_stream_lock-irqs_disabled-splats.patch | 70 + ...oftirq-disable-softirq-stacks-for-rt.patch | 157 + .../all/rt/softirq-preempt-fix-3-re.patch | 170 + .../features/all/rt/softirq-split-locks.patch | 833 + ...plit-timer-softirqs-out-of-ksoftirqd.patch | 208 + ...arc64-use-generic-rwsem-spinlocks-rt.patch | 28 + .../all/rt/spinlock-types-separate-raw.patch | 209 + .../all/rt/stop-machine-raw-lock.patch | 116 + ...nvert-stop_machine_run-to-PREEMPT_RT.patch | 35 + ...vc_xprt_do_enqueue-use-get_cpu_light.patch | 63 + .../suspend-prevernt-might-sleep-splats.patch | 107 + .../all/rt/sysfs-realtime-entry.patch | 48 + ...-from-going-into-infinite-spin-in-rt.patch | 392 + ...rmal-Defer-thermal-wakups-to-threads.patch | 133 + ...tick-broadcast--Make-hrtimer-irqsafe.patch | 58 + .../rt/timekeeping-split-jiffies-lock.patch | 157 + ...-waking-softirqs-from-the-jiffy-tick.patch | 76 + .../all/rt/timer-fd-avoid-live-lock.patch | 31 + .../all/rt/timer-make-the-base-lock-raw.patch | 181 + .../timers-prepare-for-full-preemption.patch | 159 + ...st-Consider-new-argument-when-probin.patch | 38 + ...sion_for_preemptoff_hist_trace_point.patch | 91 + ...-for-preempt-off-in-preempt_schedule.patch | 47 + ...0-don-t-take-the-trylock-during-oops.patch | 29 + ...ove-preemption-disabling-in-netif_rx.patch | 66 + .../all/rt/usb-use-_nort-in-giveback.patch | 58 + .../all/rt/user-use-local-irq-nort.patch | 30 + .../all/rt/wait.h-include-atomic.h.patch | 33 + ...rk-around-irqsafe-timer-optimization.patch | 133 + ...mple-Simple-work-queue-implemenation.patch | 232 + .../rt/workqueue-distangle-from-rq-lock.patch | 270 + .../rt/workqueue-prevent-deadlock-stall.patch | 201 + .../all/rt/workqueue-use-locallock.patch | 147 + .../features/all/rt/workqueue-use-rcu.patch | 354 + .../rt/x86-UV-raw_spinlock-conversion.patch | 221 + ...-of-warning-acpi_ioapic_lock-defined.patch | 45 + ...ypto-reduce-preempt-disabled-regions.patch | 113 + ...highmem-add-a-already-used-pte-check.patch | 23 + .../all/rt/x86-io-apic-migra-no-unmask.patch | 28 + .../rt/x86-kvm-require-const-tsc-for-rt.patch | 31 + .../all/rt/x86-mce-timer-hrtimer.patch | 180 + ...-mce-use-swait-queue-for-mce-wakeups.patch | 160 + .../features/all/rt/x86-preempt-lazy.patch | 221 + ...ignal-delay-calling-signals-on-32bit.patch | 43 + .../rt/x86-stackprot-no-random-on-rt.patch | 47 + .../rt/x86-use-gen-rwsem-spinlocks-rt.patch | 29 + ...i-table-override-if-securelevel-is-s.patch | 74 + ...i-error-injection-if-securelevel-is-.patch | 45 + ..._rsdp-kernel-parameter-when-securele.patch | 36 + ...s-to-custom_method-if-securelevel-is.patch | 36 + .../add-bsd-style-securelevel-support.patch | 208 + ...tomatically-set-securelevel-when-in-.patch | 148 + ...-config-option-to-set-securelevel-wh.patch | 128 + ...e-secure-boot-if-shim-is-in-insecure.patch | 59 + ...t-debugfs-interface-when-securelevel.patch | 57 + ...ure-boot-if-shim-is-in-insecure-mode.patch | 66 + .../enable-cold-boot-attack-mitigation.patch | 49 + ...ignatures-when-securelevel-is-greate.patch | 24 + ...nate-disable-when-securelevel-is-set.patch | 36 + ...-runtime-if-securelevel-has-been-set.patch | 36 + ...secure_boot-flag-in-boot-params-acro.patch | 32 + ...nd-phram-when-securelevel-is-enabled.patch | 52 + ...r-access-when-securelevel-is-enabled.patch | 108 + ...-and-dev-kmem-when-securelevel-is-se.patch | 37 + ...susp-disable-when-securelevel-is-set.patch | 36 + ...-port-access-when-securelevel-is-ena.patch | 74 + ...t-msr-access-when-securelevel-is-set.patch | 46 + ...rther-restriction-of-perf_event_open.patch | 75 + ...arm-dts-add-support-for-turris-omnia.patch | 376 + ...mnia-add-support-for-ethernet-switch.patch | 102 + ...Add-Loongson-LS3A-RS780E-1-way-machi.patch | 57 + ...-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch | 29 + ...-Add-support-for-the-UBNT-E200-board.patch | 52 + ...make-x32-syscall-support-conditional.patch | 212 + .../x86-memtest-WARN-if-bad-RAM-found.patch | 28 + patches/series | 131 + patches/series-orig | 7 + patches/series-rt | 574 + rules | 119 + rules.d/Makefile | 17 + rules.d/Makefile.inc | 57 + rules.d/scripts/Makefile | 44 + rules.d/scripts/basic/Makefile | 5 + rules.d/scripts/genksyms/Makefile | 13 + rules.d/scripts/kconfig/Makefile | 13 + rules.d/scripts/mod/Makefile | 22 + rules.d/scripts/mod/Makefile.real | 23 + rules.d/scripts/mod/elfconfig.h | 7 + rules.d/scripts/mod/gendef.py | 20 + rules.d/scripts/mod/modpost.c | 136 + rules.d/scripts/mod/real-lsb-32/elfconfig.h | 4 + rules.d/scripts/mod/real-lsb-32/types.h | 3 + rules.d/scripts/mod/real-lsb-64/elfconfig.h | 4 + rules.d/scripts/mod/real-lsb-64/types.h | 3 + rules.d/scripts/mod/real-msb-32/elfconfig.h | 4 + rules.d/scripts/mod/real-msb-32/types.h | 3 + rules.d/scripts/mod/real-msb-64/elfconfig.h | 4 + rules.d/scripts/mod/real-msb-64/types.h | 3 + rules.d/scripts/mod/types.h | 9 + rules.d/tools/Makefile | 8 + rules.d/tools/hv/Makefile | 22 + rules.d/tools/hv/check-hyperv.c | 103 + rules.d/tools/lib/lockdep/Makefile | 20 + rules.d/tools/lib/lockdep/lockdep.in | 2 + rules.d/tools/perf/Makefile | 88 + rules.d/tools/power/cpupower/Makefile | 21 + rules.d/tools/usb/usbip/Makefile | 30 + rules.defs | 6 + rules.gen | 837 + rules.real | 714 + source/format | 2 + source/include-binaries | 1 + source/options | 2 + templates/control.docs.in | 33 + templates/control.extra.in | 26 + templates/control.headers.arch.in | 16 + templates/control.headers.featureset.in | 11 + templates/control.headers.in | 10 + templates/control.image-dbg.in | 6 + templates/control.image-unsigned.in | 10 + templates/control.image.in | 7 + templates/control.libc-dev.in | 9 + templates/control.main.in | 26 + templates/control.source.in | 69 + templates/control.tools.in | 140 + templates/headers.postinst.in | 18 + templates/image-dbg.lintian-override.in | 2 + templates/image.bug/control | 2 + templates/image.bug/include-0version | 9 + templates/image.bug/include-1cmdline | 9 + templates/image.bug/include-1tainted | 55 + templates/image.bug/include-dmesg | 21 + templates/image.bug/include-model | 60 + templates/image.bug/include-modules | 13 + templates/image.bug/include-network | 39 + templates/image.bug/include-pci | 12 + templates/image.bug/include-pstore | 77 + templates/image.bug/include-usb | 11 + templates/image.bug/presubj | 8 + templates/image.bug/script | 46 + templates/image.postinst.in | 25 + templates/image.postrm.in | 31 + templates/image.preinst.in | 21 + templates/image.prerm.in | 17 + templates/lintian-overrides.perf.in | 3 + templates/tests-control.main.in | 4 + tests/control | 5 + tests/selftests | 88 + upstream/signing-key.pgp | Bin 0 -> 6867 bytes usbip.install | 2 + usbip.manpages | 2 + watch | 4 + 2007 files changed, 120792 insertions(+) create mode 100644 .gitignore create mode 100644 README.Debian create mode 100644 README.source create mode 100755 bin/abiupdate.py create mode 100755 bin/buildcheck.py create mode 100755 bin/check-patches.sh create mode 100755 bin/gencontrol.py create mode 100755 bin/genorig.py create mode 100755 bin/getconfig.py create mode 100755 bin/git-tag-gpg-wrapper create mode 100755 bin/kconfig.py create mode 100755 bin/no-depmod create mode 100755 bin/stable-update create mode 100755 bin/stable-update.sh create mode 100755 bin/test-patches create mode 100755 bin/uscan-hook create mode 100644 certs/benh@debian.org.cert.pem create mode 100644 changelog create mode 100644 compat create mode 100644 config.defines.dump create mode 100644 config/alpha/config create mode 100644 config/alpha/config.alpha-generic create mode 100644 config/alpha/config.alpha-smp create mode 100644 config/alpha/defines create mode 100644 config/amd64/config create mode 100644 config/amd64/defines create mode 100644 config/amd64/none/defines create mode 100644 config/amd64/rt/defines create mode 100644 config/arm64/config create mode 100644 config/arm64/defines create mode 100644 config/arm64/none/defines create mode 100644 config/armel/config create mode 100644 config/armel/config.marvell create mode 100644 config/armel/defines create mode 100644 config/armhf/config create mode 100644 config/armhf/config.armmp-lpae create mode 100644 config/armhf/defines create mode 100644 config/config create mode 100644 config/defines create mode 100644 config/featureset-rt/config create mode 100644 config/featureset-rt/defines create mode 100644 config/hppa/config create mode 100644 config/hppa/config.parisc create mode 100644 config/hppa/config.parisc-smp create mode 100644 config/hppa/config.parisc64 create mode 100644 config/hppa/config.parisc64-smp create mode 100644 config/hppa/defines create mode 100644 config/i386/config create mode 100644 config/i386/config.686 create mode 100644 config/i386/config.686-pae create mode 100644 config/i386/defines create mode 100644 config/i386/none/defines create mode 100644 config/i386/rt/defines create mode 100644 config/kernelarch-arm/config create mode 100644 config/kernelarch-mips/config create mode 100644 config/kernelarch-mips/config.loongson-3 create mode 100644 config/kernelarch-mips/config.malta create mode 100644 config/kernelarch-mips/config.mips32r2 create mode 100644 config/kernelarch-mips/config.mips32r6 create mode 100644 config/kernelarch-mips/config.mips64r2 create mode 100644 config/kernelarch-mips/config.mips64r6 create mode 100644 config/kernelarch-mips/config.octeon create mode 100644 config/kernelarch-powerpc/config create mode 100644 config/kernelarch-powerpc/config-arch-64 create mode 100644 config/kernelarch-powerpc/config-arch-64-be create mode 100644 config/kernelarch-powerpc/config-arch-64-le create mode 100644 config/kernelarch-sparc/config create mode 100644 config/kernelarch-sparc/config-smp create mode 100644 config/kernelarch-sparc/config-up create mode 100644 config/kernelarch-x86/config create mode 100644 config/m68k/README.build create mode 100644 config/m68k/config create mode 100644 config/m68k/defines create mode 100644 config/mips/config create mode 100644 config/mips/defines create mode 100644 config/mips64/config create mode 100644 config/mips64/defines create mode 100644 config/mips64el/config create mode 100644 config/mips64el/defines create mode 100644 config/mips64r6/config create mode 100644 config/mips64r6/defines create mode 100644 config/mips64r6el/config create mode 100644 config/mips64r6el/defines create mode 100644 config/mipsel/config create mode 100644 config/mipsel/defines create mode 100644 config/mipsn32/defines create mode 100644 config/mipsn32el/defines create mode 100644 config/mipsn32r6/defines create mode 100644 config/mipsn32r6el/defines create mode 100644 config/mipsr6/config create mode 100644 config/mipsr6/defines create mode 100644 config/mipsr6el/config create mode 100644 config/mipsr6el/defines create mode 100644 config/or1k/defines create mode 100644 config/powerpc/config.powerpc create mode 100644 config/powerpc/config.powerpc-smp create mode 100644 config/powerpc/defines create mode 100644 config/powerpcspe/config create mode 100644 config/powerpcspe/defines create mode 100644 config/ppc64/defines create mode 100644 config/ppc64el/defines create mode 100644 config/s390/defines create mode 100644 config/s390x/config create mode 100644 config/s390x/defines create mode 100644 config/sh3/defines create mode 100644 config/sh4/config create mode 100644 config/sh4/config.sh7751r create mode 100644 config/sh4/config.sh7785lcr create mode 100644 config/sh4/defines create mode 100644 config/sparc/defines create mode 100644 config/sparc64/defines create mode 100644 config/tilegx/defines create mode 100644 config/x32/defines create mode 100644 control create mode 100644 control.md5sum create mode 100644 copyright create mode 100644 hyperv-daemons.README.Debian create mode 100755 hyperv-daemons.hv-fcopy-daemon.init create mode 100644 hyperv-daemons.hv-fcopy-daemon.service create mode 100755 hyperv-daemons.hv-kvp-daemon.init create mode 100644 hyperv-daemons.hv-kvp-daemon.service create mode 100755 hyperv-daemons.hv-vss-daemon.init create mode 100644 hyperv-daemons.hv-vss-daemon.service create mode 100644 hyperv-daemons.install create mode 100644 installer/alpha/kernel-versions create mode 100644 installer/alpha/modules/alpha-generic/ata-modules create mode 100644 installer/alpha/modules/alpha-generic/btrfs-modules create mode 100644 installer/alpha/modules/alpha-generic/cdrom-core-modules create mode 100644 installer/alpha/modules/alpha-generic/crc-modules create mode 100644 installer/alpha/modules/alpha-generic/crypto-dm-modules create mode 100644 installer/alpha/modules/alpha-generic/crypto-modules create mode 100644 installer/alpha/modules/alpha-generic/event-modules create mode 100644 installer/alpha/modules/alpha-generic/ext4-modules create mode 100644 installer/alpha/modules/alpha-generic/fat-modules create mode 100644 installer/alpha/modules/alpha-generic/fb-modules create mode 100644 installer/alpha/modules/alpha-generic/fuse-modules create mode 100644 installer/alpha/modules/alpha-generic/input-modules create mode 100644 installer/alpha/modules/alpha-generic/isofs-modules create mode 100644 installer/alpha/modules/alpha-generic/jfs-modules create mode 100644 installer/alpha/modules/alpha-generic/kernel-image create mode 100644 installer/alpha/modules/alpha-generic/loop-modules create mode 100644 installer/alpha/modules/alpha-generic/md-modules create mode 100644 installer/alpha/modules/alpha-generic/mouse-modules create mode 100644 installer/alpha/modules/alpha-generic/multipath-modules create mode 100644 installer/alpha/modules/alpha-generic/nbd-modules create mode 100644 installer/alpha/modules/alpha-generic/nic-modules create mode 100644 installer/alpha/modules/alpha-generic/nic-pcmcia-modules create mode 100644 installer/alpha/modules/alpha-generic/nic-shared-modules create mode 100644 installer/alpha/modules/alpha-generic/nic-usb-modules create mode 100644 installer/alpha/modules/alpha-generic/nic-wireless-modules create mode 100644 installer/alpha/modules/alpha-generic/pata-modules create mode 100644 installer/alpha/modules/alpha-generic/pcmcia-modules create mode 100644 installer/alpha/modules/alpha-generic/ppp-modules create mode 100644 installer/alpha/modules/alpha-generic/sata-modules create mode 100644 installer/alpha/modules/alpha-generic/scsi-core-modules create mode 100644 installer/alpha/modules/alpha-generic/scsi-modules create mode 100644 installer/alpha/modules/alpha-generic/serial-modules create mode 100644 installer/alpha/modules/alpha-generic/squashfs-modules create mode 100644 installer/alpha/modules/alpha-generic/srm-modules create mode 100644 installer/alpha/modules/alpha-generic/usb-modules create mode 100644 installer/alpha/modules/alpha-generic/usb-serial-modules create mode 100644 installer/alpha/modules/alpha-generic/usb-storage-modules create mode 100644 installer/alpha/modules/alpha-generic/virtio-modules create mode 100644 installer/alpha/modules/alpha-generic/xfs-modules create mode 100644 installer/alpha/modules/alpha-generic/zlib-modules create mode 100644 installer/alpha/package-list create mode 100644 installer/amd64/TODO create mode 100644 installer/amd64/kernel-versions create mode 100644 installer/amd64/modules/amd64/acpi-modules create mode 100644 installer/amd64/modules/amd64/ata-modules create mode 100644 installer/amd64/modules/amd64/btrfs-modules create mode 100644 installer/amd64/modules/amd64/cdrom-core-modules create mode 100644 installer/amd64/modules/amd64/crc-modules create mode 100644 installer/amd64/modules/amd64/crypto-dm-modules create mode 100644 installer/amd64/modules/amd64/crypto-modules create mode 100644 installer/amd64/modules/amd64/efi-modules create mode 100644 installer/amd64/modules/amd64/event-modules create mode 100644 installer/amd64/modules/amd64/ext4-modules create mode 100644 installer/amd64/modules/amd64/fat-modules create mode 100644 installer/amd64/modules/amd64/fb-modules create mode 100644 installer/amd64/modules/amd64/firewire-core-modules create mode 100644 installer/amd64/modules/amd64/fuse-modules create mode 100644 installer/amd64/modules/amd64/hyperv-modules create mode 100644 installer/amd64/modules/amd64/i2c-modules create mode 100644 installer/amd64/modules/amd64/input-modules create mode 100644 installer/amd64/modules/amd64/isofs-modules create mode 100644 installer/amd64/modules/amd64/jfs-modules create mode 100644 installer/amd64/modules/amd64/kernel-image create mode 100644 installer/amd64/modules/amd64/loop-modules create mode 100644 installer/amd64/modules/amd64/md-modules create mode 100644 installer/amd64/modules/amd64/mmc-core-modules create mode 100644 installer/amd64/modules/amd64/mmc-modules create mode 100644 installer/amd64/modules/amd64/mouse-modules create mode 100644 installer/amd64/modules/amd64/multipath-modules create mode 100644 installer/amd64/modules/amd64/nbd-modules create mode 100644 installer/amd64/modules/amd64/nic-modules create mode 100644 installer/amd64/modules/amd64/nic-pcmcia-modules create mode 100644 installer/amd64/modules/amd64/nic-shared-modules create mode 100644 installer/amd64/modules/amd64/nic-usb-modules create mode 100644 installer/amd64/modules/amd64/nic-wireless-modules create mode 100644 installer/amd64/modules/amd64/ntfs-modules create mode 100644 installer/amd64/modules/amd64/pata-modules create mode 100644 installer/amd64/modules/amd64/pcmcia-modules create mode 100644 installer/amd64/modules/amd64/pcmcia-storage-modules create mode 100644 installer/amd64/modules/amd64/ppp-modules create mode 100644 installer/amd64/modules/amd64/sata-modules create mode 100644 installer/amd64/modules/amd64/scsi-core-modules create mode 100644 installer/amd64/modules/amd64/scsi-modules create mode 100644 installer/amd64/modules/amd64/serial-modules create mode 100644 installer/amd64/modules/amd64/sound-modules create mode 100644 installer/amd64/modules/amd64/speakup-modules create mode 100644 installer/amd64/modules/amd64/squashfs-modules create mode 100644 installer/amd64/modules/amd64/udf-modules create mode 100644 installer/amd64/modules/amd64/uinput-modules create mode 100644 installer/amd64/modules/amd64/usb-modules create mode 100644 installer/amd64/modules/amd64/usb-serial-modules create mode 100644 installer/amd64/modules/amd64/usb-storage-modules create mode 100644 installer/amd64/modules/amd64/virtio-modules create mode 100644 installer/amd64/modules/amd64/xfs-modules create mode 100644 installer/amd64/package-list create mode 100644 installer/arm64/kernel-versions create mode 100644 installer/arm64/modules/arm64/ata-modules create mode 100644 installer/arm64/modules/arm64/btrfs-modules create mode 100644 installer/arm64/modules/arm64/cdrom-core-modules create mode 100644 installer/arm64/modules/arm64/crc-modules create mode 100644 installer/arm64/modules/arm64/crypto-dm-modules create mode 100644 installer/arm64/modules/arm64/crypto-modules create mode 100644 installer/arm64/modules/arm64/efi-modules create mode 100644 installer/arm64/modules/arm64/event-modules create mode 100644 installer/arm64/modules/arm64/ext4-modules create mode 100644 installer/arm64/modules/arm64/fat-modules create mode 100644 installer/arm64/modules/arm64/fb-modules create mode 100644 installer/arm64/modules/arm64/fuse-modules create mode 100644 installer/arm64/modules/arm64/i2c-modules create mode 100644 installer/arm64/modules/arm64/input-modules create mode 100644 installer/arm64/modules/arm64/isofs-modules create mode 100644 installer/arm64/modules/arm64/jfs-modules create mode 100644 installer/arm64/modules/arm64/kernel-image create mode 100644 installer/arm64/modules/arm64/leds-modules create mode 100644 installer/arm64/modules/arm64/loop-modules create mode 100644 installer/arm64/modules/arm64/md-modules create mode 100644 installer/arm64/modules/arm64/mmc-modules create mode 100644 installer/arm64/modules/arm64/multipath-modules create mode 100644 installer/arm64/modules/arm64/nbd-modules create mode 100644 installer/arm64/modules/arm64/nic-modules create mode 100644 installer/arm64/modules/arm64/nic-shared-modules create mode 100644 installer/arm64/modules/arm64/nic-usb-modules create mode 100644 installer/arm64/modules/arm64/nic-wireless-modules create mode 100644 installer/arm64/modules/arm64/ppp-modules create mode 100644 installer/arm64/modules/arm64/sata-modules create mode 100644 installer/arm64/modules/arm64/scsi-core-modules create mode 100644 installer/arm64/modules/arm64/scsi-modules create mode 100644 installer/arm64/modules/arm64/squashfs-modules create mode 100644 installer/arm64/modules/arm64/udf-modules create mode 100644 installer/arm64/modules/arm64/uinput-modules create mode 100644 installer/arm64/modules/arm64/usb-modules create mode 100644 installer/arm64/modules/arm64/usb-storage-modules create mode 100644 installer/arm64/modules/arm64/virtio-modules create mode 100644 installer/arm64/modules/arm64/xfs-modules create mode 100644 installer/arm64/package-list create mode 100644 installer/armel/kernel-versions create mode 100644 installer/armel/modules/armel-marvell/btrfs-modules create mode 100644 installer/armel/modules/armel-marvell/cdrom-core-modules create mode 100644 installer/armel/modules/armel-marvell/crc-modules create mode 100644 installer/armel/modules/armel-marvell/crypto-dm-modules create mode 100644 installer/armel/modules/armel-marvell/crypto-modules create mode 100644 installer/armel/modules/armel-marvell/event-modules create mode 100644 installer/armel/modules/armel-marvell/ext4-modules create mode 100644 installer/armel/modules/armel-marvell/fat-modules create mode 100644 installer/armel/modules/armel-marvell/fb-modules create mode 100644 installer/armel/modules/armel-marvell/fuse-modules create mode 100644 installer/armel/modules/armel-marvell/input-modules create mode 100644 installer/armel/modules/armel-marvell/ipv6-modules create mode 100644 installer/armel/modules/armel-marvell/isofs-modules create mode 100644 installer/armel/modules/armel-marvell/jffs2-modules create mode 100644 installer/armel/modules/armel-marvell/jfs-modules create mode 100644 installer/armel/modules/armel-marvell/kernel-image create mode 100644 installer/armel/modules/armel-marvell/leds-modules create mode 100644 installer/armel/modules/armel-marvell/loop-modules create mode 100644 installer/armel/modules/armel-marvell/md-modules create mode 100644 installer/armel/modules/armel-marvell/minix-modules create mode 100644 installer/armel/modules/armel-marvell/mmc-modules create mode 100644 installer/armel/modules/armel-marvell/mouse-modules create mode 100644 installer/armel/modules/armel-marvell/mtd-modules create mode 100644 installer/armel/modules/armel-marvell/multipath-modules create mode 100644 installer/armel/modules/armel-marvell/nbd-modules create mode 100644 installer/armel/modules/armel-marvell/nic-modules create mode 100644 installer/armel/modules/armel-marvell/nic-shared-modules create mode 100644 installer/armel/modules/armel-marvell/nic-usb-modules create mode 100644 installer/armel/modules/armel-marvell/ppp-modules create mode 100644 installer/armel/modules/armel-marvell/sata-modules create mode 100644 installer/armel/modules/armel-marvell/scsi-core-modules create mode 100644 installer/armel/modules/armel-marvell/squashfs-modules create mode 100644 installer/armel/modules/armel-marvell/udf-modules create mode 100644 installer/armel/modules/armel-marvell/uinput-modules create mode 100644 installer/armel/modules/armel-marvell/usb-modules create mode 100644 installer/armel/modules/armel-marvell/usb-serial-modules create mode 100644 installer/armel/modules/armel-marvell/usb-storage-modules create mode 100644 installer/armel/modules/armel-marvell/zlib-modules create mode 100644 installer/armel/package-list create mode 100644 installer/armhf/kernel-versions create mode 100644 installer/armhf/modules/armhf-armmp/ata-modules create mode 100644 installer/armhf/modules/armhf-armmp/btrfs-modules create mode 100644 installer/armhf/modules/armhf-armmp/crc-modules create mode 100644 installer/armhf/modules/armhf-armmp/crypto-dm-modules create mode 100644 installer/armhf/modules/armhf-armmp/crypto-modules create mode 100644 installer/armhf/modules/armhf-armmp/efi-modules create mode 100644 installer/armhf/modules/armhf-armmp/event-modules create mode 100644 installer/armhf/modules/armhf-armmp/ext4-modules create mode 100644 installer/armhf/modules/armhf-armmp/fat-modules create mode 100644 installer/armhf/modules/armhf-armmp/fb-modules create mode 100644 installer/armhf/modules/armhf-armmp/fuse-modules create mode 100644 installer/armhf/modules/armhf-armmp/input-modules create mode 100644 installer/armhf/modules/armhf-armmp/isofs-modules create mode 100644 installer/armhf/modules/armhf-armmp/jfs-modules create mode 100644 installer/armhf/modules/armhf-armmp/kernel-image create mode 100644 installer/armhf/modules/armhf-armmp/leds-modules create mode 100644 installer/armhf/modules/armhf-armmp/loop-modules create mode 100644 installer/armhf/modules/armhf-armmp/md-modules create mode 100644 installer/armhf/modules/armhf-armmp/mmc-modules create mode 100644 installer/armhf/modules/armhf-armmp/mtd-modules create mode 100644 installer/armhf/modules/armhf-armmp/multipath-modules create mode 100644 installer/armhf/modules/armhf-armmp/nbd-modules create mode 100644 installer/armhf/modules/armhf-armmp/nic-modules create mode 100644 installer/armhf/modules/armhf-armmp/nic-shared-modules create mode 100644 installer/armhf/modules/armhf-armmp/nic-usb-modules create mode 100644 installer/armhf/modules/armhf-armmp/nic-wireless-modules create mode 100644 installer/armhf/modules/armhf-armmp/pata-modules create mode 100644 installer/armhf/modules/armhf-armmp/ppp-modules create mode 100644 installer/armhf/modules/armhf-armmp/sata-modules create mode 100644 installer/armhf/modules/armhf-armmp/scsi-core-modules create mode 100644 installer/armhf/modules/armhf-armmp/scsi-modules create mode 100644 installer/armhf/modules/armhf-armmp/squashfs-modules create mode 100644 installer/armhf/modules/armhf-armmp/udf-modules create mode 100644 installer/armhf/modules/armhf-armmp/uinput-modules create mode 100644 installer/armhf/modules/armhf-armmp/usb-modules create mode 100644 installer/armhf/modules/armhf-armmp/usb-storage-modules create mode 100644 installer/armhf/modules/armhf-armmp/virtio-modules create mode 100644 installer/armhf/modules/armhf-armmp/zlib-modules create mode 100644 installer/armhf/package-list create mode 100644 installer/hppa/kernel-versions create mode 100644 installer/hppa/modules/hppa-parisc64-smp/ata-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/btrfs-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/cdrom-core-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/crc-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/crypto-dm-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/crypto-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/event-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/ext4-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/fat-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/fb-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/fuse-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/input-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/isofs-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/jfs-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/kernel-image create mode 100644 installer/hppa/modules/hppa-parisc64-smp/loop-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/md-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/mouse-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/multipath-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/nbd-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/nic-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/pata-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/ppp-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/sata-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/scsi-core-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/scsi-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/serial-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/squashfs-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/usb-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/usb-storage-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/virtio-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/xfs-modules create mode 100644 installer/hppa/modules/hppa-parisc64-smp/zlib-modules create mode 100644 installer/hppa/modules/hppa/ata-modules create mode 100644 installer/hppa/modules/hppa/btrfs-modules create mode 100644 installer/hppa/modules/hppa/cdrom-core-modules create mode 100644 installer/hppa/modules/hppa/crc-modules create mode 100644 installer/hppa/modules/hppa/crypto-dm-modules create mode 100644 installer/hppa/modules/hppa/crypto-modules create mode 100644 installer/hppa/modules/hppa/event-modules create mode 100644 installer/hppa/modules/hppa/ext4-modules create mode 100644 installer/hppa/modules/hppa/fat-modules create mode 100644 installer/hppa/modules/hppa/fuse-modules create mode 100644 installer/hppa/modules/hppa/input-modules create mode 100644 installer/hppa/modules/hppa/isofs-modules create mode 100644 installer/hppa/modules/hppa/jfs-modules create mode 100644 installer/hppa/modules/hppa/kernel-image create mode 100644 installer/hppa/modules/hppa/loop-modules create mode 100644 installer/hppa/modules/hppa/md-modules create mode 100644 installer/hppa/modules/hppa/mouse-modules create mode 100644 installer/hppa/modules/hppa/multipath-modules create mode 100644 installer/hppa/modules/hppa/nbd-modules create mode 100644 installer/hppa/modules/hppa/nic-modules create mode 100644 installer/hppa/modules/hppa/nic-shared-modules create mode 100644 installer/hppa/modules/hppa/nic-usb-modules create mode 100644 installer/hppa/modules/hppa/pata-modules create mode 100644 installer/hppa/modules/hppa/ppp-modules create mode 100644 installer/hppa/modules/hppa/sata-modules create mode 100644 installer/hppa/modules/hppa/scsi-core-modules create mode 100644 installer/hppa/modules/hppa/scsi-modules create mode 100644 installer/hppa/modules/hppa/serial-modules create mode 100644 installer/hppa/modules/hppa/squashfs-modules create mode 100644 installer/hppa/modules/hppa/usb-modules create mode 100644 installer/hppa/modules/hppa/usb-serial-modules create mode 100644 installer/hppa/modules/hppa/usb-storage-modules create mode 100644 installer/hppa/modules/hppa/virtio-modules create mode 100644 installer/hppa/modules/hppa/xfs-modules create mode 100644 installer/hppa/modules/hppa/zlib-modules create mode 100644 installer/hppa/package-list create mode 100644 installer/i386/kernel-versions create mode 100644 installer/i386/modules/i386/acpi-modules create mode 100644 installer/i386/modules/i386/ata-modules create mode 100644 installer/i386/modules/i386/btrfs-modules create mode 100644 installer/i386/modules/i386/cdrom-core-modules create mode 100644 installer/i386/modules/i386/crc-modules create mode 100644 installer/i386/modules/i386/crypto-dm-modules create mode 100644 installer/i386/modules/i386/crypto-modules create mode 100644 installer/i386/modules/i386/efi-modules create mode 100644 installer/i386/modules/i386/event-modules create mode 100644 installer/i386/modules/i386/ext4-modules create mode 100644 installer/i386/modules/i386/fat-modules create mode 100644 installer/i386/modules/i386/fb-modules create mode 100644 installer/i386/modules/i386/firewire-core-modules create mode 100644 installer/i386/modules/i386/fuse-modules create mode 100644 installer/i386/modules/i386/hyperv-modules create mode 100644 installer/i386/modules/i386/i2c-modules create mode 100644 installer/i386/modules/i386/input-modules create mode 100644 installer/i386/modules/i386/isofs-modules create mode 100644 installer/i386/modules/i386/jfs-modules create mode 100644 installer/i386/modules/i386/kernel-image create mode 100644 installer/i386/modules/i386/loop-modules create mode 100644 installer/i386/modules/i386/md-modules create mode 100644 installer/i386/modules/i386/mmc-core-modules create mode 100644 installer/i386/modules/i386/mmc-modules create mode 100644 installer/i386/modules/i386/mouse-modules create mode 100644 installer/i386/modules/i386/multipath-modules create mode 100644 installer/i386/modules/i386/nbd-modules create mode 100644 installer/i386/modules/i386/nic-modules create mode 100644 installer/i386/modules/i386/nic-pcmcia-modules create mode 100644 installer/i386/modules/i386/nic-shared-modules create mode 100644 installer/i386/modules/i386/nic-usb-modules create mode 100644 installer/i386/modules/i386/nic-wireless-modules create mode 100644 installer/i386/modules/i386/ntfs-modules create mode 100644 installer/i386/modules/i386/pata-modules create mode 100644 installer/i386/modules/i386/pcmcia-modules create mode 100644 installer/i386/modules/i386/pcmcia-storage-modules create mode 100644 installer/i386/modules/i386/ppp-modules create mode 100644 installer/i386/modules/i386/sata-modules create mode 100644 installer/i386/modules/i386/scsi-core-modules create mode 100644 installer/i386/modules/i386/scsi-modules create mode 100644 installer/i386/modules/i386/serial-modules create mode 100644 installer/i386/modules/i386/sound-modules create mode 100644 installer/i386/modules/i386/speakup-modules create mode 100644 installer/i386/modules/i386/squashfs-modules create mode 100644 installer/i386/modules/i386/udf-modules create mode 100644 installer/i386/modules/i386/uinput-modules create mode 100644 installer/i386/modules/i386/usb-modules create mode 100644 installer/i386/modules/i386/usb-serial-modules create mode 100644 installer/i386/modules/i386/usb-storage-modules create mode 100644 installer/i386/modules/i386/virtio-modules create mode 100644 installer/i386/modules/i386/xfs-modules create mode 100644 installer/i386/package-list create mode 100644 installer/m68k/kernel-versions create mode 100644 installer/m68k/modules/m68k/btrfs-modules create mode 100644 installer/m68k/modules/m68k/cdrom-core-modules create mode 100644 installer/m68k/modules/m68k/crc-modules create mode 100644 installer/m68k/modules/m68k/crypto-modules create mode 100644 installer/m68k/modules/m68k/ext4-modules create mode 100644 installer/m68k/modules/m68k/fat-modules create mode 100644 installer/m68k/modules/m68k/fuse-modules create mode 100644 installer/m68k/modules/m68k/isofs-modules create mode 100644 installer/m68k/modules/m68k/kernel-image create mode 100644 installer/m68k/modules/m68k/md-modules create mode 100644 installer/m68k/modules/m68k/nbd-modules create mode 100644 installer/m68k/modules/m68k/nic-shared-modules create mode 100644 installer/m68k/modules/m68k/ppp-modules create mode 100644 installer/m68k/modules/m68k/scsi-modules create mode 100644 installer/m68k/modules/m68k/squashfs-modules create mode 100644 installer/m68k/modules/m68k/udf-modules create mode 100644 installer/m68k/modules/m68k/zlib-modules create mode 100644 installer/m68k/package-list create mode 100644 installer/mips/kernel-versions create mode 100644 installer/mips/modules/mips-4kc-malta/affs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/ata-modules create mode 100644 installer/mips/modules/mips-4kc-malta/btrfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/cdrom-core-modules create mode 100644 installer/mips/modules/mips-4kc-malta/crc-modules create mode 100644 installer/mips/modules/mips-4kc-malta/crypto-dm-modules create mode 100644 installer/mips/modules/mips-4kc-malta/crypto-modules create mode 100644 installer/mips/modules/mips-4kc-malta/event-modules create mode 100644 installer/mips/modules/mips-4kc-malta/ext4-modules create mode 100644 installer/mips/modules/mips-4kc-malta/fat-modules create mode 100644 installer/mips/modules/mips-4kc-malta/fuse-modules create mode 100644 installer/mips/modules/mips-4kc-malta/hfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/i2c-modules create mode 100644 installer/mips/modules/mips-4kc-malta/input-modules create mode 100644 installer/mips/modules/mips-4kc-malta/isofs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/jfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/kernel-image create mode 100644 installer/mips/modules/mips-4kc-malta/loop-modules create mode 100644 installer/mips/modules/mips-4kc-malta/md-modules create mode 100644 installer/mips/modules/mips-4kc-malta/minix-modules create mode 100644 installer/mips/modules/mips-4kc-malta/mmc-core-modules create mode 100644 installer/mips/modules/mips-4kc-malta/mmc-modules create mode 100644 installer/mips/modules/mips-4kc-malta/mouse-modules create mode 100644 installer/mips/modules/mips-4kc-malta/multipath-modules create mode 100644 installer/mips/modules/mips-4kc-malta/nbd-modules create mode 100644 installer/mips/modules/mips-4kc-malta/nic-modules create mode 100644 installer/mips/modules/mips-4kc-malta/nic-shared-modules create mode 100644 installer/mips/modules/mips-4kc-malta/nic-usb-modules create mode 100644 installer/mips/modules/mips-4kc-malta/nic-wireless-modules create mode 100644 installer/mips/modules/mips-4kc-malta/ntfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/pata-modules create mode 100644 installer/mips/modules/mips-4kc-malta/ppp-modules create mode 100644 installer/mips/modules/mips-4kc-malta/qnx4-modules create mode 100644 installer/mips/modules/mips-4kc-malta/sata-modules create mode 100644 installer/mips/modules/mips-4kc-malta/scsi-core-modules create mode 100644 installer/mips/modules/mips-4kc-malta/scsi-modules create mode 100644 installer/mips/modules/mips-4kc-malta/sound-modules create mode 100644 installer/mips/modules/mips-4kc-malta/squashfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/udf-modules create mode 100644 installer/mips/modules/mips-4kc-malta/usb-modules create mode 100644 installer/mips/modules/mips-4kc-malta/usb-serial-modules create mode 100644 installer/mips/modules/mips-4kc-malta/usb-storage-modules create mode 100644 installer/mips/modules/mips-4kc-malta/virtio-modules create mode 100644 installer/mips/modules/mips-4kc-malta/xfs-modules create mode 100644 installer/mips/modules/mips-4kc-malta/zlib-modules create mode 100644 installer/mips/modules/mips-octeon/affs-modules create mode 100644 installer/mips/modules/mips-octeon/btrfs-modules create mode 100644 installer/mips/modules/mips-octeon/cdrom-core-modules create mode 100644 installer/mips/modules/mips-octeon/crc-modules create mode 100644 installer/mips/modules/mips-octeon/crypto-dm-modules create mode 100644 installer/mips/modules/mips-octeon/crypto-modules create mode 100644 installer/mips/modules/mips-octeon/event-modules create mode 100644 installer/mips/modules/mips-octeon/ext4-modules create mode 100644 installer/mips/modules/mips-octeon/fat-modules create mode 100644 installer/mips/modules/mips-octeon/fuse-modules create mode 100644 installer/mips/modules/mips-octeon/hfs-modules create mode 100644 installer/mips/modules/mips-octeon/input-modules create mode 100644 installer/mips/modules/mips-octeon/isofs-modules create mode 100644 installer/mips/modules/mips-octeon/jfs-modules create mode 100644 installer/mips/modules/mips-octeon/kernel-image create mode 100644 installer/mips/modules/mips-octeon/loop-modules create mode 100644 installer/mips/modules/mips-octeon/md-modules create mode 100644 installer/mips/modules/mips-octeon/minix-modules create mode 100644 installer/mips/modules/mips-octeon/multipath-modules create mode 100644 installer/mips/modules/mips-octeon/nbd-modules create mode 100644 installer/mips/modules/mips-octeon/nic-modules create mode 100644 installer/mips/modules/mips-octeon/nic-shared-modules create mode 100644 installer/mips/modules/mips-octeon/nic-usb-modules create mode 100644 installer/mips/modules/mips-octeon/nic-wireless-modules create mode 100644 installer/mips/modules/mips-octeon/ntfs-modules create mode 100644 installer/mips/modules/mips-octeon/pata-modules create mode 100644 installer/mips/modules/mips-octeon/ppp-modules create mode 100644 installer/mips/modules/mips-octeon/qnx4-modules create mode 100644 installer/mips/modules/mips-octeon/rtc-modules create mode 100644 installer/mips/modules/mips-octeon/sata-modules create mode 100644 installer/mips/modules/mips-octeon/scsi-core-modules create mode 100644 installer/mips/modules/mips-octeon/scsi-modules create mode 100644 installer/mips/modules/mips-octeon/sound-modules create mode 100644 installer/mips/modules/mips-octeon/squashfs-modules create mode 100644 installer/mips/modules/mips-octeon/udf-modules create mode 100644 installer/mips/modules/mips-octeon/usb-modules create mode 100644 installer/mips/modules/mips-octeon/usb-serial-modules create mode 100644 installer/mips/modules/mips-octeon/usb-storage-modules create mode 100644 installer/mips/modules/mips-octeon/virtio-modules create mode 100644 installer/mips/modules/mips-octeon/xfs-modules create mode 100644 installer/mips/modules/mips-octeon/zlib-modules create mode 100644 installer/mips/modules/mips/btrfs-modules create mode 100644 installer/mips/modules/mips/crc-modules create mode 100644 installer/mips/modules/mips/crypto-dm-modules create mode 100644 installer/mips/modules/mips/crypto-modules create mode 100644 installer/mips/modules/mips/ext4-modules create mode 100644 installer/mips/modules/mips/fuse-modules create mode 100644 installer/mips/modules/mips/isofs-modules create mode 100644 installer/mips/modules/mips/jfs-modules create mode 100644 installer/mips/modules/mips/kernel-image create mode 100644 installer/mips/modules/mips/loop-modules create mode 100644 installer/mips/modules/mips/md-modules create mode 100644 installer/mips/modules/mips/multipath-modules create mode 100644 installer/mips/modules/mips/nbd-modules create mode 100644 installer/mips/modules/mips/nic-shared-modules create mode 100644 installer/mips/modules/mips/squashfs-modules create mode 100644 installer/mips/modules/mips/udf-modules create mode 100644 installer/mips/modules/mips/xfs-modules create mode 100644 installer/mips/modules/mips/zlib-modules create mode 100644 installer/mips/package-list create mode 100644 installer/mips64/kernel-versions create mode 120000 installer/mips64/modules/mips64 create mode 120000 installer/mips64/modules/mips64-5kc-malta create mode 120000 installer/mips64/modules/mips64-octeon create mode 100644 installer/mips64/package-list create mode 100644 installer/mips64el/kernel-versions create mode 120000 installer/mips64el/modules/mips64el-5kc-malta create mode 120000 installer/mips64el/modules/mips64el-loongson-3 create mode 120000 installer/mips64el/modules/mips64el-octeon create mode 100644 installer/mips64el/package-list create mode 100644 installer/mips64r6/kernel-versions create mode 120000 installer/mips64r6/modules/mips64r6 create mode 100644 installer/mips64r6/package-list create mode 100644 installer/mips64r6el/kernel-versions create mode 120000 installer/mips64r6el/modules/mips64r6 create mode 100644 installer/mips64r6el/package-list create mode 100644 installer/mipsel/kernel-versions create mode 120000 installer/mipsel/modules/mipsel-4kc-malta create mode 100644 installer/mipsel/modules/mipsel-loongson-3/affs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/ata-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/btrfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/cdrom-core-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/crc-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/crypto-dm-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/crypto-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/event-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/ext4-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/fat-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/fb-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/firewire-core-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/fuse-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/hfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/input-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/isofs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/jfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/kernel-image create mode 100644 installer/mipsel/modules/mipsel-loongson-3/loop-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/md-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/minix-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/multipath-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nbd-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nic-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nic-shared-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nic-usb-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/nic-wireless-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/ntfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/pata-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/ppp-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/qnx4-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/sata-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/scsi-core-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/scsi-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/sound-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/speakup-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/squashfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/udf-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/usb-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/usb-serial-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/usb-storage-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/virtio-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/xfs-modules create mode 100644 installer/mipsel/modules/mipsel-loongson-3/zlib-modules create mode 120000 installer/mipsel/modules/mipsel-octeon create mode 100644 installer/mipsel/package-list create mode 100644 installer/mipsr6/kernel-versions create mode 120000 installer/mipsr6/modules/mips32r6 create mode 100644 installer/mipsr6/package-list create mode 100644 installer/mipsr6el/kernel-versions create mode 120000 installer/mipsr6el/modules/mips32r6 create mode 100644 installer/mipsr6el/package-list create mode 100644 installer/modules/acpi-modules create mode 100644 installer/modules/affs-modules create mode 100644 installer/modules/ata-modules create mode 100644 installer/modules/btrfs-modules create mode 100644 installer/modules/cdrom-core-modules create mode 100644 installer/modules/crc-modules create mode 100644 installer/modules/crypto-dm-modules create mode 100644 installer/modules/crypto-modules create mode 100644 installer/modules/efi-modules create mode 100644 installer/modules/event-modules create mode 100644 installer/modules/ext4-modules create mode 100644 installer/modules/fat-modules create mode 100644 installer/modules/firewire-core-modules create mode 100644 installer/modules/fuse-modules create mode 100644 installer/modules/hfs-modules create mode 100644 installer/modules/hyperv-modules create mode 100644 installer/modules/i2c-modules create mode 100644 installer/modules/input-modules create mode 100644 installer/modules/ipv6-modules create mode 100644 installer/modules/isofs-modules create mode 100644 installer/modules/jffs2-modules create mode 100644 installer/modules/jfs-modules create mode 100644 installer/modules/kernel-image create mode 100644 installer/modules/leds-modules create mode 100644 installer/modules/loop-modules create mode 100644 installer/modules/lzo-modules create mode 100644 installer/modules/md-modules create mode 100644 installer/modules/minix-modules create mode 100644 installer/modules/mmc-core-modules create mode 100644 installer/modules/mmc-modules create mode 100644 installer/modules/mouse-modules create mode 100644 installer/modules/mtd-modules create mode 100644 installer/modules/multipath-modules create mode 100644 installer/modules/nbd-modules create mode 100644 installer/modules/nfs-modules create mode 100644 installer/modules/nic-modules create mode 100644 installer/modules/nic-pcmcia-modules create mode 100644 installer/modules/nic-shared-modules create mode 100644 installer/modules/nic-usb-modules create mode 100644 installer/modules/nic-wireless-modules create mode 100644 installer/modules/pata-modules create mode 100644 installer/modules/pcmcia-modules create mode 100644 installer/modules/pcmcia-storage-modules create mode 100644 installer/modules/ppp-modules create mode 100644 installer/modules/qnx4-modules create mode 100644 installer/modules/rtc-modules create mode 100644 installer/modules/sata-modules create mode 100644 installer/modules/scsi-core-modules create mode 100644 installer/modules/scsi-modules create mode 100644 installer/modules/serial-modules create mode 100644 installer/modules/sound-modules create mode 100644 installer/modules/speakup-modules create mode 100644 installer/modules/squashfs-modules create mode 100644 installer/modules/udf-modules create mode 100644 installer/modules/uinput-modules create mode 100644 installer/modules/usb-modules create mode 100644 installer/modules/usb-serial-modules create mode 100644 installer/modules/usb-storage-modules create mode 100644 installer/modules/virtio-modules create mode 100644 installer/modules/xfs-modules create mode 100644 installer/modules/zlib-modules create mode 100644 installer/package-list create mode 100644 installer/powerpc/kernel-versions create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/affs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/ata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/btrfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/cdrom-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/crc-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/crypto-dm-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/crypto-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/event-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/ext4-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/fat-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/firewire-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/fuse-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/hfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/input-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/isofs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/jfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/kernel-image create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/loop-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/md-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/mouse-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/multipath-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/nbd-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/nic-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/nic-pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/nic-shared-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/pata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-storage-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/ppp-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/sata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/scsi-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/scsi-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/serial-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/squashfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/udf-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/uinput-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/usb-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/usb-serial-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/usb-storage-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/xfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc-miboot/zlib-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/affs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/ata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/btrfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/cdrom-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/crc-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/crypto-dm-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/crypto-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/event-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/ext4-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/fancontrol-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/fat-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/firewire-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/fuse-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/hfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/hypervisor-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/input-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/isofs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/jfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/kernel-image create mode 100644 installer/powerpc/modules/powerpc-powerpc64/loop-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/md-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/mouse-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/multipath-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/nbd-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/nic-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/nic-pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/nic-shared-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/pata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/pcmcia-storage-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/ppp-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/sata-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/scsi-core-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/scsi-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/serial-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/squashfs-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/udf-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/uinput-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/usb-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/usb-serial-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/usb-storage-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/virtio-modules create mode 100644 installer/powerpc/modules/powerpc-powerpc64/xfs-modules create mode 100644 installer/powerpc/modules/powerpc/affs-modules create mode 100644 installer/powerpc/modules/powerpc/ata-modules create mode 100644 installer/powerpc/modules/powerpc/btrfs-modules create mode 100644 installer/powerpc/modules/powerpc/cdrom-core-modules create mode 100644 installer/powerpc/modules/powerpc/crc-modules create mode 100644 installer/powerpc/modules/powerpc/crypto-dm-modules create mode 100644 installer/powerpc/modules/powerpc/crypto-modules create mode 100644 installer/powerpc/modules/powerpc/event-modules create mode 100644 installer/powerpc/modules/powerpc/ext4-modules create mode 100644 installer/powerpc/modules/powerpc/fat-modules create mode 100644 installer/powerpc/modules/powerpc/fb-modules create mode 100644 installer/powerpc/modules/powerpc/firewire-core-modules create mode 100644 installer/powerpc/modules/powerpc/fuse-modules create mode 100644 installer/powerpc/modules/powerpc/hfs-modules create mode 100644 installer/powerpc/modules/powerpc/input-modules create mode 100644 installer/powerpc/modules/powerpc/isofs-modules create mode 100644 installer/powerpc/modules/powerpc/jfs-modules create mode 100644 installer/powerpc/modules/powerpc/kernel-image create mode 100644 installer/powerpc/modules/powerpc/loop-modules create mode 100644 installer/powerpc/modules/powerpc/md-modules create mode 100644 installer/powerpc/modules/powerpc/mouse-modules create mode 100644 installer/powerpc/modules/powerpc/multipath-modules create mode 100644 installer/powerpc/modules/powerpc/nbd-modules create mode 100644 installer/powerpc/modules/powerpc/nic-modules create mode 100644 installer/powerpc/modules/powerpc/nic-pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc/nic-shared-modules create mode 100644 installer/powerpc/modules/powerpc/pata-modules create mode 100644 installer/powerpc/modules/powerpc/pcmcia-modules create mode 100644 installer/powerpc/modules/powerpc/pcmcia-storage-modules create mode 100644 installer/powerpc/modules/powerpc/ppp-modules create mode 100644 installer/powerpc/modules/powerpc/sata-modules create mode 100644 installer/powerpc/modules/powerpc/scsi-core-modules create mode 100644 installer/powerpc/modules/powerpc/scsi-modules create mode 100644 installer/powerpc/modules/powerpc/serial-modules create mode 100644 installer/powerpc/modules/powerpc/squashfs-modules create mode 100644 installer/powerpc/modules/powerpc/udf-modules create mode 100644 installer/powerpc/modules/powerpc/uinput-modules create mode 100644 installer/powerpc/modules/powerpc/usb-modules create mode 100644 installer/powerpc/modules/powerpc/usb-serial-modules create mode 100644 installer/powerpc/modules/powerpc/usb-storage-modules create mode 100644 installer/powerpc/modules/powerpc/virtio-modules create mode 100644 installer/powerpc/modules/powerpc/xfs-modules create mode 100644 installer/powerpc/modules/powerpc/zlib-modules create mode 100644 installer/powerpc/package-list create mode 100644 installer/ppc64/kernel-versions create mode 120000 installer/ppc64/modules/powerpc create mode 120000 installer/ppc64/modules/ppc64 create mode 120000 installer/ppc64/package-list create mode 100644 installer/ppc64el/kernel-versions create mode 100644 installer/ppc64el/modules/ppc64el/ata-modules create mode 100644 installer/ppc64el/modules/ppc64el/btrfs-modules create mode 100644 installer/ppc64el/modules/ppc64el/cdrom-core-modules create mode 100644 installer/ppc64el/modules/ppc64el/crc-modules create mode 100644 installer/ppc64el/modules/ppc64el/crypto-dm-modules create mode 100644 installer/ppc64el/modules/ppc64el/crypto-modules create mode 100644 installer/ppc64el/modules/ppc64el/event-modules create mode 100644 installer/ppc64el/modules/ppc64el/ext4-modules create mode 100644 installer/ppc64el/modules/ppc64el/fancontrol-modules create mode 100644 installer/ppc64el/modules/ppc64el/fat-modules create mode 100644 installer/ppc64el/modules/ppc64el/firewire-core-modules create mode 100644 installer/ppc64el/modules/ppc64el/fuse-modules create mode 100644 installer/ppc64el/modules/ppc64el/hypervisor-modules create mode 100644 installer/ppc64el/modules/ppc64el/input-modules create mode 100644 installer/ppc64el/modules/ppc64el/isofs-modules create mode 100644 installer/ppc64el/modules/ppc64el/jfs-modules create mode 100644 installer/ppc64el/modules/ppc64el/kernel-image create mode 100644 installer/ppc64el/modules/ppc64el/loop-modules create mode 100644 installer/ppc64el/modules/ppc64el/md-modules create mode 100644 installer/ppc64el/modules/ppc64el/mouse-modules create mode 100644 installer/ppc64el/modules/ppc64el/multipath-modules create mode 100644 installer/ppc64el/modules/ppc64el/nbd-modules create mode 100644 installer/ppc64el/modules/ppc64el/nic-modules create mode 100644 installer/ppc64el/modules/ppc64el/nic-shared-modules create mode 100644 installer/ppc64el/modules/ppc64el/ppp-modules create mode 100644 installer/ppc64el/modules/ppc64el/sata-modules create mode 100644 installer/ppc64el/modules/ppc64el/scsi-core-modules create mode 100644 installer/ppc64el/modules/ppc64el/scsi-modules create mode 100644 installer/ppc64el/modules/ppc64el/serial-modules create mode 100644 installer/ppc64el/modules/ppc64el/squashfs-modules create mode 100644 installer/ppc64el/modules/ppc64el/udf-modules create mode 100644 installer/ppc64el/modules/ppc64el/uinput-modules create mode 100644 installer/ppc64el/modules/ppc64el/usb-modules create mode 100644 installer/ppc64el/modules/ppc64el/usb-serial-modules create mode 100644 installer/ppc64el/modules/ppc64el/usb-storage-modules create mode 100644 installer/ppc64el/modules/ppc64el/virtio-modules create mode 100644 installer/ppc64el/modules/ppc64el/xfs-modules create mode 120000 installer/ppc64el/package-list create mode 100644 installer/s390x/kernel-versions create mode 100644 installer/s390x/modules/s390x/btrfs-modules create mode 100644 installer/s390x/modules/s390x/crc-modules create mode 100644 installer/s390x/modules/s390x/crypto-dm-modules create mode 100644 installer/s390x/modules/s390x/crypto-modules create mode 100644 installer/s390x/modules/s390x/dasd-extra-modules create mode 100644 installer/s390x/modules/s390x/dasd-modules create mode 100644 installer/s390x/modules/s390x/ext4-modules create mode 100644 installer/s390x/modules/s390x/fat-modules create mode 100644 installer/s390x/modules/s390x/fuse-modules create mode 100644 installer/s390x/modules/s390x/isofs-modules create mode 100644 installer/s390x/modules/s390x/kernel-image create mode 100644 installer/s390x/modules/s390x/loop-modules create mode 100644 installer/s390x/modules/s390x/md-modules create mode 100644 installer/s390x/modules/s390x/multipath-modules create mode 100644 installer/s390x/modules/s390x/nbd-modules create mode 100644 installer/s390x/modules/s390x/nic-modules create mode 100644 installer/s390x/modules/s390x/scsi-core-modules create mode 100644 installer/s390x/modules/s390x/scsi-modules create mode 100644 installer/s390x/modules/s390x/udf-modules create mode 100644 installer/s390x/modules/s390x/virtio-modules create mode 100644 installer/s390x/modules/s390x/xfs-modules create mode 100644 installer/s390x/modules/s390x/zlib-modules create mode 100644 installer/s390x/package-list create mode 100644 installer/sh4/kernel-versions create mode 100644 installer/sh4/modules/sh4-sh7751r/btrfs-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/cdrom-core-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/crc-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/crypto-dm-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/crypto-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/ext4-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/fat-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/firewire-core-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/fuse-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/i2c-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/isofs-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/jfs-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/kernel-image create mode 100644 installer/sh4/modules/sh4-sh7751r/loop-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/md-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/minix-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/multipath-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/nbd-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/nic-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/nic-usb-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/pata-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/ppp-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/sata-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/sound-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/speakup-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/squashfs-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/udf-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/usb-serial-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/usb-storage-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/virtio-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/xfs-modules create mode 100644 installer/sh4/modules/sh4-sh7751r/zlib-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/btrfs-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/cdrom-core-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/crc-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/crypto-dm-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/crypto-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/ext4-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/fat-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/firewire-core-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/fuse-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/isofs-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/jfs-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/kernel-image create mode 100644 installer/sh4/modules/sh4-sh7785lcr/loop-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/md-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/minix-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/multipath-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/nbd-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/nic-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/nic-usb-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/pata-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/ppp-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/sata-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/sound-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/speakup-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/squashfs-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/udf-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/usb-serial-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/xfs-modules create mode 100644 installer/sh4/modules/sh4-sh7785lcr/zlib-modules create mode 100644 installer/sh4/package-list create mode 100644 installer/sparc64/kernel-versions create mode 100644 installer/sparc64/modules/sparc64/ata-modules create mode 100644 installer/sparc64/modules/sparc64/btrfs-modules create mode 100644 installer/sparc64/modules/sparc64/cdrom-core-modules create mode 100644 installer/sparc64/modules/sparc64/crc-modules create mode 100644 installer/sparc64/modules/sparc64/crypto-dm-modules create mode 100644 installer/sparc64/modules/sparc64/crypto-modules create mode 100644 installer/sparc64/modules/sparc64/ext4-modules create mode 100644 installer/sparc64/modules/sparc64/fat-modules create mode 100644 installer/sparc64/modules/sparc64/fuse-modules create mode 100644 installer/sparc64/modules/sparc64/input-modules create mode 100644 installer/sparc64/modules/sparc64/isofs-modules create mode 100644 installer/sparc64/modules/sparc64/jfs-modules create mode 100644 installer/sparc64/modules/sparc64/kernel-image create mode 100644 installer/sparc64/modules/sparc64/md-modules create mode 100644 installer/sparc64/modules/sparc64/multipath-modules create mode 100644 installer/sparc64/modules/sparc64/nbd-modules create mode 100644 installer/sparc64/modules/sparc64/nic-modules create mode 100644 installer/sparc64/modules/sparc64/pata-modules create mode 100644 installer/sparc64/modules/sparc64/ppp-modules create mode 100644 installer/sparc64/modules/sparc64/sata-modules create mode 100644 installer/sparc64/modules/sparc64/scsi-core-modules create mode 100644 installer/sparc64/modules/sparc64/scsi-modules create mode 100644 installer/sparc64/modules/sparc64/squashfs-modules create mode 100644 installer/sparc64/modules/sparc64/udf-modules create mode 100644 installer/sparc64/modules/sparc64/usb-modules create mode 100644 installer/sparc64/modules/sparc64/usb-storage-modules create mode 100644 installer/sparc64/modules/sparc64/virtio-modules create mode 100644 installer/sparc64/modules/sparc64/xfs-modules create mode 100644 installer/sparc64/modules/sparc64/zlib-modules create mode 100644 installer/sparc64/package-list create mode 100644 lib/python/debian_linux/__init__.py create mode 100644 lib/python/debian_linux/abi.py create mode 100644 lib/python/debian_linux/config.py create mode 100644 lib/python/debian_linux/debian.py create mode 100644 lib/python/debian_linux/firmware.py create mode 100644 lib/python/debian_linux/gencontrol.py create mode 100644 lib/python/debian_linux/kconfig.py create mode 100644 lib/python/debian_linux/patches.py create mode 100644 lib/python/debian_linux/utils.py create mode 100644 libcpupower-dev.install create mode 100644 libcpupower1.install create mode 100644 libcpupower1.symbols create mode 100644 liblockdep-dev.README.Debian create mode 100644 liblockdep-dev.docs create mode 100644 liblockdep-dev.install create mode 100644 libusbip-dev.install create mode 100644 linux-cpupower.install create mode 100644 linux-headers-4.8.0-0.bpo.2-4kc-malta.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-5kc-malta.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-686-pae.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-686.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-alpha-generic.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-alpha-smp.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-amd64.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-arm64.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-armmp-lpae.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-armmp.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-loongson-3.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-m68k.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-marvell.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-octeon.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-parisc.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-parisc64-smp.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-powerpc-smp.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-powerpc.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-powerpc64.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-powerpc64le.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-powerpcspe.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-rt-686-pae.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-rt-amd64.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-s390x.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-sh7751r.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-sh7785lcr.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-sparc64-smp.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-sparc64.postinst create mode 100644 linux-headers-4.8.0-0.bpo.2-versatile.postinst create mode 100644 linux-headers-4.8.0-2-4kc-malta.postinst create mode 100644 linux-headers-4.8.0-2-5kc-malta.postinst create mode 100644 linux-headers-4.8.0-2-686-pae.postinst create mode 100644 linux-headers-4.8.0-2-686.postinst create mode 100644 linux-headers-4.8.0-2-alpha-generic.postinst create mode 100644 linux-headers-4.8.0-2-alpha-smp.postinst create mode 100644 linux-headers-4.8.0-2-amd64.postinst create mode 100644 linux-headers-4.8.0-2-arm64.postinst create mode 100644 linux-headers-4.8.0-2-armmp-lpae.postinst create mode 100644 linux-headers-4.8.0-2-armmp.postinst create mode 100644 linux-headers-4.8.0-2-loongson-3.postinst create mode 100644 linux-headers-4.8.0-2-m68k.postinst create mode 100644 linux-headers-4.8.0-2-marvell.postinst create mode 100644 linux-headers-4.8.0-2-octeon.postinst create mode 100644 linux-headers-4.8.0-2-parisc.postinst create mode 100644 linux-headers-4.8.0-2-parisc64-smp.postinst create mode 100644 linux-headers-4.8.0-2-powerpc-smp.postinst create mode 100644 linux-headers-4.8.0-2-powerpc.postinst create mode 100644 linux-headers-4.8.0-2-powerpc64.postinst create mode 100644 linux-headers-4.8.0-2-powerpc64le.postinst create mode 100644 linux-headers-4.8.0-2-powerpcspe.postinst create mode 100644 linux-headers-4.8.0-2-rt-686-pae.postinst create mode 100644 linux-headers-4.8.0-2-rt-amd64.postinst create mode 100644 linux-headers-4.8.0-2-s390x.postinst create mode 100644 linux-headers-4.8.0-2-sh7751r.postinst create mode 100644 linux-headers-4.8.0-2-sh7785lcr.postinst create mode 100644 linux-headers-4.8.0-2-sparc64-smp.postinst create mode 100644 linux-headers-4.8.0-2-sparc64.postinst create mode 100644 linux-headers-4.8.0-2-versatile.postinst create mode 100644 linux-headers-4.9.0-1-4kc-malta.postinst create mode 100644 linux-headers-4.9.0-1-5kc-malta.postinst create mode 100644 linux-headers-4.9.0-1-686-pae.postinst create mode 100644 linux-headers-4.9.0-1-686.postinst create mode 100644 linux-headers-4.9.0-1-alpha-generic.postinst create mode 100644 linux-headers-4.9.0-1-alpha-smp.postinst create mode 100644 linux-headers-4.9.0-1-amd64.postinst create mode 100644 linux-headers-4.9.0-1-arm64.postinst create mode 100644 linux-headers-4.9.0-1-armmp-lpae.postinst create mode 100644 linux-headers-4.9.0-1-armmp.postinst create mode 100644 linux-headers-4.9.0-1-loongson-3.postinst create mode 100644 linux-headers-4.9.0-1-m68k.postinst create mode 100644 linux-headers-4.9.0-1-marvell.postinst create mode 100644 linux-headers-4.9.0-1-octeon.postinst create mode 100644 linux-headers-4.9.0-1-parisc.postinst create mode 100644 linux-headers-4.9.0-1-parisc64-smp.postinst create mode 100644 linux-headers-4.9.0-1-powerpc-smp.postinst create mode 100644 linux-headers-4.9.0-1-powerpc.postinst create mode 100644 linux-headers-4.9.0-1-powerpc64.postinst create mode 100644 linux-headers-4.9.0-1-powerpc64le.postinst create mode 100644 linux-headers-4.9.0-1-powerpcspe.postinst create mode 100644 linux-headers-4.9.0-1-rt-686-pae.postinst create mode 100644 linux-headers-4.9.0-1-rt-amd64.postinst create mode 100644 linux-headers-4.9.0-1-s390x.postinst create mode 100644 linux-headers-4.9.0-1-sh7751r.postinst create mode 100644 linux-headers-4.9.0-1-sh7785lcr.postinst create mode 100644 linux-headers-4.9.0-1-sparc64-smp.postinst create mode 100644 linux-headers-4.9.0-1-sparc64.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-4kc-malta.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-4kc-malta.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-4kc-malta.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-4kc-malta.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-5kc-malta.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-5kc-malta.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-5kc-malta.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-5kc-malta.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-686-pae-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-686-pae-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-686-pae-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-686-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-686-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-686-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-686-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-generic.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-generic.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-generic.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-generic.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-smp.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-smp.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-smp.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-alpha-smp.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-amd64-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-amd64-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-amd64-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-amd64-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-amd64-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-arm64-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-arm64-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-arm64-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-arm64-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-arm64-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-armmp-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-loongson-3.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-loongson-3.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-loongson-3.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-loongson-3.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-m68k.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-m68k.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-m68k.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-m68k.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-marvell.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-marvell.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-marvell.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-marvell.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-octeon.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-octeon.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-octeon.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-octeon.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-parisc.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-parisc.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-parisc.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-parisc.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-parisc64-smp.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-parisc64-smp.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-parisc64-smp.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-parisc64-smp.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpcspe.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpcspe.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-powerpcspe.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-powerpcspe.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-rt-686-pae-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-rt-amd64-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-s390x-dbg.lintian-overrides create mode 100644 linux-image-4.8.0-0.bpo.2-s390x-unsigned.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-s390x-unsigned.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-s390x-unsigned.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-s390x-unsigned.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-sh7751r.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-sh7751r.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-sh7751r.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-sh7751r.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-sh7785lcr.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-sh7785lcr.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-sh7785lcr.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-sh7785lcr.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64-smp.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64-smp.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64-smp.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64-smp.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-sparc64.prerm create mode 100644 linux-image-4.8.0-0.bpo.2-versatile.postinst create mode 100644 linux-image-4.8.0-0.bpo.2-versatile.postrm create mode 100644 linux-image-4.8.0-0.bpo.2-versatile.preinst create mode 100644 linux-image-4.8.0-0.bpo.2-versatile.prerm create mode 100644 linux-image-4.8.0-2-4kc-malta-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-4kc-malta.postinst create mode 100644 linux-image-4.8.0-2-4kc-malta.postrm create mode 100644 linux-image-4.8.0-2-4kc-malta.preinst create mode 100644 linux-image-4.8.0-2-4kc-malta.prerm create mode 100644 linux-image-4.8.0-2-5kc-malta-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-5kc-malta.postinst create mode 100644 linux-image-4.8.0-2-5kc-malta.postrm create mode 100644 linux-image-4.8.0-2-5kc-malta.preinst create mode 100644 linux-image-4.8.0-2-5kc-malta.prerm create mode 100644 linux-image-4.8.0-2-686-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-686-pae-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-686-pae-unsigned.postinst create mode 100644 linux-image-4.8.0-2-686-pae-unsigned.postrm create mode 100644 linux-image-4.8.0-2-686-pae-unsigned.preinst create mode 100644 linux-image-4.8.0-2-686-pae-unsigned.prerm create mode 100644 linux-image-4.8.0-2-686-unsigned.postinst create mode 100644 linux-image-4.8.0-2-686-unsigned.postrm create mode 100644 linux-image-4.8.0-2-686-unsigned.preinst create mode 100644 linux-image-4.8.0-2-686-unsigned.prerm create mode 100644 linux-image-4.8.0-2-alpha-generic-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-alpha-generic.postinst create mode 100644 linux-image-4.8.0-2-alpha-generic.postrm create mode 100644 linux-image-4.8.0-2-alpha-generic.preinst create mode 100644 linux-image-4.8.0-2-alpha-generic.prerm create mode 100644 linux-image-4.8.0-2-alpha-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-alpha-smp.postinst create mode 100644 linux-image-4.8.0-2-alpha-smp.postrm create mode 100644 linux-image-4.8.0-2-alpha-smp.preinst create mode 100644 linux-image-4.8.0-2-alpha-smp.prerm create mode 100644 linux-image-4.8.0-2-amd64-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-amd64-unsigned.postinst create mode 100644 linux-image-4.8.0-2-amd64-unsigned.postrm create mode 100644 linux-image-4.8.0-2-amd64-unsigned.preinst create mode 100644 linux-image-4.8.0-2-amd64-unsigned.prerm create mode 100644 linux-image-4.8.0-2-arm64-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-arm64-unsigned.postinst create mode 100644 linux-image-4.8.0-2-arm64-unsigned.postrm create mode 100644 linux-image-4.8.0-2-arm64-unsigned.preinst create mode 100644 linux-image-4.8.0-2-arm64-unsigned.prerm create mode 100644 linux-image-4.8.0-2-armmp-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-armmp-lpae-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-armmp-lpae-unsigned.postinst create mode 100644 linux-image-4.8.0-2-armmp-lpae-unsigned.postrm create mode 100644 linux-image-4.8.0-2-armmp-lpae-unsigned.preinst create mode 100644 linux-image-4.8.0-2-armmp-lpae-unsigned.prerm create mode 100644 linux-image-4.8.0-2-armmp-unsigned.postinst create mode 100644 linux-image-4.8.0-2-armmp-unsigned.postrm create mode 100644 linux-image-4.8.0-2-armmp-unsigned.preinst create mode 100644 linux-image-4.8.0-2-armmp-unsigned.prerm create mode 100644 linux-image-4.8.0-2-loongson-3-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-loongson-3.postinst create mode 100644 linux-image-4.8.0-2-loongson-3.postrm create mode 100644 linux-image-4.8.0-2-loongson-3.preinst create mode 100644 linux-image-4.8.0-2-loongson-3.prerm create mode 100644 linux-image-4.8.0-2-m68k-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-m68k.postinst create mode 100644 linux-image-4.8.0-2-m68k.postrm create mode 100644 linux-image-4.8.0-2-m68k.preinst create mode 100644 linux-image-4.8.0-2-m68k.prerm create mode 100644 linux-image-4.8.0-2-marvell-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-marvell.postinst create mode 100644 linux-image-4.8.0-2-marvell.postrm create mode 100644 linux-image-4.8.0-2-marvell.preinst create mode 100644 linux-image-4.8.0-2-marvell.prerm create mode 100644 linux-image-4.8.0-2-octeon-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-octeon.postinst create mode 100644 linux-image-4.8.0-2-octeon.postrm create mode 100644 linux-image-4.8.0-2-octeon.preinst create mode 100644 linux-image-4.8.0-2-octeon.prerm create mode 100644 linux-image-4.8.0-2-parisc-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-parisc.postinst create mode 100644 linux-image-4.8.0-2-parisc.postrm create mode 100644 linux-image-4.8.0-2-parisc.preinst create mode 100644 linux-image-4.8.0-2-parisc.prerm create mode 100644 linux-image-4.8.0-2-parisc64-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-parisc64-smp.postinst create mode 100644 linux-image-4.8.0-2-parisc64-smp.postrm create mode 100644 linux-image-4.8.0-2-parisc64-smp.preinst create mode 100644 linux-image-4.8.0-2-parisc64-smp.prerm create mode 100644 linux-image-4.8.0-2-powerpc-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-powerpc-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-powerpc-smp-unsigned.postinst create mode 100644 linux-image-4.8.0-2-powerpc-smp-unsigned.postrm create mode 100644 linux-image-4.8.0-2-powerpc-smp-unsigned.preinst create mode 100644 linux-image-4.8.0-2-powerpc-smp-unsigned.prerm create mode 100644 linux-image-4.8.0-2-powerpc-unsigned.postinst create mode 100644 linux-image-4.8.0-2-powerpc-unsigned.postrm create mode 100644 linux-image-4.8.0-2-powerpc-unsigned.preinst create mode 100644 linux-image-4.8.0-2-powerpc-unsigned.prerm create mode 100644 linux-image-4.8.0-2-powerpc64-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-powerpc64-unsigned.postinst create mode 100644 linux-image-4.8.0-2-powerpc64-unsigned.postrm create mode 100644 linux-image-4.8.0-2-powerpc64-unsigned.preinst create mode 100644 linux-image-4.8.0-2-powerpc64-unsigned.prerm create mode 100644 linux-image-4.8.0-2-powerpc64.postinst create mode 100644 linux-image-4.8.0-2-powerpc64.postrm create mode 100644 linux-image-4.8.0-2-powerpc64.preinst create mode 100644 linux-image-4.8.0-2-powerpc64.prerm create mode 100644 linux-image-4.8.0-2-powerpc64le-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-powerpc64le-unsigned.postinst create mode 100644 linux-image-4.8.0-2-powerpc64le-unsigned.postrm create mode 100644 linux-image-4.8.0-2-powerpc64le-unsigned.preinst create mode 100644 linux-image-4.8.0-2-powerpc64le-unsigned.prerm create mode 100644 linux-image-4.8.0-2-powerpcspe-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-powerpcspe.postinst create mode 100644 linux-image-4.8.0-2-powerpcspe.postrm create mode 100644 linux-image-4.8.0-2-powerpcspe.preinst create mode 100644 linux-image-4.8.0-2-powerpcspe.prerm create mode 100644 linux-image-4.8.0-2-rt-686-pae-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-rt-686-pae-unsigned.postinst create mode 100644 linux-image-4.8.0-2-rt-686-pae-unsigned.postrm create mode 100644 linux-image-4.8.0-2-rt-686-pae-unsigned.preinst create mode 100644 linux-image-4.8.0-2-rt-686-pae-unsigned.prerm create mode 100644 linux-image-4.8.0-2-rt-amd64-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-rt-amd64-unsigned.postinst create mode 100644 linux-image-4.8.0-2-rt-amd64-unsigned.postrm create mode 100644 linux-image-4.8.0-2-rt-amd64-unsigned.preinst create mode 100644 linux-image-4.8.0-2-rt-amd64-unsigned.prerm create mode 100644 linux-image-4.8.0-2-s390x-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-s390x-unsigned.postinst create mode 100644 linux-image-4.8.0-2-s390x-unsigned.postrm create mode 100644 linux-image-4.8.0-2-s390x-unsigned.preinst create mode 100644 linux-image-4.8.0-2-s390x-unsigned.prerm create mode 100644 linux-image-4.8.0-2-sh7751r-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-sh7751r.postinst create mode 100644 linux-image-4.8.0-2-sh7751r.postrm create mode 100644 linux-image-4.8.0-2-sh7751r.preinst create mode 100644 linux-image-4.8.0-2-sh7751r.prerm create mode 100644 linux-image-4.8.0-2-sh7785lcr-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-sh7785lcr.postinst create mode 100644 linux-image-4.8.0-2-sh7785lcr.postrm create mode 100644 linux-image-4.8.0-2-sh7785lcr.preinst create mode 100644 linux-image-4.8.0-2-sh7785lcr.prerm create mode 100644 linux-image-4.8.0-2-sparc64-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-sparc64-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-sparc64-smp.postinst create mode 100644 linux-image-4.8.0-2-sparc64-smp.postrm create mode 100644 linux-image-4.8.0-2-sparc64-smp.preinst create mode 100644 linux-image-4.8.0-2-sparc64-smp.prerm create mode 100644 linux-image-4.8.0-2-sparc64.postinst create mode 100644 linux-image-4.8.0-2-sparc64.postrm create mode 100644 linux-image-4.8.0-2-sparc64.preinst create mode 100644 linux-image-4.8.0-2-sparc64.prerm create mode 100644 linux-image-4.8.0-2-versatile-dbgsym.lintian-overrides create mode 100644 linux-image-4.8.0-2-versatile.postinst create mode 100644 linux-image-4.8.0-2-versatile.postrm create mode 100644 linux-image-4.8.0-2-versatile.preinst create mode 100644 linux-image-4.8.0-2-versatile.prerm create mode 100644 linux-image-4.9.0-1-4kc-malta-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-4kc-malta.postinst create mode 100644 linux-image-4.9.0-1-4kc-malta.postrm create mode 100644 linux-image-4.9.0-1-4kc-malta.preinst create mode 100644 linux-image-4.9.0-1-4kc-malta.prerm create mode 100644 linux-image-4.9.0-1-5kc-malta-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-5kc-malta.postinst create mode 100644 linux-image-4.9.0-1-5kc-malta.postrm create mode 100644 linux-image-4.9.0-1-5kc-malta.preinst create mode 100644 linux-image-4.9.0-1-5kc-malta.prerm create mode 100644 linux-image-4.9.0-1-686-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-686-pae-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-686-pae-unsigned.postinst create mode 100644 linux-image-4.9.0-1-686-pae-unsigned.postrm create mode 100644 linux-image-4.9.0-1-686-pae-unsigned.preinst create mode 100644 linux-image-4.9.0-1-686-pae-unsigned.prerm create mode 100644 linux-image-4.9.0-1-686-unsigned.postinst create mode 100644 linux-image-4.9.0-1-686-unsigned.postrm create mode 100644 linux-image-4.9.0-1-686-unsigned.preinst create mode 100644 linux-image-4.9.0-1-686-unsigned.prerm create mode 100644 linux-image-4.9.0-1-alpha-generic-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-alpha-generic.postinst create mode 100644 linux-image-4.9.0-1-alpha-generic.postrm create mode 100644 linux-image-4.9.0-1-alpha-generic.preinst create mode 100644 linux-image-4.9.0-1-alpha-generic.prerm create mode 100644 linux-image-4.9.0-1-alpha-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-alpha-smp.postinst create mode 100644 linux-image-4.9.0-1-alpha-smp.postrm create mode 100644 linux-image-4.9.0-1-alpha-smp.preinst create mode 100644 linux-image-4.9.0-1-alpha-smp.prerm create mode 100644 linux-image-4.9.0-1-amd64-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-amd64-unsigned.postinst create mode 100644 linux-image-4.9.0-1-amd64-unsigned.postrm create mode 100644 linux-image-4.9.0-1-amd64-unsigned.preinst create mode 100644 linux-image-4.9.0-1-amd64-unsigned.prerm create mode 100644 linux-image-4.9.0-1-arm64-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-arm64-unsigned.postinst create mode 100644 linux-image-4.9.0-1-arm64-unsigned.postrm create mode 100644 linux-image-4.9.0-1-arm64-unsigned.preinst create mode 100644 linux-image-4.9.0-1-arm64-unsigned.prerm create mode 100644 linux-image-4.9.0-1-armmp-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-armmp-lpae-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-armmp-lpae-unsigned.postinst create mode 100644 linux-image-4.9.0-1-armmp-lpae-unsigned.postrm create mode 100644 linux-image-4.9.0-1-armmp-lpae-unsigned.preinst create mode 100644 linux-image-4.9.0-1-armmp-lpae-unsigned.prerm create mode 100644 linux-image-4.9.0-1-armmp-unsigned.postinst create mode 100644 linux-image-4.9.0-1-armmp-unsigned.postrm create mode 100644 linux-image-4.9.0-1-armmp-unsigned.preinst create mode 100644 linux-image-4.9.0-1-armmp-unsigned.prerm create mode 100644 linux-image-4.9.0-1-loongson-3-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-loongson-3.postinst create mode 100644 linux-image-4.9.0-1-loongson-3.postrm create mode 100644 linux-image-4.9.0-1-loongson-3.preinst create mode 100644 linux-image-4.9.0-1-loongson-3.prerm create mode 100644 linux-image-4.9.0-1-m68k-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-m68k.postinst create mode 100644 linux-image-4.9.0-1-m68k.postrm create mode 100644 linux-image-4.9.0-1-m68k.preinst create mode 100644 linux-image-4.9.0-1-m68k.prerm create mode 100644 linux-image-4.9.0-1-marvell-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-marvell.postinst create mode 100644 linux-image-4.9.0-1-marvell.postrm create mode 100644 linux-image-4.9.0-1-marvell.preinst create mode 100644 linux-image-4.9.0-1-marvell.prerm create mode 100644 linux-image-4.9.0-1-octeon-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-octeon.postinst create mode 100644 linux-image-4.9.0-1-octeon.postrm create mode 100644 linux-image-4.9.0-1-octeon.preinst create mode 100644 linux-image-4.9.0-1-octeon.prerm create mode 100644 linux-image-4.9.0-1-parisc-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-parisc.postinst create mode 100644 linux-image-4.9.0-1-parisc.postrm create mode 100644 linux-image-4.9.0-1-parisc.preinst create mode 100644 linux-image-4.9.0-1-parisc.prerm create mode 100644 linux-image-4.9.0-1-parisc64-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-parisc64-smp.postinst create mode 100644 linux-image-4.9.0-1-parisc64-smp.postrm create mode 100644 linux-image-4.9.0-1-parisc64-smp.preinst create mode 100644 linux-image-4.9.0-1-parisc64-smp.prerm create mode 100644 linux-image-4.9.0-1-powerpc-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-powerpc-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-powerpc-smp-unsigned.postinst create mode 100644 linux-image-4.9.0-1-powerpc-smp-unsigned.postrm create mode 100644 linux-image-4.9.0-1-powerpc-smp-unsigned.preinst create mode 100644 linux-image-4.9.0-1-powerpc-smp-unsigned.prerm create mode 100644 linux-image-4.9.0-1-powerpc-unsigned.postinst create mode 100644 linux-image-4.9.0-1-powerpc-unsigned.postrm create mode 100644 linux-image-4.9.0-1-powerpc-unsigned.preinst create mode 100644 linux-image-4.9.0-1-powerpc-unsigned.prerm create mode 100644 linux-image-4.9.0-1-powerpc64-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-powerpc64-unsigned.postinst create mode 100644 linux-image-4.9.0-1-powerpc64-unsigned.postrm create mode 100644 linux-image-4.9.0-1-powerpc64-unsigned.preinst create mode 100644 linux-image-4.9.0-1-powerpc64-unsigned.prerm create mode 100644 linux-image-4.9.0-1-powerpc64.postinst create mode 100644 linux-image-4.9.0-1-powerpc64.postrm create mode 100644 linux-image-4.9.0-1-powerpc64.preinst create mode 100644 linux-image-4.9.0-1-powerpc64.prerm create mode 100644 linux-image-4.9.0-1-powerpc64le-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-powerpc64le-unsigned.postinst create mode 100644 linux-image-4.9.0-1-powerpc64le-unsigned.postrm create mode 100644 linux-image-4.9.0-1-powerpc64le-unsigned.preinst create mode 100644 linux-image-4.9.0-1-powerpc64le-unsigned.prerm create mode 100644 linux-image-4.9.0-1-powerpcspe-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-powerpcspe.postinst create mode 100644 linux-image-4.9.0-1-powerpcspe.postrm create mode 100644 linux-image-4.9.0-1-powerpcspe.preinst create mode 100644 linux-image-4.9.0-1-powerpcspe.prerm create mode 100644 linux-image-4.9.0-1-rt-686-pae-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-rt-686-pae-unsigned.postinst create mode 100644 linux-image-4.9.0-1-rt-686-pae-unsigned.postrm create mode 100644 linux-image-4.9.0-1-rt-686-pae-unsigned.preinst create mode 100644 linux-image-4.9.0-1-rt-686-pae-unsigned.prerm create mode 100644 linux-image-4.9.0-1-rt-amd64-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-rt-amd64-unsigned.postinst create mode 100644 linux-image-4.9.0-1-rt-amd64-unsigned.postrm create mode 100644 linux-image-4.9.0-1-rt-amd64-unsigned.preinst create mode 100644 linux-image-4.9.0-1-rt-amd64-unsigned.prerm create mode 100644 linux-image-4.9.0-1-s390x-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-s390x-unsigned.postinst create mode 100644 linux-image-4.9.0-1-s390x-unsigned.postrm create mode 100644 linux-image-4.9.0-1-s390x-unsigned.preinst create mode 100644 linux-image-4.9.0-1-s390x-unsigned.prerm create mode 100644 linux-image-4.9.0-1-sh7751r-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-sh7751r.postinst create mode 100644 linux-image-4.9.0-1-sh7751r.postrm create mode 100644 linux-image-4.9.0-1-sh7751r.preinst create mode 100644 linux-image-4.9.0-1-sh7751r.prerm create mode 100644 linux-image-4.9.0-1-sh7785lcr-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-sh7785lcr.postinst create mode 100644 linux-image-4.9.0-1-sh7785lcr.postrm create mode 100644 linux-image-4.9.0-1-sh7785lcr.preinst create mode 100644 linux-image-4.9.0-1-sh7785lcr.prerm create mode 100644 linux-image-4.9.0-1-sparc64-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-sparc64-smp-dbgsym.lintian-overrides create mode 100644 linux-image-4.9.0-1-sparc64-smp.postinst create mode 100644 linux-image-4.9.0-1-sparc64-smp.postrm create mode 100644 linux-image-4.9.0-1-sparc64-smp.preinst create mode 100644 linux-image-4.9.0-1-sparc64-smp.prerm create mode 100644 linux-image-4.9.0-1-sparc64.postinst create mode 100644 linux-image-4.9.0-1-sparc64.postrm create mode 100644 linux-image-4.9.0-1-sparc64.preinst create mode 100644 linux-image-4.9.0-1-sparc64.prerm create mode 100644 linux-perf-4.8.lintian-overrides create mode 100644 linux-perf-4.9.lintian-overrides create mode 100644 lockdep.dirs create mode 100644 patches/bugfix/all/cpupower-bump-soname-version.patch create mode 100644 patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch create mode 100644 patches/bugfix/all/disable-some-marvell-phys.patch create mode 100644 patches/bugfix/all/ext4-fix-bug-838544.patch create mode 100644 patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch create mode 100644 patches/bugfix/all/firmware_class-log-every-success-and-failure.patch create mode 100644 patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch create mode 100644 patches/bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch create mode 100644 patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch create mode 100644 patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch create mode 100644 patches/bugfix/all/liblockdep-define-the-array_size-macro.patch create mode 100644 patches/bugfix/all/liblockdep-enable-wall-by-default.patch create mode 100644 patches/bugfix/all/liblockdep-fix-defined-but-not-used-warning-for-init.patch create mode 100644 patches/bugfix/all/liblockdep-fix-set-but-not-used-warnings.patch create mode 100644 patches/bugfix/all/liblockdep-fix-undefined-symbol-prandom_u32.patch create mode 100644 patches/bugfix/all/liblockdep-fix-unused-value-warnings.patch create mode 100644 patches/bugfix/all/liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch create mode 100644 patches/bugfix/all/lockdep-fix-oot-build.patch create mode 100644 patches/bugfix/all/lockdep-fix-soname.patch create mode 100644 patches/bugfix/all/mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch create mode 100644 patches/bugfix/all/module-disable-matching-missing-version-crc.patch create mode 100644 patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch create mode 100644 patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch create mode 100644 patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch create mode 100644 patches/bugfix/all/tools-lib-lockdep-use-ldflags.patch create mode 100644 patches/bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch create mode 100644 patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch create mode 100644 patches/bugfix/all/tools-perf-man-date.patch create mode 100644 patches/bugfix/all/tools-perf-remove-shebangs.patch create mode 100644 patches/bugfix/all/usbip-document-tcp-wrappers.patch create mode 100644 patches/bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch create mode 100644 patches/bugfix/alpha/revert-alpha-move-exports-to-actual-definitions.patch create mode 100644 patches/bugfix/ia64/revert-ia64-move-exports-to-definitions.patch create mode 100644 patches/bugfix/m68k/revert-m68k-move-exports-to-definitions.patch create mode 100644 patches/bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch create mode 100644 patches/bugfix/powerpc/powerpc-remove-mac-on-linux-hooks.patch create mode 100644 patches/bugfix/s390/revert-s390-move-exports-to-definitions.patch create mode 100644 patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch create mode 100644 patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch create mode 100644 patches/bugfix/x86/tools-hv-fix-fortify-format-warning.patch create mode 100644 patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch create mode 100644 patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch create mode 100644 patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch create mode 100644 patches/debian/arch-sh4-fix-uimage-build.patch create mode 100644 patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch create mode 100644 patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch create mode 100644 patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch create mode 100644 patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch create mode 100644 patches/debian/dfsg/drivers-net-appletalk-cops.patch create mode 100644 patches/debian/dfsg/files-1 create mode 100644 patches/debian/dfsg/firmware-cleanup.patch create mode 100644 patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch create mode 100644 patches/debian/dfsg/vs6624-disable.patch create mode 100644 patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch create mode 100644 patches/debian/fs-enable-link-security-restrictions-by-default.patch create mode 100644 patches/debian/gitignore.patch create mode 100644 patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch create mode 100644 patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch create mode 100644 patches/debian/kernelvariables.patch create mode 100644 patches/debian/mips-disable-werror.patch create mode 100644 patches/debian/modpost-symbol-prefix.patch create mode 100644 patches/debian/powerpcspe-omit-uimage.patch create mode 100644 patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch create mode 100644 patches/debian/sched-autogroup-disabled.patch create mode 100644 patches/debian/snd-pcsp-disable-autoload.patch create mode 100644 patches/debian/tools-perf-install.patch create mode 100644 patches/debian/tools-perf-version.patch create mode 100644 patches/debian/uname-version-timestamp.patch create mode 100644 patches/debian/version.patch create mode 100644 patches/debian/yama-disable-by-default.patch create mode 100644 patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch create mode 100644 patches/features/all/aufs4/aufs4-base.patch create mode 100644 patches/features/all/aufs4/aufs4-mmap.patch create mode 100644 patches/features/all/aufs4/aufs4-standalone.patch create mode 100755 patches/features/all/aufs4/gen-patch create mode 100644 patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch create mode 100644 patches/features/all/rt/ARM-enable-irq-in-translation-section-permission-fau.patch create mode 100644 patches/features/all/rt/HACK-printk-drop-the-logbuf_lock-more-often.patch create mode 100644 patches/features/all/rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch create mode 100644 patches/features/all/rt/KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch create mode 100644 patches/features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch create mode 100644 patches/features/all/rt/acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch create mode 100644 patches/features/all/rt/arch-arm64-Add-lazy-preempt-support.patch create mode 100644 patches/features/all/rt/arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch create mode 100644 patches/features/all/rt/arm-at91-tclib-default-to-tclib-timer-for-rt.patch create mode 100644 patches/features/all/rt/arm-convert-boot-lock-to-raw.patch create mode 100644 patches/features/all/rt/arm-enable-highmem-for-rt.patch create mode 100644 patches/features/all/rt/arm-highmem-flush-tlb-on-unmap.patch create mode 100644 patches/features/all/rt/arm-include-definition-for-cpumask_t.patch create mode 100644 patches/features/all/rt/arm-kprobe-replace-patch_lock-to-raw-lock.patch create mode 100644 patches/features/all/rt/arm-preempt-lazy-support.patch create mode 100644 patches/features/all/rt/arm-unwind-use_raw_lock.patch create mode 100644 patches/features/all/rt/arm64-xen--Make-XEN-depend-on-non-rt.patch create mode 100644 patches/features/all/rt/at91_dont_enable_disable_clock.patch create mode 100644 patches/features/all/rt/ata-disable-interrupts-if-non-rt.patch create mode 100644 patches/features/all/rt/block-blk-mq-use-swait.patch create mode 100644 patches/features/all/rt/block-mq-don-t-complete-requests-via-IPI.patch create mode 100644 patches/features/all/rt/block-mq-drop-preempt-disable.patch create mode 100644 patches/features/all/rt/block-mq-use-cpu_light.patch create mode 100644 patches/features/all/rt/block-shorten-interrupt-disabled-regions.patch create mode 100644 patches/features/all/rt/block-use-cpu-chill.patch create mode 100644 patches/features/all/rt/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch create mode 100644 patches/features/all/rt/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch create mode 100644 patches/features/all/rt/bug-rt-dependend-variants.patch create mode 100644 patches/features/all/rt/cgroups-scheduling-while-atomic-in-cgroup-code.patch create mode 100644 patches/features/all/rt/cgroups-use-simple-wait-in-css_release.patch create mode 100644 patches/features/all/rt/clockevents-drivers-timer-atmel-pit-fix-double-free_.patch create mode 100644 patches/features/all/rt/clocksource-tclib-allow-higher-clockrates.patch create mode 100644 patches/features/all/rt/completion-use-simple-wait-queues.patch create mode 100644 patches/features/all/rt/cond-resched-lock-rt-tweak.patch create mode 100644 patches/features/all/rt/cond-resched-softirq-rt.patch create mode 100644 patches/features/all/rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch create mode 100644 patches/features/all/rt/cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch create mode 100644 patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch create mode 100644 patches/features/all/rt/cpu-rt-rework-cpu-down.patch create mode 100644 patches/features/all/rt/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch create mode 100644 patches/features/all/rt/cpu_down_move_migrate_enable_back.patch create mode 100644 patches/features/all/rt/cpufreq-drop-K8-s-driver-from-beeing-selected.patch create mode 100644 patches/features/all/rt/cpumask-disable-offstack-on-rt.patch create mode 100644 patches/features/all/rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch create mode 100644 patches/features/all/rt/debugobjects-rt.patch create mode 100644 patches/features/all/rt/dm-make-rt-aware.patch create mode 100644 patches/features/all/rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch create mode 100644 patches/features/all/rt/drivers-net-8139-disable-irq-nosync.patch create mode 100644 patches/features/all/rt/drivers-net-vortex-fix-locking-issues.patch create mode 100644 patches/features/all/rt/drivers-random-reduce-preempt-disabled-region.patch create mode 100644 patches/features/all/rt/drivers-tty-fix-omap-lock-crap.patch create mode 100644 patches/features/all/rt/drivers-tty-pl011-irq-disable-madness.patch create mode 100644 patches/features/all/rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch create mode 100644 patches/features/all/rt/drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch create mode 100644 patches/features/all/rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch create mode 100644 patches/features/all/rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch create mode 100644 patches/features/all/rt/epoll-use-get-cpu-light.patch create mode 100644 patches/features/all/rt/fs-aio-simple-simple-work.patch create mode 100644 patches/features/all/rt/fs-block-rt-support.patch create mode 100644 patches/features/all/rt/fs-dcache-include-wait.h.patch create mode 100644 patches/features/all/rt/fs-dcache-init-in_lookup_hashtable.patch create mode 100644 patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch create mode 100644 patches/features/all/rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch create mode 100644 patches/features/all/rt/fs-jbd-replace-bh_state-lock.patch create mode 100644 patches/features/all/rt/fs-jbd2-pull-your-plug-when-waiting-for-space.patch create mode 100644 patches/features/all/rt/fs-namespace-preemption-fix.patch create mode 100644 patches/features/all/rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch create mode 100644 patches/features/all/rt/fs-ntfs-disable-interrupt-non-rt.patch create mode 100644 patches/features/all/rt/fs-replace-bh_uptodate_lock-for-rt.patch create mode 100644 patches/features/all/rt/ftrace-Fix-trace-header-alignment.patch create mode 100644 patches/features/all/rt/ftrace-migrate-disable-tracing.patch create mode 100644 patches/features/all/rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch create mode 100644 patches/features/all/rt/futex-requeue-pi-fix.patch create mode 100644 patches/features/all/rt/genirq-disable-irqpoll-on-rt.patch create mode 100644 patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch create mode 100644 patches/features/all/rt/genirq-force-threading.patch create mode 100644 patches/features/all/rt/genirq-update-irq_set_irqchip_state-documentation.patch create mode 100755 patches/features/all/rt/genpatch.py create mode 100644 patches/features/all/rt/gpu_don_t_check_for_the_lock_owner.patch create mode 100644 patches/features/all/rt/hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch create mode 100644 patches/features/all/rt/hotplug-light-get-online-cpus.patch create mode 100644 patches/features/all/rt/hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch create mode 100644 patches/features/all/rt/hotplug-use-migrate-disable.patch create mode 100644 patches/features/all/rt/hrtimer-Move-schedule_work-call-to-helper-thread.patch create mode 100644 patches/features/all/rt/hrtimer-enfore-64byte-alignment.patch create mode 100644 patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch create mode 100644 patches/features/all/rt/hrtimers-prepare-full-preemption.patch create mode 100644 patches/features/all/rt/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch create mode 100644 patches/features/all/rt/ide-use-nort-local-irq-variants.patch create mode 100644 patches/features/all/rt/idr-use-local-lock-for-protection.patch create mode 100644 patches/features/all/rt/infiniband-mellanox-ib-use-nort-irq.patch create mode 100644 patches/features/all/rt/inpt-gameport-use-local-irq-nort.patch create mode 100644 patches/features/all/rt/introduce_migrate_disable_cpu_light.patch create mode 100644 patches/features/all/rt/iommu-amd--Use-WARN_ON_NORT.patch create mode 100644 patches/features/all/rt/iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch create mode 100644 patches/features/all/rt/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch create mode 100644 patches/features/all/rt/ipc-sem-rework-semaphore-wakeups.patch create mode 100644 patches/features/all/rt/irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch create mode 100644 patches/features/all/rt/irqwork-Move-irq-safe-work-to-irq-context.patch create mode 100644 patches/features/all/rt/irqwork-push_most_work_into_softirq_context.patch create mode 100644 patches/features/all/rt/jump-label-rt.patch create mode 100644 patches/features/all/rt/kconfig-disable-a-few-options-rt.patch create mode 100644 patches/features/all/rt/kconfig-preempt-rt-full.patch create mode 100644 patches/features/all/rt/kernel-SRCU-provide-a-static-initializer.patch create mode 100644 patches/features/all/rt/kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch create mode 100644 patches/features/all/rt/kernel-futex-don-t-deboost-too-early.patch create mode 100644 patches/features/all/rt/kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch create mode 100644 patches/features/all/rt/kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch create mode 100644 patches/features/all/rt/kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch create mode 100644 patches/features/all/rt/kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch create mode 100644 patches/features/all/rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch create mode 100644 patches/features/all/rt/kernel-softirq-unlock-with-irqs-on.patch create mode 100644 patches/features/all/rt/kgb-serial-hackaround.patch create mode 100644 patches/features/all/rt/latency-hist.patch create mode 100644 patches/features/all/rt/latency_hist-update-sched_wakeup-probe.patch create mode 100644 patches/features/all/rt/latencyhist-disable-jump-labels.patch create mode 100644 patches/features/all/rt/leds-trigger-disable-CPU-trigger-on-RT.patch create mode 100644 patches/features/all/rt/list_bl-fixup-bogus-lockdep-warning.patch create mode 100644 patches/features/all/rt/list_bl.h-make-list-head-locking-RT-safe.patch create mode 100644 patches/features/all/rt/local-irq-rt-depending-variants.patch create mode 100644 patches/features/all/rt/locallock-add-local_lock_on.patch create mode 100644 patches/features/all/rt/localversion.patch create mode 100644 patches/features/all/rt/lockdep-no-softirq-accounting-on-rt.patch create mode 100644 patches/features/all/rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch create mode 100644 patches/features/all/rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch create mode 100644 patches/features/all/rt/locking-locktorture-Do-NOT-include-rwlock.h-directly.patch create mode 100644 patches/features/all/rt/locking-percpu-rwsem-use-swait-for-the-wating-writer.patch create mode 100644 patches/features/all/rt/md-disable-bcache.patch create mode 100644 patches/features/all/rt/md-raid5-percpu-handling-rt-aware.patch create mode 100644 patches/features/all/rt/mips-disable-highmem-on-rt.patch create mode 100644 patches/features/all/rt/mm--rt--Fix-generic-kmap_atomic-for-RT.patch create mode 100644 patches/features/all/rt/mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch create mode 100644 patches/features/all/rt/mm-bounce-local-irq-save-nort.patch create mode 100644 patches/features/all/rt/mm-convert-swap-to-percpu-locked.patch create mode 100644 patches/features/all/rt/mm-disable-sloub-rt.patch create mode 100644 patches/features/all/rt/mm-enable-slub.patch create mode 100644 patches/features/all/rt/mm-make-vmstat-rt-aware.patch create mode 100644 patches/features/all/rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch create mode 100644 patches/features/all/rt/mm-memcontrol-do_not_disable_irq.patch create mode 100644 patches/features/all/rt/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch create mode 100644 patches/features/all/rt/mm-page-alloc-use-local-lock-on-target-cpu.patch create mode 100644 patches/features/all/rt/mm-page_alloc-reduce-lock-sections-further.patch create mode 100644 patches/features/all/rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch create mode 100644 patches/features/all/rt/mm-perform-lru_add_drain_all-remotely.patch create mode 100644 patches/features/all/rt/mm-protect-activate-switch-mm.patch create mode 100644 patches/features/all/rt/mm-rt-kmap-atomic-scheduling.patch create mode 100644 patches/features/all/rt/mm-scatterlist-dont-disable-irqs-on-RT.patch create mode 100644 patches/features/all/rt/mm-vmalloc-use-get-cpu-light.patch create mode 100644 patches/features/all/rt/mm-workingset-do-not-protect-workingset_shadow_nodes.patch create mode 100644 patches/features/all/rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch create mode 100644 patches/features/all/rt/mmci-remove-bogus-irq-save.patch create mode 100644 patches/features/all/rt/move_sched_delayed_work_to_helper.patch create mode 100644 patches/features/all/rt/mutex-no-spin-on-rt.patch create mode 100644 patches/features/all/rt/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch create mode 100644 patches/features/all/rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch create mode 100644 patches/features/all/rt/net-add-a-lock-around-icmp_sk.patch create mode 100644 patches/features/all/rt/net-add-back-the-missing-serialization-in-ip_send_un.patch create mode 100644 patches/features/all/rt/net-another-local-irq-disable-alloc-atomic-headache.patch create mode 100644 patches/features/all/rt/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch create mode 100644 patches/features/all/rt/net-core-protect-users-of-napi_alloc_cache-against-r.patch create mode 100644 patches/features/all/rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch create mode 100644 patches/features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch create mode 100644 patches/features/all/rt/net-make-devnet_rename_seq-a-mutex.patch create mode 100644 patches/features/all/rt/net-move-xmit_recursion-to-per-task-variable-on-RT.patch create mode 100644 patches/features/all/rt/net-prevent-abba-deadlock.patch create mode 100644 patches/features/all/rt/net-provide-a-way-to-delegate-processing-a-softirq-t.patch create mode 100644 patches/features/all/rt/net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch create mode 100644 patches/features/all/rt/net-use-cpu-chill.patch create mode 100644 patches/features/all/rt/net-wireless-warn-nort.patch create mode 100644 patches/features/all/rt/oleg-signal-rt-fix.patch create mode 100644 patches/features/all/rt/panic-disable-random-on-rt.patch create mode 100644 patches/features/all/rt/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch create mode 100644 patches/features/all/rt/pci-access-use-__wake_up_all_locked.patch create mode 100644 patches/features/all/rt/percpu_ida-use-locklocks.patch create mode 100644 patches/features/all/rt/perf-make-swevent-hrtimer-irqsafe.patch create mode 100644 patches/features/all/rt/peter_zijlstra-frob-rcu.patch create mode 100644 patches/features/all/rt/peterz-percpu-rwsem-rt.patch create mode 100644 patches/features/all/rt/peterz-srcu-crypto-chain.patch create mode 100644 patches/features/all/rt/pid.h-include-atomic.h.patch create mode 100644 patches/features/all/rt/ping-sysrq.patch create mode 100644 patches/features/all/rt/posix-timers-no-broadcast.patch create mode 100644 patches/features/all/rt/posix-timers-thread-posix-cpu-timers-on-rt.patch create mode 100644 patches/features/all/rt/power-disable-highmem-on-rt.patch create mode 100644 patches/features/all/rt/power-use-generic-rwsem-on-rt.patch create mode 100644 patches/features/all/rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch create mode 100644 patches/features/all/rt/powerpc-preempt-lazy-support.patch create mode 100644 patches/features/all/rt/powerpc-ps3-device-init.c-adapt-to-completions-using.patch create mode 100644 patches/features/all/rt/preempt-lazy-support.patch create mode 100644 patches/features/all/rt/preempt-nort-rt-variants.patch create mode 100644 patches/features/all/rt/printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch create mode 100644 patches/features/all/rt/printk-kill.patch create mode 100644 patches/features/all/rt/printk-rt-aware.patch create mode 100644 patches/features/all/rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch create mode 100644 patches/features/all/rt/radix-tree-rt-aware.patch create mode 100644 patches/features/all/rt/random-make-it-work-on-rt.patch create mode 100644 patches/features/all/rt/rbtree-include-rcu.h-because-we-use-it.patch create mode 100644 patches/features/all/rt/rcu-Eliminate-softirq-processing-from-rcutree.patch create mode 100644 patches/features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch create mode 100644 patches/features/all/rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch create mode 100644 patches/features/all/rt/rcu-make-RCU_BOOST-default-on-RT.patch create mode 100644 patches/features/all/rt/rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch create mode 100644 patches/features/all/rt/rcu-update-make-RCU_EXPEDITE_BOOT-default.patch create mode 100644 patches/features/all/rt/rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch create mode 100644 patches/features/all/rt/re-migrate_disable-race-with-cpu-hotplug-3f.patch create mode 100644 patches/features/all/rt/re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch create mode 100644 patches/features/all/rt/rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch create mode 100644 patches/features/all/rt/rt-add-rt-locks.patch create mode 100644 patches/features/all/rt/rt-introduce-cpu-chill.patch create mode 100644 patches/features/all/rt/rt-local-irq-lock.patch create mode 100644 patches/features/all/rt/rt-locking-Reenable-migration-accross-schedule.patch create mode 100644 patches/features/all/rt/rt-preempt-base-config.patch create mode 100644 patches/features/all/rt/rt-serial-warn-fix.patch create mode 100644 patches/features/all/rt/rtmutex--Handle-non-enqueued-waiters-gracefully.patch create mode 100644 patches/features/all/rt/rtmutex-add-a-first-shot-of-ww_mutex.patch create mode 100644 patches/features/all/rt/rtmutex-avoid-include-hell.patch create mode 100644 patches/features/all/rt/rtmutex-futex-prepare-rt.patch create mode 100644 patches/features/all/rt/rtmutex-lock-killable.patch create mode 100644 patches/features/all/rt/rtmutex-trylock-is-okay-on-RT.patch create mode 100644 patches/features/all/rt/rtmutex_dont_include_rcu.patch create mode 100644 patches/features/all/rt/rxrpc-remove-unused-static-variables.patch create mode 100644 patches/features/all/rt/sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch create mode 100644 patches/features/all/rt/sched-deadline-dl_task_timer-has-to-be-irqsafe.patch create mode 100644 patches/features/all/rt/sched-delay-put-task.patch create mode 100644 patches/features/all/rt/sched-disable-rt-group-sched-on-rt.patch create mode 100644 patches/features/all/rt/sched-disable-ttwu-queue.patch create mode 100644 patches/features/all/rt/sched-limit-nr-migrate.patch create mode 100644 patches/features/all/rt/sched-might-sleep-do-not-account-rcu-depth.patch create mode 100644 patches/features/all/rt/sched-mmdrop-delayed.patch create mode 100644 patches/features/all/rt/sched-rt-mutex-wakeup.patch create mode 100644 patches/features/all/rt/sched-ttwu-ensure-success-return-is-correct.patch create mode 100644 patches/features/all/rt/sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch create mode 100644 patches/features/all/rt/scsi-fcoe-rt-aware.patch create mode 100644 patches/features/all/rt/scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch create mode 100644 patches/features/all/rt/seqlock-prevent-rt-starvation.patch create mode 100644 patches/features/all/rt/signal-fix-up-rcu-wreckage.patch create mode 100644 patches/features/all/rt/signal-revert-ptrace-preempt-magic.patch create mode 100644 patches/features/all/rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch create mode 100644 patches/features/all/rt/skbufhead-raw-lock.patch create mode 100644 patches/features/all/rt/slub-disable-SLUB_CPU_PARTIAL.patch create mode 100644 patches/features/all/rt/slub-enable-irqs-for-no-wait.patch create mode 100644 patches/features/all/rt/snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch create mode 100644 patches/features/all/rt/softirq-disable-softirq-stacks-for-rt.patch create mode 100644 patches/features/all/rt/softirq-preempt-fix-3-re.patch create mode 100644 patches/features/all/rt/softirq-split-locks.patch create mode 100644 patches/features/all/rt/softirq-split-timer-softirqs-out-of-ksoftirqd.patch create mode 100644 patches/features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch create mode 100644 patches/features/all/rt/spinlock-types-separate-raw.patch create mode 100644 patches/features/all/rt/stop-machine-raw-lock.patch create mode 100644 patches/features/all/rt/stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch create mode 100644 patches/features/all/rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch create mode 100644 patches/features/all/rt/suspend-prevernt-might-sleep-splats.patch create mode 100644 patches/features/all/rt/sysfs-realtime-entry.patch create mode 100644 patches/features/all/rt/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch create mode 100644 patches/features/all/rt/thermal-Defer-thermal-wakups-to-threads.patch create mode 100644 patches/features/all/rt/tick-broadcast--Make-hrtimer-irqsafe.patch create mode 100644 patches/features/all/rt/timekeeping-split-jiffies-lock.patch create mode 100644 patches/features/all/rt/timer-delay-waking-softirqs-from-the-jiffy-tick.patch create mode 100644 patches/features/all/rt/timer-fd-avoid-live-lock.patch create mode 100644 patches/features/all/rt/timer-make-the-base-lock-raw.patch create mode 100644 patches/features/all/rt/timers-prepare-for-full-preemption.patch create mode 100644 patches/features/all/rt/trace-latency-hist-Consider-new-argument-when-probin.patch create mode 100644 patches/features/all/rt/trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch create mode 100644 patches/features/all/rt/tracing-account-for-preempt-off-in-preempt_schedule.patch create mode 100644 patches/features/all/rt/tty-serial-8250-don-t-take-the-trylock-during-oops.patch create mode 100644 patches/features/all/rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch create mode 100644 patches/features/all/rt/usb-use-_nort-in-giveback.patch create mode 100644 patches/features/all/rt/user-use-local-irq-nort.patch create mode 100644 patches/features/all/rt/wait.h-include-atomic.h.patch create mode 100644 patches/features/all/rt/work-queue-work-around-irqsafe-timer-optimization.patch create mode 100644 patches/features/all/rt/work-simple-Simple-work-queue-implemenation.patch create mode 100644 patches/features/all/rt/workqueue-distangle-from-rq-lock.patch create mode 100644 patches/features/all/rt/workqueue-prevent-deadlock-stall.patch create mode 100644 patches/features/all/rt/workqueue-use-locallock.patch create mode 100644 patches/features/all/rt/workqueue-use-rcu.patch create mode 100644 patches/features/all/rt/x86-UV-raw_spinlock-conversion.patch create mode 100644 patches/features/all/rt/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch create mode 100644 patches/features/all/rt/x86-crypto-reduce-preempt-disabled-regions.patch create mode 100644 patches/features/all/rt/x86-highmem-add-a-already-used-pte-check.patch create mode 100644 patches/features/all/rt/x86-io-apic-migra-no-unmask.patch create mode 100644 patches/features/all/rt/x86-kvm-require-const-tsc-for-rt.patch create mode 100644 patches/features/all/rt/x86-mce-timer-hrtimer.patch create mode 100644 patches/features/all/rt/x86-mce-use-swait-queue-for-mce-wakeups.patch create mode 100644 patches/features/all/rt/x86-preempt-lazy.patch create mode 100644 patches/features/all/rt/x86-signal-delay-calling-signals-on-32bit.patch create mode 100644 patches/features/all/rt/x86-stackprot-no-random-on-rt.patch create mode 100644 patches/features/all/rt/x86-use-gen-rwsem-spinlocks-rt.patch create mode 100644 patches/features/all/securelevel/acpi-disable-acpi-table-override-if-securelevel-is-s.patch create mode 100644 patches/features/all/securelevel/acpi-disable-apei-error-injection-if-securelevel-is-.patch create mode 100644 patches/features/all/securelevel/acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch create mode 100644 patches/features/all/securelevel/acpi-limit-access-to-custom_method-if-securelevel-is.patch create mode 100644 patches/features/all/securelevel/add-bsd-style-securelevel-support.patch create mode 100644 patches/features/all/securelevel/add-option-to-automatically-set-securelevel-when-in-.patch create mode 100644 patches/features/all/securelevel/arm64-add-kernel-config-option-to-set-securelevel-wh.patch create mode 100644 patches/features/all/securelevel/arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch create mode 100644 patches/features/all/securelevel/asus-wmi-restrict-debugfs-interface-when-securelevel.patch create mode 100644 patches/features/all/securelevel/efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch create mode 100644 patches/features/all/securelevel/enable-cold-boot-attack-mitigation.patch create mode 100644 patches/features/all/securelevel/enforce-module-signatures-when-securelevel-is-greate.patch create mode 100644 patches/features/all/securelevel/hibernate-disable-when-securelevel-is-set.patch create mode 100644 patches/features/all/securelevel/kexec-disable-at-runtime-if-securelevel-has-been-set.patch create mode 100644 patches/features/all/securelevel/kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch create mode 100644 patches/features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch create mode 100644 patches/features/all/securelevel/pci-lock-down-bar-access-when-securelevel-is-enabled.patch create mode 100644 patches/features/all/securelevel/restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch create mode 100644 patches/features/all/securelevel/uswsusp-disable-when-securelevel-is-set.patch create mode 100644 patches/features/all/securelevel/x86-lock-down-io-port-access-when-securelevel-is-ena.patch create mode 100644 patches/features/all/securelevel/x86-restrict-msr-access-when-securelevel-is-set.patch create mode 100644 patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch create mode 100644 patches/features/arm/arm-dts-add-support-for-turris-omnia.patch create mode 100644 patches/features/arm/arm-dts-turris-omnia-add-support-for-ethernet-switch.patch create mode 100644 patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch create mode 100644 patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch create mode 100644 patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch create mode 100644 patches/features/x86/x86-make-x32-syscall-support-conditional.patch create mode 100644 patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch create mode 100644 patches/series create mode 100644 patches/series-orig create mode 100644 patches/series-rt create mode 100755 rules create mode 100644 rules.d/Makefile create mode 100644 rules.d/Makefile.inc create mode 100644 rules.d/scripts/Makefile create mode 100644 rules.d/scripts/basic/Makefile create mode 100644 rules.d/scripts/genksyms/Makefile create mode 100644 rules.d/scripts/kconfig/Makefile create mode 100644 rules.d/scripts/mod/Makefile create mode 100644 rules.d/scripts/mod/Makefile.real create mode 100644 rules.d/scripts/mod/elfconfig.h create mode 100755 rules.d/scripts/mod/gendef.py create mode 100644 rules.d/scripts/mod/modpost.c create mode 100644 rules.d/scripts/mod/real-lsb-32/elfconfig.h create mode 100644 rules.d/scripts/mod/real-lsb-32/types.h create mode 100644 rules.d/scripts/mod/real-lsb-64/elfconfig.h create mode 100644 rules.d/scripts/mod/real-lsb-64/types.h create mode 100644 rules.d/scripts/mod/real-msb-32/elfconfig.h create mode 100644 rules.d/scripts/mod/real-msb-32/types.h create mode 100644 rules.d/scripts/mod/real-msb-64/elfconfig.h create mode 100644 rules.d/scripts/mod/real-msb-64/types.h create mode 100644 rules.d/scripts/mod/types.h create mode 100644 rules.d/tools/Makefile create mode 100644 rules.d/tools/hv/Makefile create mode 100644 rules.d/tools/hv/check-hyperv.c create mode 100644 rules.d/tools/lib/lockdep/Makefile create mode 100644 rules.d/tools/lib/lockdep/lockdep.in create mode 100644 rules.d/tools/perf/Makefile create mode 100644 rules.d/tools/power/cpupower/Makefile create mode 100644 rules.d/tools/usb/usbip/Makefile create mode 100644 rules.defs create mode 100644 rules.gen create mode 100644 rules.real create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 source/options create mode 100644 templates/control.docs.in create mode 100644 templates/control.extra.in create mode 100644 templates/control.headers.arch.in create mode 100644 templates/control.headers.featureset.in create mode 100644 templates/control.headers.in create mode 100644 templates/control.image-dbg.in create mode 100644 templates/control.image-unsigned.in create mode 100644 templates/control.image.in create mode 100644 templates/control.libc-dev.in create mode 100644 templates/control.main.in create mode 100644 templates/control.source.in create mode 100644 templates/control.tools.in create mode 100644 templates/headers.postinst.in create mode 100644 templates/image-dbg.lintian-override.in create mode 100644 templates/image.bug/control create mode 100644 templates/image.bug/include-0version create mode 100644 templates/image.bug/include-1cmdline create mode 100644 templates/image.bug/include-1tainted create mode 100644 templates/image.bug/include-dmesg create mode 100644 templates/image.bug/include-model create mode 100644 templates/image.bug/include-modules create mode 100644 templates/image.bug/include-network create mode 100644 templates/image.bug/include-pci create mode 100644 templates/image.bug/include-pstore create mode 100644 templates/image.bug/include-usb create mode 100644 templates/image.bug/presubj create mode 100644 templates/image.bug/script create mode 100755 templates/image.postinst.in create mode 100755 templates/image.postrm.in create mode 100755 templates/image.preinst.in create mode 100755 templates/image.prerm.in create mode 100644 templates/lintian-overrides.perf.in create mode 100644 templates/tests-control.main.in create mode 100644 tests/control create mode 100644 tests/selftests create mode 100644 upstream/signing-key.pgp create mode 100644 usbip.install create mode 100644 usbip.manpages create mode 100644 watch diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000000..f24d31d9fec --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +!/patches +!*.patch +!*.diff +*.debhelper* +*.local +*.pyc +*.substvars +*-di +/*-tmp/ +/build/ +/config.defines.dump +/control +/control.md5sum +/files +/hyperv-daemons/ +/libcpupower*/ +/liblockdep*/ +/libusbip-dev/ +/linux-* +/lockdep/ +/po/ +/rules.gen +/stamps/ +/tests/control +/tmp/ +/usbip/ +/xen-linux-system-* diff --git a/README.Debian b/README.Debian new file mode 100644 index 00000000000..3f6c39b18e4 --- /dev/null +++ b/README.Debian @@ -0,0 +1,56 @@ +Linux kernel for Debian +----------------------- + +Patches +------- +Debian applies small changes to the kernel source. These are split up into +separated patches addressing individual problems. Each of the patch files +contains a description and mentions the author. The patches can be found +at https://anonscm.debian.org/cgit/kernel/linux.git/tree/debian/patches. + +Config Files +------------ +The .config files used to build the various linux-image files are dynamically +generated during the linux package build. See the source package for +details. Each linux-image-* package provides the complete .config file that +was used to generate it. This file is installed in /boot. + +Scope of security support +------------------------- +Security support is provided not only for the binary builds, but also +for the full source package, allowing for locally customized kernels. +However, kernel options that are not enabled in official Debian builds are +given a lower priority for security support. Options marked as BROKEN +or EXPERIMENTAL are of very low priority, and should not be enabled in +customized builds for a security-sensitive environment. + +Building custom kernel binary packages +-------------------------------------- +We recommend using the 'make deb-pkg' target provided by the upstream +kernel source. + +Rebuilding official binary packages +----------------------------------- +You can build specific kernel binary packages using the targets in +debian/rules.gen, which have names of the form: + binary-arch___ + +Example: + fakeroot make -f debian/rules.gen binary-arch_i386_none_686 + +Rebuilding Adaptec AIC7xxx/79xx firmware +---------------------------------------- +You can rebuild the firmware for the Adaptec AIC7xxx/79xx SCSI Adapters. To +do so you need to set AIC7XXX_BUILD_FIRMWARE/AIC79XX_BUILD_FIRMWARE config +options. Note that this requires to have the development packages for +Berkeley Database (libdb-dev) installed. + +Non-free bits removed +--------------------- +See the patches under debian/patches/debian/dfsg. + +Further information +------------------- +Debian Linux Kernel Handbook: https://kernel-handbook.alioth.debian.org + or debian-kernel-handbook package +Debian Wiki: https://wiki.debian.org/DebianKernel diff --git a/README.source b/README.source new file mode 100644 index 00000000000..b488d8b0904 --- /dev/null +++ b/README.source @@ -0,0 +1,239 @@ +Updating the upstream source +============================ + +In addition to the build-dependencies, you will need the rsync and +unifdef packages installed. + +1) It is recommended to fetch the release tag from the relevant upstream git + repository, one of: + + * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git + * https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git + * git://kernel.ubuntu.com/ubuntu/linux.git + + However, it is also possible to use upstream tarball and patch releases. + Both tags and files should be signed by the relevant maintainer, which + you *must* verify using commands such as: + + $ git tag -v v4.5 + $ xzcat linux-4.5.tar.xz | gpg --verify linux-4.5.tar.sign - + $ xzcat patch-4.5.1.xz | gpg --verify patch-4.5.1.sign - + + The upstream maintainers' key fingerprints are: + + pub 2048R/00411886 2011-09-20 + Key fingerprint = ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 + uid Linus Torvalds + sub 2048R/012F54CA 2011-09-20 + + pub 4096R/6092693E 2011-09-23 + Key fingerprint = 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E + uid Greg Kroah-Hartman (Linux kernel stable release signing key) + sub 4096R/76D54749 2011-09-23 + + pub 4096R/FDCE24FC 2011-12-10 + Key fingerprint = D4E1 E317 4470 9144 B0F8 101A DB74 AEB8 FDCE 24FC + uid Luis Henriques + uid Luis Henriques + sub 4096R/EFBC394A 2011-12-10 + +2) Run: ./debian/bin/genorig.py + or: ./debian/bin/genorig.py [patch] + + This will produce ../orig/linux_.orig.tar.xz + (e.g. linux_3.5~rc1.orig.tar.xz). + + It involves applying several patches and file deletions for DFSG + compliance, as listed in debian/patches/series-orig. Occasionally + you will need to refresh these. + +3) Run: make -f debian/rules orig + + This will apply the main quilt series to the upstream source, which + will usually fail due to conflicts with upstream changes. You need + to resolve those by dropping or refreshing patches. + +Recording updates in the changelog +---------------------------------- + +Upstream commits that we already cherry-picked and included in a +previous package upload should not be mentioned, since they don't make +any difference to the package. Any other commits that fix a Debian +bug report and/or a security issue with a CVE ID should always be +listed, along with the (Closes: #nnnnnn) and/or (CVE-yyyy-nnnn) +reference. + +Aside from those general rules: + +* For an upstream release candidate, don't attempt to list the changes + +* For a stable release by Linus, refer to the summary at + kernelnewbies.org, e.g. http://kernelnewbies.org/Linux_4.5 + +* For a stable update, refer to the changelog on kernel.org, e.g. + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.1, and + list all changes that are relevant to our package and that fix bugs + that we would consider 'important' or higher severity + + - The script debian/bin/stable-update updates the changelog + version and inserts the list of changes. It doesn't attempt to + filter out irrelevant or unimportant changes. + + - The script debian/bin/ckt-stable-update.sh does the same for + stable updates by the Canonical Kernel Team. + + - If you have time, please delete irrelevant changes such as: + + Fixes for architectures not supported by the package + + Fixes for drivers that aren't enabled in any of our configurations + + Build fixes for configurations that we don't use + + Fixes for lockdep false positives + +If you have time, please add bracketted prefixes to the upstream +change list as described below under "Changelog conventions". + +Applying patches to the Debian kernel tree +========================================== + +The Debian kernel packaging uses the quilt patch system, but with +multiple series to allow for featuresets. + +Patches are stored below debian/patches, loosely sorted in bugfix/, +features/ and debian/. Patches are in the standard kernel patch +format (unified diff to be applied with patch -p1) and generally have +DEP-3 headers. + +The series file 'series' is used for all configurations and a series +file 'series-' is used for each optional featureset. + +If you want to generate a source tree with all patches applied, run +make -f debian/rules source + +The resulting source can be found below debian/build. + +Changelog conventions +===================== + +If a change only affects some architectures, flavours or featuresets, +this should be noted with a bracketted prefix on the changelog line: + +* [] Change to featureset +* [] Change that affects Debian architecture +* [,...] Change that affects Debian architectures + , , ... +* [/] Change that affects kernel flavour + on Debian architecture +* [/{,...}] Change that affects kernel + flavours , , ... on Debian architecture + +You can use wildcards to cover multiple values, e.g. 'arm*' for armel, +armhf and arm64 architectures. Also 'x86' is used to cover the Debian +architectures amd64, i386 and x32. + +Kernel config files +=================== + +Each kernel configuration file is constructed dynamically from a +number of files under debian/config. They are read in the following +order, such that files later on the list can override settings from +earlier files. Most of the files are optional and the filenames can +generally be overridden by explicit lists (possibly empty) specified +in the 'defines' files. + +1. Common: + - Default filename: config + - Filename list: [image]configs in defines +2. Per kernel architecture: + - Filename: kernelarch-/config (optional) +3. Per architecture: + - Default filename: /config + - Filename list: [image]configs in /defines +4. Per architecture and flavour: + - Default filename: /config. (optional) + - Filename list: [_image]configs in /defines +5. Per featureset: + - Default filename: featureset-/config (optional) + - Filename list: [image]configs in featureset-/defines +6. Per architecture and featureset: + - Default filename: //config (optional) + - Filename list: [image]configs in //defines +7. Per architecture, featureset, and flavour: + - Default filename: //config. (optional) + - Filename list: [_image]configs in //defines + +You can check the final list of configuration files by reading +debian/rules.gen. Each binary-arch____real +rule passes the list to debian/rules.real as the KCONFIG variable. + +Control file +============ +The master control file debian/control must be generated before +the package is uploaded. debian/rules contains the debian/control +target, which generates the control file by invoking the +debian/bin/gencontrol.py script, which combines the templates from +the templates directory and architecture-specific defines file to +produce the debian/control file. Note that this target is intentionally +made to fail with a non-zero exit code to make sure that it is never +run during an automatic build. The following variables are substituted +into the templates: + +@version@ Upstream kernel version, for example 2.6.11. +@arch@ The Debian arch name, such as powerpc or i386. +@flavour@ The build flavour, such as 686 or k7-smp. +@class@ The CPU/architecture class; displayed in synopsis. It should + be fairly short, as the synopsis is supposed to be <80 chars. + It should be in the form "foo class", and will show up in the + description as "foo class machines". +@longclass@ The CPU/architecture class; displayed in the extended + description. The same rules apply as in @class@. If + this is unset, it will default to @class@. +@desc@ (Potentially) multi-line verbiage that's appended to + -image descriptions. +@abiname@ Current abiname, a single digit. + +Normally, the arch-specific contents should be controlled by +adjusting the corresponding defines file. + +TODO: +- Patches applied to the upstream source +- How to define a flavour +- More detail on generation of debian/control and configs + +Running tests +============= + +linux supports autopkgtest and should be able to run most of the +kernel's self-tests on any architecture where kexec is supported, +but it has higher resource requirements than most packages: + +- A VM with plenty of disk space (10GB is enough), RAM (1GB is + probably enough) and at least 2 CPUs +- The temporary directory for adt-virt-qemu (-o option) will need + several GB of space, so a tmpfs may not be suitable + +Note that if you tell adt-run to use an 'unbuilt tree' (i.e. an +unpacked source package) it does not exclude VCS directories such as +.git. Either use a packed source package or copy the working tree +elsewhere excluding .git. + +Example invocation: + + adt-run -B ../linux-image-4.2.0-rc6-amd64_4.2~rc6-1~exp2_amd64.deb \ + ../linux_4.2~rc6-1~exp2.dsc \ + --timeout-test=1200 \ + --- adt-virt-qemu /var/cache/autopkgtest/adt-sid.img -o /var/tmp -c 2 + +Build profiles +============== + +Several build profiles are understood and supported: + +- stage1: Needed when bootstrapping an architecture. A stage1 build + produces only the linux-libc-dev package and has no host + build-dependencies. +- nodoc: Exclude most documentation +- pkg.linux.notools: Exclude userland tool packages (linux-kbuild-, + linux-perf-, etc.) +- cross: Needed when cross-building. Currently this must be used together + with nopython as the build-dependencies will be unsatisfiable otherwise. +- nopython: Disable Python bindings. This currently disables building the + linux-perf- package, as the perf program embeds Python. diff --git a/bin/abiupdate.py b/bin/abiupdate.py new file mode 100755 index 00000000000..d35e50ba8f6 --- /dev/null +++ b/bin/abiupdate.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 + +import sys +sys.path.append(sys.path[0] + "/../lib/python") + +import optparse +import os +import shutil +import tempfile + +from urllib.request import urlopen +from urllib.error import HTTPError + +from debian_linux.abi import Symbols +from debian_linux.config import * +from debian_linux.debian import * + +default_url_base = "http://deb.debian.org/debian/" +default_url_base_incoming = "http://incoming.debian.org/debian-buildd/" +default_url_base_ports = "http://ftp.ports.debian.org/debian-ports/" +default_url_base_ports_incoming = "http://incoming.ports.debian.org/" + + +class url_debian_flat(object): + def __init__(self, base): + self.base = base + + def __call__(self, source, filename, arch): + return self.base + filename + + +class url_debian_pool(object): + def __init__(self, base): + self.base = base + + def __call__(self, source, filename, arch): + return self.base + "pool/main/" + source[0] + "/" + source + "/" + filename + + +class url_debian_ports_pool(url_debian_pool): + def __call__(self, source, filename, arch): + if arch == 'all': + return url_debian_pool.__call__(self, source, filename, arch) + return self.base + "pool-" + arch + "/main/" + source[0] + "/" + source + "/" + filename + + +class Main(object): + dir = None + + def __init__(self, url, url_config=None, arch=None, featureset=None, flavour=None): + self.log = sys.stdout.write + + self.url = self.url_config = url + if url_config is not None: + self.url_config = url_config + self.override_arch = arch + self.override_featureset = featureset + self.override_flavour = flavour + + changelog = Changelog(version=VersionLinux) + while changelog[0].distribution == 'UNRELEASED': + changelog.pop(0) + changelog = changelog[0] + + self.source = changelog.source + self.version = changelog.version.linux_version + self.version_source = changelog.version.complete + + self.config = ConfigCoreDump(fp=open("debian/config.defines.dump", "rb")) + + self.version_abi = self.config['version', ]['abiname'] + + def __call__(self): + self.dir = tempfile.mkdtemp(prefix='abiupdate') + try: + self.log("Retrieve config\n") + + try: + config = self.get_config() + except HTTPError as e: + self.log("Failed to retrieve %s: %s\n" % (e.filename, e)) + sys.exit(1) + + if self.override_arch: + arches = [self.override_arch] + else: + arches = config[('base',)]['arches'] + for arch in arches: + self.update_arch(config, arch) + finally: + shutil.rmtree(self.dir) + + def extract_package(self, filename, base): + base_out = self.dir + "/" + base + os.mkdir(base_out) + os.system("dpkg-deb --extract %s %s" % (filename, base_out)) + return base_out + + def get_abi(self, arch, prefix): + try: + version_abi = (self.config['version',]['abiname_base'] + '-' + + self.config['abi', arch]['abiname']) + except KeyError: + version_abi = self.version_abi + filename = "linux-headers-%s-%s_%s_%s.deb" % (version_abi, prefix, self.version_source, arch) + f = self.retrieve_package(self.url, filename, arch) + d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch)) + f1 = d + "/usr/src/linux-headers-%s-%s/Module.symvers" % (version_abi, prefix) + s = Symbols(open(f1)) + shutil.rmtree(d) + return version_abi, s + + def get_config(self): + # XXX We used to fetch the previous version of linux-support here, + # but until we authenticate downloads we should not do that as + # pickle.load allows running arbitrary code. + return self.config + + def retrieve_package(self, url, filename, arch): + u = url(self.source, filename, arch) + filename_out = self.dir + "/" + filename + + f_in = urlopen(u) + f_out = open(filename_out, 'wb') + while 1: + r = f_in.read() + if not r: + break + f_out.write(r) + return filename_out + + def save_abi(self, version_abi, symbols, arch, featureset, flavour): + dir = "debian/abi/%s" % version_abi + if not os.path.exists(dir): + os.makedirs(dir) + out = "%s/%s_%s_%s" % (dir, arch, featureset, flavour) + symbols.write(open(out, 'w')) + + def update_arch(self, config, arch): + if self.override_featureset: + featuresets = [self.override_featureset] + else: + featuresets = config[('base', arch)]['featuresets'] + for featureset in featuresets: + self.update_featureset(config, arch, featureset) + + def update_featureset(self, config, arch, featureset): + config_base = config.merge('base', arch, featureset) + + if not config_base.get('enabled', True): + return + + if self.override_flavour: + flavours = [self.override_flavour] + else: + flavours = config_base['flavours'] + for flavour in flavours: + self.update_flavour(config, arch, featureset, flavour) + + def update_flavour(self, config, arch, featureset, flavour): + config_base = config.merge('base', arch, featureset, flavour) + + self.log("Updating ABI for arch %s, featureset %s, flavour %s: " % (arch, featureset, flavour)) + try: + if featureset == 'none': + localversion = flavour + else: + localversion = featureset + '-' + flavour + + version_abi, abi = self.get_abi(arch, localversion) + self.save_abi(version_abi, abi, arch, featureset, flavour) + self.log("Ok.\n") + except HTTPError as e: + self.log("Failed to retrieve %s: %s\n" % (e.filename, e)) + except Exception: + self.log("FAILED!\n") + import traceback + traceback.print_exc(None, sys.stdout) + +if __name__ == '__main__': + options = optparse.OptionParser() + options.add_option("-i", "--incoming", action="store_true", dest="incoming") + options.add_option("--incoming-config", action="store_true", dest="incoming_config") + options.add_option("--ports", action="store_true", dest="ports") + options.add_option("-u", "--url-base", dest="url_base", default=default_url_base) + options.add_option("--url-base-incoming", dest="url_base_incoming", default=default_url_base_incoming) + options.add_option("--url-base-ports", dest="url_base_ports", default=default_url_base_ports) + options.add_option("--url-base-ports-incoming", dest="url_base_ports_incoming", default=default_url_base_ports_incoming) + + opts, args = options.parse_args() + + kw = {} + if len(args) >= 1: + kw['arch'] = args[0] + if len(args) >= 2: + kw['featureset'] = args[1] + if len(args) >= 3: + kw['flavour'] = args[2] + + url_base = url_debian_pool(opts.url_base) + url_base_incoming = url_debian_pool(opts.url_base_incoming) + url_base_ports = url_debian_ports_pool(opts.url_base_ports) + url_base_ports_incoming = url_debian_flat(opts.url_base_ports_incoming) + if opts.incoming_config: + url = url_config = url_base_incoming + else: + url_config = url_base + if opts.ports: + url = url_base_ports_incoming if opts.incoming else url_base_ports + else: + url = url_base_incoming if opts.incoming else url_base + + Main(url, url_config, **kw)() diff --git a/bin/buildcheck.py b/bin/buildcheck.py new file mode 100755 index 00000000000..5cd0d8ab4f4 --- /dev/null +++ b/bin/buildcheck.py @@ -0,0 +1,258 @@ +#!/usr/bin/python3 + +import sys +sys.path.append('debian/lib/python') + +import fnmatch +import glob +import stat + +from debian_linux.abi import Symbols +from debian_linux.config import ConfigCoreDump +from debian_linux.debian import * + + +class CheckAbi(object): + class SymbolInfo(object): + def __init__(self, symbol, symbol_ref=None): + self.symbol = symbol + self.symbol_ref = symbol_ref or symbol + + @property + def module(self): + return self.symbol.module + + @property + def name(self): + return self.symbol.name + + def write(self, out, ignored): + info = [] + if ignored: + info.append("ignored") + for name in ('module', 'version', 'export'): + data = getattr(self.symbol, name) + data_ref = getattr(self.symbol_ref, name) + if data != data_ref: + info.append("%s: %s -> %s" % (name, data_ref, data)) + else: + info.append("%s: %s" % (name, data)) + out.write("%-48s %s\n" % (self.symbol.name, ", ".join(info))) + + def __init__(self, config, dir, arch, featureset, flavour): + self.config = config + self.arch, self.featureset, self.flavour = arch, featureset, flavour + + self.filename_new = "%s/Module.symvers" % dir + + try: + version_abi = (self.config['version',]['abiname_base'] + '-' + + self.config['abi', arch]['abiname']) + except KeyError: + version_abi = self.config['version',]['abiname'] + self.filename_ref = "debian/abi/%s/%s_%s_%s" % (version_abi, arch, featureset, flavour) + + def __call__(self, out): + ret = 0 + + new = Symbols(open(self.filename_new)) + unversioned = [name for name in new if new[name].version == '0x00000000'] + if unversioned: + out.write("ABI is not completely versioned! Refusing to continue.\n") + out.write("\nUnversioned symbols:\n") + for name in sorted(unversioned): + self.SymbolInfo(new[name]).write(out, False) + ret = 1 + + try: + ref = Symbols(open(self.filename_ref)) + except IOError: + out.write("Can't read ABI reference. ABI not checked!\n") + return ret + + symbols, add, change, remove = self._cmp(ref, new) + + ignore = self._ignore(symbols) + + add_effective = add - ignore + change_effective = change - ignore + remove_effective = remove - ignore + + if change_effective or remove_effective: + out.write("ABI has changed! Refusing to continue.\n") + ret = 1 + elif change or remove: + out.write("ABI has changed but all changes have been ignored. Continuing.\n") + elif add_effective: + out.write("New symbols have been added. Continuing.\n") + elif add: + out.write("New symbols have been added but have been ignored. Continuing.\n") + else: + out.write("No ABI changes.\n") + + if add: + out.write("\nAdded symbols:\n") + for name in sorted(add): + symbols[name].write(out, name in ignore) + + if change: + out.write("\nChanged symbols:\n") + for name in sorted(change): + symbols[name].write(out, name in ignore) + + if remove: + out.write("\nRemoved symbols:\n") + for name in sorted(remove): + symbols[name].write(out, name in ignore) + + return ret + + def _cmp(self, ref, new): + ref_names = set(ref.keys()) + new_names = set(new.keys()) + + add = set() + change = set() + remove = set() + + symbols = {} + + for name in new_names - ref_names: + add.add(name) + symbols[name] = self.SymbolInfo(new[name]) + + for name in ref_names.intersection(new_names): + s_ref = ref[name] + s_new = new[name] + + if s_ref != s_new: + change.add(name) + symbols[name] = self.SymbolInfo(s_new, s_ref) + + for name in ref_names - new_names: + remove.add(name) + symbols[name] = self.SymbolInfo(ref[name]) + + return symbols, add, change, remove + + def _ignore_pattern(self, pattern): + ret = [] + for i in re.split(r'(\*\*?)', pattern): + if i == '*': + ret.append(r'[^!]+') + elif i == '**': + ret.append(r'.+') + elif i: + ret.append(re.escape(i)) + return re.compile('^' + ''.join(ret) + '$') + + def _ignore(self, symbols): + # TODO: let config merge this lists + configs = [] + configs.append(self.config.get(('abi', self.arch, self.featureset, self.flavour), {})) + configs.append(self.config.get(('abi', self.arch, None, self.flavour), {})) + configs.append(self.config.get(('abi', self.arch, self.featureset), {})) + configs.append(self.config.get(('abi', self.arch), {})) + configs.append(self.config.get(('abi', None, self.featureset), {})) + configs.append(self.config.get(('abi',), {})) + + ignores = set() + for config in configs: + ignores.update(config.get('ignore-changes', [])) + + filtered = set() + for ignore in ignores: + type = 'name' + if ':' in ignore: + type, ignore = ignore.split(':') + if type in ('name', 'module'): + p = self._ignore_pattern(ignore) + for symbol in symbols.values(): + if p.match(getattr(symbol, type)): + filtered.add(symbol.name) + else: + raise NotImplementedError + + return filtered + + +class CheckImage(object): + def __init__(self, config, dir, arch, featureset, flavour): + self.dir = dir + self.arch, self.featureset, self.flavour = arch, featureset, flavour + + self.changelog = Changelog(version=VersionLinux)[0] + + self.config_entry_base = config.merge('base', arch, featureset, flavour) + self.config_entry_build = config.merge('build', arch, featureset, flavour) + self.config_entry_image = config.merge('image', arch, featureset, flavour) + + def __call__(self, out): + image = self.config_entry_build.get('image-file') + + if not image: + # TODO: Bail out + return 0 + + image = os.path.join(self.dir, image) + + fail = 0 + + fail |= self.check_size(out, image) + + return fail + + def check_size(self, out, image): + value = self.config_entry_image.get('check-size') + + if not value: + return 0 + + dtb_size = 0 + if self.config_entry_image.get('check-size-with-dtb'): + for dtb in glob.glob( + os.path.join(self.dir, 'arch', + self.config_entry_base['kernel-arch'], + 'boot/dts/*.dtb')): + dtb_size = max(dtb_size, os.stat(dtb).st_size) + + size = os.stat(image).st_size + dtb_size + + if size > value: + out.write('Image too large (%d > %d)! Refusing to continue.\n' % (size, value)) + return 1 + + # 1% overhead is desirable in order to cope with growth + # through the lifetime of a stable release. Warn if this is + # not the case. + usage = (float(size)/value) * 100.0 + out.write('Image size %d/%d, using %.2f%%. ' % (size, value, usage)) + if size > value: + out.write('Too large. Refusing to continue.\n') + return 1 + elif usage >= 99.0: + out.write('Under 1%% space in %s. ' % self.changelog.distribution) + else: + out.write('Image fits. ') + out.write('Continuing.\n') + + return 0 + + +class Main(object): + def __init__(self, dir, arch, featureset, flavour): + self.args = dir, arch, featureset, flavour + + self.config = ConfigCoreDump(open("debian/config.defines.dump", "rb")) + + def __call__(self): + fail = 0 + + for c in CheckAbi, CheckImage: + fail |= c(self.config, *self.args)(sys.stdout) + + return fail + + +if __name__ == '__main__': + sys.exit(Main(*sys.argv[1:])()) diff --git a/bin/check-patches.sh b/bin/check-patches.sh new file mode 100755 index 00000000000..5885412f813 --- /dev/null +++ b/bin/check-patches.sh @@ -0,0 +1,26 @@ +#!/bin/sh -e + +TMPDIR=$(mktemp -d) +trap "rm -rf $TMPDIR" EXIT +sed '/^#/d; /^[[:space:]]*$/d; /^X /d; s/^+ //; s,^,debian/patches/,' debian/patches/series* | sort -u > $TMPDIR/used +find debian/patches ! -path '*/series*' -type f -name "*.diff" -o -name "*.patch" -printf "%p\n" | sort > $TMPDIR/avail +echo "Used patches" +echo "==============" +cat $TMPDIR/used +echo +echo "Unused patches" +echo "==============" +fgrep -v -f $TMPDIR/used $TMPDIR/avail || test $? = 1 +echo +echo "Patches without required headers" +echo "================================" +xargs egrep -l '^(Subject|Description):' < $TMPDIR/used | xargs egrep -l '^(From|Author|Origin):' > $TMPDIR/goodheaders || test $? = 1 +fgrep -v -f $TMPDIR/goodheaders $TMPDIR/used || test $? = 1 +echo +echo "Patches without Origin or Forwarded header" +echo "==========================================" +xargs egrep -L '^(Origin:|Forwarded: (no\b|not-needed|http))' < $TMPDIR/used || test $? = 1 +echo +echo "Patches to be forwarded" +echo "=======================" +xargs egrep -l '^Forwarded: no\b' < $TMPDIR/used || test $? = 1 diff --git a/bin/gencontrol.py b/bin/gencontrol.py new file mode 100755 index 00000000000..1eeda458788 --- /dev/null +++ b/bin/gencontrol.py @@ -0,0 +1,577 @@ +#!/usr/bin/env python3 + +import sys +sys.path.append("debian/lib/python") + +import codecs +import errno +import glob +import io +import os +import os.path +import subprocess + +from debian_linux import config +from debian_linux.debian import * +from debian_linux.gencontrol import Gencontrol as Base, merge_packages +from debian_linux.utils import Templates, read_control + +class Gencontrol(Base): + config_schema = { + 'abi': { + 'ignore-changes': config.SchemaItemList(), + }, + 'build': { + 'debug-info': config.SchemaItemBoolean(), + 'signed-modules': config.SchemaItemBoolean(), + 'vdso': config.SchemaItemBoolean(), + }, + 'description': { + 'parts': config.SchemaItemList(), + }, + 'image': { + 'bootloaders': config.SchemaItemList(), + 'configs': config.SchemaItemList(), + 'initramfs-generators': config.SchemaItemList(), + 'check-size': config.SchemaItemInteger(), + 'check-size-with-dtb': config.SchemaItemBoolean(), + }, + 'relations': { + }, + 'packages': { + 'docs': config.SchemaItemBoolean(), + 'headers-all': config.SchemaItemBoolean(), + 'installer': config.SchemaItemBoolean(), + 'libc-dev': config.SchemaItemBoolean(), + 'tools': config.SchemaItemBoolean(), + } + } + + def __init__(self, config_dirs=["debian/config"], template_dirs=["debian/templates"]): + super(Gencontrol, self).__init__( + config.ConfigCoreHierarchy(self.config_schema, config_dirs), + Templates(template_dirs), + VersionLinux) + self.process_changelog() + self.config_dirs = config_dirs + + def _setup_makeflags(self, names, makeflags, data): + for src, dst, optional in names: + if src in data or not optional: + makeflags[dst] = data[src] + + def _substitute_file(self, template, vars, target, append=False): + with codecs.open(target, 'a' if append else 'w', 'utf-8') as f: + f.write(self.substitute(self.templates[template], vars)) + + def do_main_setup(self, vars, makeflags, extra): + super(Gencontrol, self).do_main_setup(vars, makeflags, extra) + makeflags.update({ + 'VERSION': self.version.linux_version, + 'UPSTREAMVERSION': self.version.linux_upstream, + 'ABINAME': self.abiname_version + self.abiname_part, + 'SOURCEVERSION': self.version.complete, + }) + + # Prepare to generate debian/tests/control + self.tests_control = None + + def do_main_makefile(self, makefile, makeflags, extra): + fs_enabled = [featureset + for featureset in self.config['base', ]['featuresets'] + if self.config.merge('base', None, featureset).get('enabled', True)] + for featureset in fs_enabled: + makeflags_featureset = makeflags.copy() + makeflags_featureset['FEATURESET'] = featureset + cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s" + % makeflags_featureset] + makefile.add('source_%s_real' % featureset, cmds=cmds_source) + makefile.add('source_%s' % featureset, + ['source_%s_real' % featureset]) + makefile.add('source', ['source_%s' % featureset]) + + triplet_enabled = [] + for arch in iter(self.config['base', ]['arches']): + for featureset in self.config['base', arch].get('featuresets', ()): + if self.config.merge('base', None, featureset).get('enabled', True): + for flavour in self.config['base', arch, featureset]['flavours']: + triplet_enabled.append('%s_%s_%s' % + (arch, featureset, flavour)) + + makeflags = makeflags.copy() + makeflags['ALL_FEATURESETS'] = ' '.join(fs_enabled) + makeflags['ALL_TRIPLETS'] = ' '.join(triplet_enabled) + if not self.config.merge('packages').get('docs', True): + makeflags['DO_DOCS'] = False + if not self.config.merge('packages').get('tools', True): + makeflags['DO_TOOLS'] = False + super(Gencontrol, self).do_main_makefile(makefile, makeflags, extra) + + # linux-source-$UPSTREAMVERSION will contain all kconfig files + makefile.add('binary-indep', deps=['setup']) + + def do_main_packages(self, packages, vars, makeflags, extra): + packages.extend(self.process_packages(self.templates["control.main"], self.vars)) + if self.config.merge('packages').get('docs', True): + packages.extend(self.process_packages(self.templates["control.docs"], self.vars)) + if self.config.merge('packages').get('tools', True): + packages.extend(self.process_packages(self.templates["control.tools"], self.vars)) + + self._substitute_file('lintian-overrides.perf', self.vars, + 'debian/linux-perf-%s.lintian-overrides' % + self.vars['version']) + + def do_indep_featureset_setup(self, vars, makeflags, featureset, extra): + makeflags['LOCALVERSION'] = vars['localversion'] + kernel_arches = set() + for arch in iter(self.config['base', ]['arches']): + if self.config.get_merge('base', arch, featureset, None, 'flavours'): + kernel_arches.add(self.config['base', arch]['kernel-arch']) + makeflags['ALL_KERNEL_ARCHES'] = ' '.join(sorted(list(kernel_arches))) + + vars['featureset_desc'] = '' + if featureset != 'none': + desc = self.config[('description', None, featureset)] + desc_parts = desc['parts'] + vars['featureset_desc'] = (' with the %s featureset' % + desc['part-short-%s' % desc_parts[0]]) + + def do_indep_featureset_packages(self, packages, makefile, featureset, + vars, makeflags, extra): + headers_featureset = self.templates["control.headers.featureset"] + packages.extend(self.process_packages(headers_featureset, vars)) + + cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-indep-featureset %s" % + makeflags] + makefile.add('binary-indep_%s_real' % featureset, cmds=cmds_binary_arch) + + arch_makeflags = ( + ('kernel-arch', 'KERNEL_ARCH', False), + ) + + def do_arch_setup(self, vars, makeflags, arch, extra): + config_base = self.config.merge('base', arch) + + self._setup_makeflags(self.arch_makeflags, makeflags, config_base) + + try: + gnu_type_bytes = subprocess.check_output(['dpkg-architecture', '-f', + '-a', arch, + '-q', 'DEB_HOST_GNU_TYPE'], + stderr=subprocess.DEVNULL) + except subprocess.CalledProcessError: + # This sometimes happens for the newest ports :-/ + print('W: Unable to get GNU type for %s' % arch, file=sys.stderr) + else: + vars['gnu-type-package'] = gnu_type_bytes.decode('utf-8').strip().replace('_', '-') + + def do_arch_packages(self, packages, makefile, arch, vars, makeflags, extra): + if self.version.linux_modifier is None: + try: + abiname_part = '-%s' % self.config['abi', arch]['abiname'] + except KeyError: + abiname_part = self.abiname_part + makeflags['ABINAME'] = vars['abiname'] = \ + self.abiname_version + abiname_part + + # Some userland architectures require kernels from another + # (Debian) architecture, e.g. x32/amd64. + # And some derivatives don't need the headers-all packages + # for other reasons. + if (self.config['base', arch].get('featuresets') and + self.config.merge('packages').get('headers-all', True)): + headers_arch = self.templates["control.headers.arch"] + packages_headers_arch = self.process_packages(headers_arch, vars) + packages_headers_arch[-1]['Depends'].extend(PackageRelation()) + extra['headers_arch_depends'] = packages_headers_arch[-1]['Depends'] + else: + packages_headers_arch = [] + makeflags['DO_HEADERS_ALL'] = False + + if self.config.merge('packages').get('libc-dev', True): + libc_dev = self.templates["control.libc-dev"] + packages_headers_arch[0:0] = self.process_packages(libc_dev, {}) + else: + makeflags['DO_LIBC'] = False + + if not self.config.merge('packages').get('tools', True): + makeflags['DO_TOOLS'] = False + + + merge_packages(packages, packages_headers_arch, arch) + + cmds_build_arch = ["$(MAKE) -f debian/rules.real build-arch-arch %s" % makeflags] + makefile.add('build-arch_%s_real' % arch, cmds=cmds_build_arch) + + cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-arch %s" % makeflags] + makefile.add('binary-arch_%s_real' % arch, cmds=cmds_binary_arch) + + # For stage1 build profile + makefile.add('binary-libc-dev_%s' % arch, + ['source_none_real'], + ["$(MAKE) -f debian/rules.real install-libc-dev_%s %s" % + (arch, makeflags)]) + + if os.getenv('DEBIAN_KERNEL_DISABLE_INSTALLER'): + if self.changelog[0].distribution == 'UNRELEASED': + import warnings + warnings.warn('Disable installer modules on request (DEBIAN_KERNEL_DISABLE_INSTALLER set)') + else: + raise RuntimeError('Unable to disable installer modules in release build (DEBIAN_KERNEL_DISABLE_INSTALLER set)') + elif self.config.merge('packages').get('installer', True): + # Add udebs using kernel-wedge + installer_def_dir = 'debian/installer' + installer_arch_dir = os.path.join(installer_def_dir, arch) + if os.path.isdir(installer_arch_dir): + # If we're going to build signed udebs later, don't actually + # generate udebs. Just test that we *can* build, so we find + # configuration errors before building linux-signed. + test_build = self.config.merge('build', arch).get('signed-modules', False) + + kw_env = os.environ.copy() + kw_env['KW_DEFCONFIG_DIR'] = installer_def_dir + kw_env['KW_CONFIG_DIR'] = installer_arch_dir + kw_proc = subprocess.Popen( + ['kernel-wedge', 'gen-control', vars['abiname']], + stdout=subprocess.PIPE, + env=kw_env) + if not isinstance(kw_proc.stdout, io.IOBase): + udeb_packages = read_control(io.open(kw_proc.stdout.fileno(), encoding='utf-8', closefd=False)) + else: + udeb_packages = read_control(io.TextIOWrapper(kw_proc.stdout, 'utf-8')) + kw_proc.wait() + if kw_proc.returncode != 0: + raise RuntimeError('kernel-wedge exited with code %d' % + kw_proc.returncode) + + # kernel-wedge currently chokes on Build-Profiles so add it now + for package in udeb_packages: + package['Build-Profiles'] = '' + + if not test_build: + merge_packages(packages, udeb_packages, arch) + + # These packages must be built after the per-flavour/ + # per-featureset packages. Also, this won't work + # correctly with an empty package list. + if udeb_packages: + makefile.add( + 'binary-arch_%s' % arch, + cmds=["$(MAKE) -f debian/rules.real install-udeb_%s %s " + "PACKAGE_NAMES='%s' UDEB_UNSIGNED_TEST_BUILD=%s" % + (arch, makeflags, + ' '.join(p['Package'] for p in udeb_packages), + test_build)]) + + def do_featureset_setup(self, vars, makeflags, arch, featureset, extra): + config_base = self.config.merge('base', arch, featureset) + makeflags['LOCALVERSION_HEADERS'] = vars['localversion_headers'] = vars['localversion'] + + flavour_makeflags_base = ( + ('compiler', 'COMPILER', False), + ('kernel-arch', 'KERNEL_ARCH', False), + ('cflags', 'CFLAGS_KERNEL', True), + ('override-host-type', 'OVERRIDE_HOST_TYPE', True), + ) + + flavour_makeflags_build = ( + ('image-file', 'IMAGE_FILE', True), + ) + + flavour_makeflags_image = ( + ('install-stem', 'IMAGE_INSTALL_STEM', True), + ) + + flavour_makeflags_other = ( + ('localversion', 'LOCALVERSION', False), + ('localversion-image', 'LOCALVERSION_IMAGE', True), + ) + + def do_flavour_setup(self, vars, makeflags, arch, featureset, flavour, extra): + config_base = self.config.merge('base', arch, featureset, flavour) + config_build = self.config.merge('build', arch, featureset, flavour) + config_description = self.config.merge('description', arch, featureset, flavour) + config_image = self.config.merge('image', arch, featureset, flavour) + + vars['class'] = config_description['hardware'] + vars['longclass'] = config_description.get('hardware-long') or vars['class'] + + vars['localversion-image'] = vars['localversion'] + override_localversion = config_image.get('override-localversion', None) + if override_localversion is not None: + vars['localversion-image'] = vars['localversion_headers'] + '-' + override_localversion + vars['image-stem'] = config_image.get('install-stem') + + self._setup_makeflags(self.flavour_makeflags_base, makeflags, config_base) + self._setup_makeflags(self.flavour_makeflags_build, makeflags, config_build) + self._setup_makeflags(self.flavour_makeflags_image, makeflags, config_image) + self._setup_makeflags(self.flavour_makeflags_other, makeflags, vars) + + def do_flavour_packages(self, packages, makefile, arch, featureset, flavour, vars, makeflags, extra): + headers = self.templates["control.headers"] + + config_entry_base = self.config.merge('base', arch, featureset, flavour) + config_entry_build = self.config.merge('build', arch, featureset, flavour) + config_entry_description = self.config.merge('description', arch, featureset, flavour) + config_entry_image = self.config.merge('image', arch, featureset, flavour) + config_entry_relations = self.config.merge('relations', arch, featureset, flavour) + + compiler = config_entry_base.get('compiler', 'gcc') + + # Work out dependency from linux-headers to compiler. Drop + # dependencies for cross-builds. Strip any remaining + # restrictions, as they don't apply to binary Depends. + relations_compiler_headers = PackageRelation( + self.substitute(config_entry_relations.get('headers%' + compiler) or + config_entry_relations.get(compiler), vars)) + relations_compiler_headers = PackageRelation( + PackageRelationGroup(entry for entry in group + if 'cross' not in entry.restrictions) + for group in relations_compiler_headers) + for group in relations_compiler_headers: + for entry in group: + entry.restrictions = [] + + relations_compiler_build_dep = PackageRelation( + self.substitute(config_entry_relations[compiler], vars)) + for group in relations_compiler_build_dep: + for item in group: + item.arches = [arch] + packages['source']['Build-Depends'].extend(relations_compiler_build_dep) + + image_fields = {'Description': PackageDescription()} + for field in 'Depends', 'Provides', 'Suggests', 'Recommends', 'Conflicts', 'Breaks': + image_fields[field] = PackageRelation(config_entry_image.get(field.lower(), None), override_arches=(arch,)) + + generators = config_entry_image['initramfs-generators'] + l = PackageRelationGroup() + for i in generators: + i = config_entry_relations.get(i, i) + l.append(i) + a = PackageRelationEntry(i) + if a.operator is not None: + a.operator = -a.operator + image_fields['Breaks'].append(PackageRelationGroup([a])) + for item in l: + item.arches = [arch] + image_fields['Depends'].append(l) + + bootloaders = config_entry_image.get('bootloaders') + if bootloaders: + l = PackageRelationGroup() + for i in bootloaders: + i = config_entry_relations.get(i, i) + l.append(i) + a = PackageRelationEntry(i) + if a.operator is not None: + a.operator = -a.operator + image_fields['Breaks'].append(PackageRelationGroup([a])) + for item in l: + item.arches = [arch] + image_fields['Suggests'].append(l) + + desc_parts = self.config.get_merge('description', arch, featureset, flavour, 'parts') + if desc_parts: + # XXX: Workaround, we need to support multiple entries of the same name + parts = list(set(desc_parts)) + parts.sort() + desc = image_fields['Description'] + for part in parts: + desc.append(config_entry_description['part-long-' + part]) + desc.append_short(config_entry_description.get('part-short-' + part, '')) + + packages_dummy = [] + packages_own = [] + + build_signed = config_entry_build.get('signed-modules') + + image = self.templates[build_signed and "control.image-unsigned" + or "control.image"] + + vars.setdefault('desc', None) + + image_main = self.process_real_image(image[0], image_fields, vars) + packages_own.append(image_main) + makeflags['IMAGE_PACKAGE_NAME'] = image_main['Package'] + packages_own.extend(self.process_packages(image[1:], vars)) + + package_headers = self.process_package(headers[0], vars) + package_headers['Depends'].extend(relations_compiler_headers) + packages_own.append(package_headers) + if extra.get('headers_arch_depends'): + extra['headers_arch_depends'].append('%s (= ${binary:Version})' % packages_own[-1]['Package']) + + if config_entry_build.get('vdso', False): + makeflags['VDSO'] = True + + build_debug = config_entry_build.get('debug-info') + + if os.getenv('DEBIAN_KERNEL_DISABLE_DEBUG'): + if self.changelog[0].distribution == 'UNRELEASED': + import warnings + warnings.warn('Disable debug infos on request (DEBIAN_KERNEL_DISABLE_DEBUG set)') + build_debug = False + else: + raise RuntimeError('Unable to disable debug infos in release build (DEBIAN_KERNEL_DISABLE_DEBUG set)') + + if build_debug: + makeflags['DEBUG'] = True + packages_own.extend(self.process_packages(self.templates['control.image-dbg'], vars)) + + merge_packages(packages, packages_own + packages_dummy, arch) + + tests_control = self.process_package( + self.templates['tests-control.main'][0], vars) + tests_control['Depends'].append( + PackageRelationGroup(image_main['Package'], + override_arches=(arch,))) + if self.tests_control: + self.tests_control['Depends'].extend(tests_control['Depends']) + else: + self.tests_control = tests_control + + def get_config(*entry_name): + entry_real = ('image',) + entry_name + entry = self.config.get(entry_real, None) + if entry is None: + return None + return entry.get('configs', None) + + def check_config_default(fail, f): + for d in self.config_dirs[::-1]: + f1 = d + '/' + f + if os.path.exists(f1): + return [f1] + if fail: + raise RuntimeError("%s unavailable" % f) + return [] + + def check_config_files(files): + ret = [] + for f in files: + for d in self.config_dirs[::-1]: + f1 = d + '/' + f + if os.path.exists(f1): + ret.append(f1) + break + else: + raise RuntimeError("%s unavailable" % f) + return ret + + def check_config(default, fail, *entry_name): + configs = get_config(*entry_name) + if configs is None: + return check_config_default(fail, default) + return check_config_files(configs) + + kconfig = check_config('config', True) + kconfig.extend(check_config("kernelarch-%s/config" % config_entry_base['kernel-arch'], False)) + kconfig.extend(check_config("%s/config" % arch, True, arch)) + kconfig.extend(check_config("%s/config.%s" % (arch, flavour), False, arch, None, flavour)) + kconfig.extend(check_config("featureset-%s/config" % featureset, False, None, featureset)) + kconfig.extend(check_config("%s/%s/config" % (arch, featureset), False, arch, featureset)) + kconfig.extend(check_config("%s/%s/config.%s" % (arch, featureset, flavour), False, arch, featureset, flavour)) + makeflags['KCONFIG'] = ' '.join(kconfig) + makeflags['KCONFIG_OPTIONS'] = '' + if build_debug: + makeflags['KCONFIG_OPTIONS'] += ' -o DEBUG_INFO=y' + if build_signed: + makeflags['KCONFIG_OPTIONS'] += ' -o MODULE_SIG=y' + + cmds_binary_arch = ["$(MAKE) -f debian/rules.real binary-arch-flavour %s" % makeflags] + if packages_dummy: + cmds_binary_arch.append( + "$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='%s' %s" + % (' '.join("-p%s" % i['Package'] for i in packages_dummy), makeflags)) + cmds_build = ["$(MAKE) -f debian/rules.real build-arch-flavour %s" % makeflags] + cmds_setup = ["$(MAKE) -f debian/rules.real setup-arch-flavour %s" % makeflags] + makefile.add('binary-arch_%s_%s_%s_real' % (arch, featureset, flavour), cmds=cmds_binary_arch) + makefile.add('build-arch_%s_%s_%s_real' % (arch, featureset, flavour), cmds=cmds_build) + makefile.add('setup_%s_%s_%s_real' % (arch, featureset, flavour), cmds=cmds_setup) + + # Substitute kernel version etc. into maintainer scripts, + # translations and lintian overrides + self._substitute_file('headers.postinst', vars, + 'debian/linux-headers-%s%s.postinst' % + (vars['abiname'], vars['localversion'])) + for name in ['postinst', 'postrm', 'preinst', 'prerm']: + self._substitute_file('image.%s' % name, vars, + 'debian/%s.%s' % (image_main['Package'], name)) + if build_debug: + self._substitute_file('image-dbg.lintian-override', vars, + 'debian/linux-image-%s%s-dbgsym.lintian-overrides' % + (vars['abiname'], vars['localversion'])) + + def process_changelog(self): + act_upstream = self.changelog[0].version.upstream + versions = [] + for i in self.changelog: + if i.version.upstream != act_upstream: + break + versions.append(i.version) + self.versions = versions + version = self.version = self.changelog[0].version + if self.version.linux_modifier is not None: + self.abiname_part = '' + else: + self.abiname_part = '-%s' % self.config['abi', ]['abiname'] + # We need to keep at least three version components to avoid + # userland breakage (e.g. #742226, #745984). + self.abiname_version = re.sub('^(\d+\.\d+)(?=-|$)', r'\1.0', + self.version.linux_upstream) + self.vars = { + 'upstreamversion': self.version.linux_upstream, + 'version': self.version.linux_version, + 'source_upstream': self.version.upstream, + 'source_package': self.changelog[0].source, + 'abiname': self.abiname_version + self.abiname_part, + } + self.config['version', ] = {'source': self.version.complete, + 'upstream': self.version.linux_upstream, + 'abiname_base': self.abiname_version, + 'abiname': (self.abiname_version + + self.abiname_part)} + + distribution = self.changelog[0].distribution + if distribution in ('unstable', ): + if (version.linux_revision_experimental or + version.linux_revision_backports or + version.linux_revision_other): + raise RuntimeError("Can't upload to %s with a version of %s" % (distribution, version)) + if distribution in ('experimental', ): + if not version.linux_revision_experimental: + raise RuntimeError("Can't upload to %s with a version of %s" % (distribution, version)) + if distribution.endswith('-security') or distribution.endswith('-lts'): + if (not version.linux_revision_security or + version.linux_revision_backports): + raise RuntimeError("Can't upload to %s with a version of %s" % (distribution, version)) + if distribution.endswith('-backports'): + if not version.linux_revision_backports: + raise RuntimeError("Can't upload to %s with a version of %s" % (distribution, version)) + + def process_real_image(self, entry, fields, vars): + entry = self.process_package(entry, vars) + for key, value in fields.items(): + if key in entry: + real = entry[key] + real.extend(value) + elif value: + entry[key] = value + return entry + + def write(self, packages, makefile): + self.write_config() + super(Gencontrol, self).write(packages, makefile) + self.write_tests_control() + + def write_config(self): + f = open("debian/config.defines.dump", 'wb') + self.config.dump(f) + f.close() + + def write_tests_control(self): + self.write_rfc822(codecs.open("debian/tests/control", 'w', 'utf-8'), + [self.tests_control]) + +if __name__ == '__main__': + Gencontrol()() diff --git a/bin/genorig.py b/bin/genorig.py new file mode 100755 index 00000000000..59f31a8c0e0 --- /dev/null +++ b/bin/genorig.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 + +import sys +sys.path.append("debian/lib/python") + +import os +import os.path +import re +import shutil +import subprocess +import time + +from debian_linux.debian import Changelog, VersionLinux +from debian_linux.patches import PatchSeries + + +class Main(object): + def __init__(self, input_files, override_version): + self.log = sys.stdout.write + + self.input_files = input_files + + changelog = Changelog(version=VersionLinux)[0] + source = changelog.source + version = changelog.version + + if override_version: + version = VersionLinux('%s-0' % override_version) + + self.version_dfsg = version.linux_dfsg + if self.version_dfsg is None: + self.version_dfsg = '0' + + self.log('Using source name %s, version %s, dfsg %s\n' % (source, version.upstream, self.version_dfsg)) + + self.orig = '%s-%s' % (source, version.upstream) + self.orig_tar = '%s_%s.orig.tar.xz' % (source, version.upstream) + self.tag = 'v' + version.linux_upstream_full + + def __call__(self): + import tempfile + self.dir = tempfile.mkdtemp(prefix='genorig', dir='debian') + old_umask = os.umask(0o022) + try: + if os.path.isdir(self.input_files[0]): + self.upstream_export(self.input_files[0]) + else: + self.upstream_extract(self.input_files[0]) + if len(self.input_files) > 1: + self.upstream_patch(self.input_files[1]) + + # debian_patch() will change file mtimes. Capture the + # original release time so we can apply it to the final + # tarball. Note this doesn't work in case we apply an + # upstream patch, as that doesn't carry a release time. + orig_date = time.strftime( + "%a, %d %b %Y %H:%M:%S +0000", + time.gmtime( + os.stat(os.path.join(self.dir, self.orig, 'Makefile')) + .st_mtime)) + + self.debian_patch() + os.umask(old_umask) + self.tar(orig_date) + finally: + os.umask(old_umask) + shutil.rmtree(self.dir) + + def upstream_export(self, input_repo): + self.log("Exporting %s from %s\n" % (self.tag, input_repo)) + + gpg_wrapper = os.path.join(os.getcwd(), + "debian/bin/git-tag-gpg-wrapper") + verify_proc = subprocess.Popen(['git', + '-c', 'gpg.program=%s' % gpg_wrapper, + 'tag', '-v', self.tag], + cwd=input_repo) + if verify_proc.wait(): + raise RuntimeError("GPG tag verification failed") + + archive_proc = subprocess.Popen(['git', 'archive', '--format=tar', + '--prefix=%s/' % self.orig, self.tag], + cwd=input_repo, + stdout=subprocess.PIPE) + extract_proc = subprocess.Popen(['tar', '-xaf', '-'], cwd=self.dir, + stdin=archive_proc.stdout) + + ret1 = archive_proc.wait() + ret2 = extract_proc.wait() + if ret1 or ret2: + raise RuntimeError("Can't create archive") + + def upstream_extract(self, input_tar): + self.log("Extracting tarball %s\n" % input_tar) + match = re.match(r'(^|.*/)(?Plinux-\d+\.\d+(\.\d+)?(-\S+)?)\.tar(\.(?P(bz2|gz|xz)))?$', input_tar) + if not match: + raise RuntimeError("Can't identify name of tarball") + + cmdline = ['tar', '-xaf', input_tar, '-C', self.dir] + + if subprocess.Popen(cmdline).wait(): + raise RuntimeError("Can't extract tarball") + + os.rename(os.path.join(self.dir, match.group('dir')), os.path.join(self.dir, self.orig)) + + def upstream_patch(self, input_patch): + self.log("Patching source with %s\n" % input_patch) + match = re.match(r'(^|.*/)patch-\d+\.\d+(\.\d+)?(-\S+?)?(\.(?P(bz2|gz|xz)))?$', input_patch) + if not match: + raise RuntimeError("Can't identify name of patch") + cmdline = [] + if match.group('extension') == 'bz2': + cmdline.append('bzcat') + elif match.group('extension') == 'gz': + cmdline.append('zcat') + elif match.group('extension') == 'xz': + cmdline.append('xzcat') + else: + cmdline.append('cat') + cmdline.append(input_patch) + cmdline.append('| (cd %s; patch -p1 -f -s -t --no-backup-if-mismatch)' % os.path.join(self.dir, self.orig)) + if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', ' '.join(cmdline)]): + raise RuntimeError("Can't patch source") + + def debian_patch(self): + name = "orig" + self.log("Patching source with debian patch (series %s)\n" % name) + fp = open("debian/patches/series-" + name) + series = PatchSeries(name, "debian/patches", fp) + series(dir=os.path.join(self.dir, self.orig)) + + def tar(self, orig_date): + out = os.path.join("../orig", self.orig_tar) + try: + os.mkdir("../orig") + except OSError: + pass + try: + os.stat(out) + raise RuntimeError("Destination already exists") + except OSError: + pass + self.log("Generate tarball %s\n" % out) + cmdline = '''(cd '%s' && find '%s' -print0) | + LC_ALL=C sort -z | + tar -C '%s' --no-recursion --null -T - --mtime '%s' --owner root --group root -caf '%s' + ''' % (self.dir, self.orig, self.dir, orig_date, out) + try: + if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', cmdline]): + raise RuntimeError("Can't patch source") + os.chmod(out, 0o644) + except: + try: + os.unlink(out) + except OSError: + pass + raise + try: + os.symlink(os.path.join('orig', self.orig_tar), os.path.join('..', self.orig_tar)) + except OSError: + pass + +if __name__ == '__main__': + from optparse import OptionParser + parser = OptionParser(usage="%prog [OPTION]... {TAR [PATCH] | REPO}") + parser.add_option("-V", "--override-version", dest="override_version", help="Override version", metavar="VERSION") + options, args = parser.parse_args() + + assert 1 <= len(args) <= 2 + Main(args, options.override_version)() diff --git a/bin/getconfig.py b/bin/getconfig.py new file mode 100755 index 00000000000..e993f7c24e5 --- /dev/null +++ b/bin/getconfig.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +import sys +sys.path.append(sys.path[0] + "/../lib/python") + +from debian_linux.config import ConfigCoreDump + +section = tuple(s or None for s in sys.argv[1:-1]) +key = sys.argv[-1] +config = ConfigCoreDump(fp=open("debian/config.defines.dump", "rb")) +try: + value = config[section][key] +except KeyError: + sys.exit(1) + +if isinstance(value, str): + # Don't iterate over it + print(value) +else: + # In case it's a sequence, try printing each item + try: + for item in value: + print(item) + except TypeError: + # Otherwise use the default format + print(value) + diff --git a/bin/git-tag-gpg-wrapper b/bin/git-tag-gpg-wrapper new file mode 100755 index 00000000000..58e1750eed9 --- /dev/null +++ b/bin/git-tag-gpg-wrapper @@ -0,0 +1,33 @@ +#!/bin/bash -e + +# Instead of calling gpg, call gpgv and provide a local keyring + +debian_dir="$(readlink -f "$(dirname "$0")/..")" + +# Parse the expected options. If the next two lines are combined, a +# failure of getopt won't cause the script to exit. +ordered_args="$(getopt -n "$0" -o "" -l "status-fd:" -l "keyid-format:" -l "verify" -- "$@")" +eval "set -- $ordered_args" +gpgv_opts=() +while true; do + case "$1" in + --status-fd) + gpgv_opts+=(--status-fd $2) + shift 2 + ;; + --keyid-format) + # ignore + shift 2 + ;; + --verify) + # ignore + shift 1 + ;; + --) + shift 1 + break + ;; + esac +done + +exec gpgv "${gpgv_opts[@]}" --keyring "$debian_dir/upstream/signing-key.pgp" -- "$@" diff --git a/bin/kconfig.py b/bin/kconfig.py new file mode 100755 index 00000000000..9ee0750d75f --- /dev/null +++ b/bin/kconfig.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +import optparse +import os.path +import re +import sys + +from debian_linux.kconfig import * + + +def merge(output, configs, overrides): + kconfig = KconfigFile() + for c in configs: + kconfig.read(open(c)) + for key, value in overrides.items(): + kconfig.set(key, value) + open(output, "w").write(str(kconfig)) + + +def opt_callback_dict(option, opt, value, parser): + match = re.match('^\s*(\S+)=(\S+)\s*$', value) + if not match: + raise optparse.OptionValueError('not key=value') + dest = option.dest + data = getattr(parser.values, dest) + data[match.group(1)] = match.group(2) + + +if __name__ == '__main__': + parser = optparse.OptionParser(usage="%prog [OPTION]... FILE...") + parser.add_option( + '-o', '--override', + action='callback', + callback=opt_callback_dict, + default={}, + dest='overrides', + help="Override option", + type='string') + options, args = parser.parse_args() + + merge(args[0], args[1:], options.overrides) diff --git a/bin/no-depmod b/bin/no-depmod new file mode 100755 index 00000000000..ed5a8463f16 --- /dev/null +++ b/bin/no-depmod @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +# This is a dummy substitute for depmod. Since we run depmod during +# postinst, we do not need or want to package the files that it +# generates. + +if [ "x$1" = x-V ]; then + # Satisfy version test + echo 'not really module-init-tools' +elif [ "x$1" = x-b -a "${2%/depmod.??????}" != "$2" ]; then + # Satisfy test of short kernel versions + mkdir -p "$2/lib/modules/$3" + touch "$2/lib/modules/$3/modules.dep" +else + echo 'skipping depmod' +fi diff --git a/bin/stable-update b/bin/stable-update new file mode 100755 index 00000000000..7a79348dc10 --- /dev/null +++ b/bin/stable-update @@ -0,0 +1,126 @@ +#!/usr/bin/python3 + +import sys +sys.path.append(sys.path[0] + "/../lib/python") + +import os, re, subprocess + +from debian_linux.debian import Changelog, VersionLinux + +def base_version(ver): + # Assume base version is at least 3.0, thus only 2 components wanted + match = re.match(r'^(\d+\.\d+)', ver) + assert match + return match.group(1) + +def add_update(ver, inc): + base = base_version(ver) + if base == ver: + update = 0 + else: + update = int(ver[len(base)+1:]) + update += inc + if update == 0: + return base + else: + return '{}.{}'.format(base, update) + +def next_update(ver): + return add_update(ver, 1) + +def print_stable_log(log, cur_ver, new_ver): + major_ver = re.sub(r'^(\d+)\..*', r'\1', cur_ver) + while cur_ver != new_ver: + next_ver = next_update(cur_ver) + print(' https://www.kernel.org/pub/linux/kernel/v{}.x/ChangeLog-{}' + .format(major_ver, next_ver), + file=log) + log.flush() # serialise our output with git's + subprocess.check_call(['git', 'log', '--reverse', + '--pretty= - %s', + 'v{}..v{}^'.format(cur_ver, next_ver)], + stdout=log) + cur_ver = next_ver + +def main(repo, new_ver): + os.environ['GIT_DIR'] = repo + '/.git' + + changelog = Changelog(version=VersionLinux) + cur_pkg_ver = changelog[0].version + cur_ver = cur_pkg_ver.linux_upstream_full + + if base_version(new_ver) != base_version(cur_ver): + print('{} is not on the same stable series as {}' + .format(new_ver, cur_ver), + file=sys.stderr) + sys.exit(2) + + new_pkg_ver = new_ver + '-1' + if cur_pkg_ver.linux_revision_experimental: + new_pkg_ver += '~exp1' + + # Three possible cases: + # 1. The current version has been released so we need to add a new + # version to the changelog. + # 2. The current version has not been released so we're changing its + # version string. + # (a) There are no stable updates included in the current version, + # so we need to insert an introductory line, the URL(s) and + # git log(s) and a blank line at the top. + # (b) One or more stable updates are already included in the current + # version, so we need to insert the URL(s) and git log(s) after + # them. + + changelog_intro = 'New upstream stable update:' + + # Case 1 + if changelog[0].distribution != 'UNRELEASED': + subprocess.check_call(['dch', '-v', new_pkg_ver, '-D', 'UNRELEASED', + changelog_intro]) + + with open('debian/changelog', 'r') as old_log: + with open('debian/changelog.new', 'w') as new_log: + line_no = 0 + inserted = False + intro_line = ' * {}\n'.format(changelog_intro) + + for line in old_log: + line_no += 1 + + # Case 2 + if changelog[0].distribution == 'UNRELEASED' and line_no == 1: + print('{} ({}) UNRELEASED; urgency={}' + .format(changelog[0].source, new_pkg_ver, + changelog[0].urgency), + file=new_log) + continue + + if not inserted: + # Case 2(a) + if line_no == 3 and line != intro_line: + new_log.write(intro_line) + print_stable_log(new_log, cur_ver, new_ver) + new_log.write('\n') + inserted = True + # Case 1 or 2(b) + elif line_no > 3 and line == '\n': + print_stable_log(new_log, cur_ver, new_ver) + inserted = True + + # Check that we inserted before hitting the end of the + # first version entry + assert not (line.startswith(' -- ') and not inserted) + + new_log.write(line) + + os.rename('debian/changelog.new', 'debian/changelog') + +if __name__ == '__main__': + if len(sys.argv) != 3: + print('''\ +Usage: {} REPO VERSION" +REPO is the git repository to generate a changelog from +VERSION is the stable version (without leading v)'''.format(sys.argv[0]), + file=sys.stderr) + sys.exit(2) + main(*sys.argv[1:]) diff --git a/bin/stable-update.sh b/bin/stable-update.sh new file mode 100755 index 00000000000..bd86860c63f --- /dev/null +++ b/bin/stable-update.sh @@ -0,0 +1,2 @@ +#!/bin/sh -e +exec "$(dirname "$0")/stable-update" "$@" diff --git a/bin/test-patches b/bin/test-patches new file mode 100755 index 00000000000..94d6b056970 --- /dev/null +++ b/bin/test-patches @@ -0,0 +1,101 @@ +#!/bin/bash + +set -e +shopt -s extglob + +# Set defaults from the running kernel +arch="$(dpkg --print-architecture)" +kernelabi="$(uname -r)" +ff="${kernelabi#+([^-])-@(trunk|+([0-9]))-}" +if [ "x$ff" != "x$kernelabi" ]; then + flavour="${ff#@(openvz|rt|vserver|xen)-}" + if [ "x$flavour" != "x$ff" ]; then + featureset="${ff%-$flavour}" + else + featureset=none + fi +else + flavour= + featureset=none +fi + +fuzz=0 + +eval "set -- $(getopt -n "$0" -o "f:j:s:" -l "fuzz:" -- "$@")" +while true; do + case "$1" in + -f) flavour="$2"; shift 2 ;; + -j) export MAKEFLAGS="$MAKEFLAGS -j$2"; shift 2 ;; + -s) featureset="$2"; shift 2 ;; + --fuzz) fuzz="$2"; shift 2;; + --) shift 1; break ;; + esac +done + +if [ $# -lt 1 ]; then + echo >&2 "Usage: $0 [] ..." + cat >&2 < specify the 'flavour' of kernel to build, e.g. 686-pae + -j specify number of compiler jobs to run in parallel + -s specify an optional featureset to apply, e.g. rt + --fuzz set the maximum patch fuzz factor (default: 0) +EOF + exit 2 +fi + +if [ -z "$flavour" ]; then + echo >&2 "You must specify a flavour to build with the -f option" + exit 2 +fi + +dpkg-checkbuilddeps -B + +# Append 'a~test' to Debian version; this should be less than any official +# successor and easily recognisable +version="$(dpkg-parsechangelog | sed 's/^Version: //; t; d')" +if [ "${version%a~test}" = "$version" ]; then + version="$version"a~test + dch -v "$version" --distribution UNRELEASED "Testing patches $*" +fi + +# Make new directory for patches +mkdir -p debian/patches/test + +# Ignore user's .quiltrc +alias quilt='quilt --quiltrc -' + +# Try to clean up any previous test patches +if [ "$featureset" = none ]; then + while patch="$(quilt next 2>/dev/null || quilt top 2>/dev/null)" && \ + [ "${patch#test/}" != "$patch" ]; do + quilt delete -r "$patch" + done +else + sed -i '/^test\//d' debian/patches/series-${featureset} +fi + +# Prepare a new directory for the patches +rm -rf debian/patches/test/ +mkdir debian/patches/test + +# Regenerate control and included rules +rm debian/control debian/rules.gen +debian/rules debian/control-real && exit 1 || true +test -f debian/control +test -f debian/rules.gen + +# Clean up old build; apply existing patches for featureset +debian/rules clean +debian/rules source + +# Apply the additional patches +for patch in "$@"; do + patch_abs="$(readlink -f "$patch")" + (cd "debian/build/source_${featureset}" && \ + quilt import -P "test/$(basename "$patch")" "$patch_abs" && \ + quilt push --fuzz="$fuzz") +done + +# Build selected binaries +fakeroot make -f debian/rules.gen binary-arch_"$arch"_"$featureset"_"$flavour" diff --git a/bin/uscan-hook b/bin/uscan-hook new file mode 100755 index 00000000000..b0631c64e7e --- /dev/null +++ b/bin/uscan-hook @@ -0,0 +1,19 @@ +#!/bin/bash -e + +# This script is invoked by uscan after downloading a new tarball + +if [ "x$1" != "x--upstream-version" -o $# != 3 ]; then + echo >&2 "invalid arguments: $*" + exit 2 +fi + +version="$2" +filename="$3" + +upstream_tarball="$(readlink -f "$filename")" +rm "$filename" +debian/bin/genorig.py --override-version "$version" "$upstream_tarball" + +dch -v "$version-1" 'New upstream release' + +debian/rules orig diff --git a/certs/benh@debian.org.cert.pem b/certs/benh@debian.org.cert.pem new file mode 100644 index 00000000000..8d49875e571 --- /dev/null +++ b/certs/benh@debian.org.cert.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYDCCAkgCCQCKAY3KgJMmMDANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJH +QjESMBAGA1UEBwwJQ2FtYnJpZGdlMRcwFQYDVQQKDA5EZWJpYW4gUHJvamVjdDEW +MBQGA1UEAwwNQmVuIEh1dGNoaW5nczEeMBwGCSqGSIb3DQEJARYPYmVuaEBkZWJp +YW4ub3JnMB4XDTE2MDQwMzIyNTg1NVoXDTE2MDUwMzIyNTg1NVowcjELMAkGA1UE +BhMCR0IxEjAQBgNVBAcMCUNhbWJyaWRnZTEXMBUGA1UECgwORGViaWFuIFByb2pl +Y3QxFjAUBgNVBAMMDUJlbiBIdXRjaGluZ3MxHjAcBgkqhkiG9w0BCQEWD2JlbmhA +ZGViaWFuLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPYUchZ +x/VmCn4klnuqyym6gehD/sUnjqAbDdVtAVMYBHTxxpujW2GDtCsyiqyeDlSlbd6X +piXAko7u2UaBfY5SpKcw1KDDrCgzQ3y9O0QCe0DzI/7YKvE3A7FPluJ1ZhIhHIIZ +ce6oln0WfW/H5SY6BQWE3kzxXFUXXFPvTdLQtjOBxVWeOeMTZ5CAJqG/6uHIlJms +RTJiiiHjrI3yAfLS1wcGutmu9q9YQF1ND+lbdIT4OeyIMVGe03dVrDxWjNUL+G5h +nBRwFAwkb5qxpDNayvA8eIlNwWJE/uu+4crlL+PdM9i2TduoG5gRE39KPTrxrUyN +QiDe+09lJF12wQECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAieMLuk4Ky2FmMnzF +ryaJbbRXN163bXHPrDFd0NkvWQFa+3253QXxlLwEoS4v4OFbYb0tDxcn8qkpNLCb +DLtNUcl99slPbmBUi/RFTy/aAWc6LB4XxjbFcIlY27/c/W5bbr6/XmlVtElRW3gZ +y3JWFjgym+6lXywbr6RVKYioM3N+LlGf794Kf/pY9y7i8PqDM8WbhurGXwoaPxjv +/XsVTpuMCkorUya2n7Ap9Hatlref/IccdxnIOxItH3Jvze0vfygL82Mee77KN5U/ +jsvtswp6P3K08sLjtFGiAhkjim67H+nJrrhhczXjtUnLZUQuHpkzOghyKFDMpn3R +8lchpg== +-----END CERTIFICATE----- diff --git a/changelog b/changelog new file mode 100644 index 00000000000..59058abf976 --- /dev/null +++ b/changelog @@ -0,0 +1,24728 @@ +linux (4.9.2-2) unstable; urgency=medium + + * [sparc64] Export memcpy and memset to modules again (fixes FTBFS) + * Revert "Remove debug symbol packages from debian/control to work around dak + bug", which caused most binary uploads to be rejected + + -- Ben Hutchings Thu, 12 Jan 2017 15:52:37 +0000 + +linux (4.9.2-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.2 + + [ Ben Hutchings ] + * abiupdate.py: Use current config instead of downloading previous config + * abiupdate.py: Update base URLs + * abiupdate.py: Add support for incoming.ports.debian.org + * Make the pickled config (config.defines.dump) reproducible + * Remove debug symbol packages from debian/control to work around dak bug + * udeb: Add switch (DSA) drivers to nic-modules (Closes: #845075) + * netfilter: Enable NFT_NUMGEN, NFT_QUOTA as modules + * net/sched: Enable NET_ACT_TUNNEL_KEY, NET_IFE_SKBTCINDEX as modules + * vsock: Enable VSOCKETS, VHOST_VSOCK, VIRTIO_VSOCKETS as modules + * hci_uart: Enable BT_HCIUART_MRVL + * rxrpc: Enable AF_RXRPC_IPV6 + * net: Enable NET_DEVLINK, MACSEC as modules + * SCSI: Enable SCSI_SMARTPQI as module + * target: Enable ISCSI_TARGET_CXGB4 as module + * cxgb4: Enable CHELSIO_T4_FCOE + * drm: Enable DRM_LEGACY; re-enable DRM_TDFX, DRM_R128, DRM_MGA, DRM_SIS, + DRM_VIA, DRM_SAVAGE as modules for some architectures + * 8250: Disable SERIAL_8250_LPSS, since it causes DW_DMAC_CORE to be built-in + * Partially revert "usb: Kconfig: using select for USB_COMMON dependency", + since it causes USB_COMMON to be built-in + * Set ABI to 1 + + [ John Paul Adrian Glaubitz ] + * [sh3] Build a linux-libc-dev package (Closes: #850732) + + [ Martin Michlmayr ] + * [arm64] Enable MV_XOR and MV_XOR_V2. + + -- Ben Hutchings Wed, 11 Jan 2017 04:41:33 +0000 + +linux (4.9.1-1~exp1) experimental; urgency=medium + + * New upstream release: https://kernelnewbies.org/Linux_4.9 + - Revert "default exported asm symbols to zero" + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.1 + + [ Ben Hutchings ] + * Set ABI to trunk + * Enable USERFAULTFD (except on armel/marvell) + * [x86] PCI: Enable VMD as module + * mm: Enable PAGE_POISONING (Closes: #849450), PAGE_POISONING_NO_SANITY + (except on armel/marvell) + * ieee802154: Enable IEEE802154_FAKELB as module + * [armhf] leds,gpio: Enable LEDS_TCA6507 as module (Closes: #847770) + * [x86] iio,HID: Enable INTEL_ISH_HID as module + * hwmon,watchdog: Enable SENSORS_FTSTEUTATES as module (together with the + previous, Closes: #847017) + * net: Enable GTP as module (Closes: #846913) + * [armhf] gpio: Enable GPIO_MCP23S08 as module (Closes: #845064) + * aufs: Update support patchset to aufs4.9-20161219 + * Use debhelper compatibility level 9 + * [arm64] Revert "arm64/mm: Limit TASK_SIZE_64 ..." and add breaks on + incompatible mozjs + * genorig.py: Verify tag signatures (based on work by Yves-Alexis Perez) + + [ Uwe Kleine-König ] + * enable `perf data' support; patch by Sebastian Andrzej Siewior + (Closes: #846597) + * [rt] Update to 4.9-rt1 and reenable + * [armhf] Add support for switch hardware on Turris Omnia + + [ Aurelien Jarno ] + * [arm64] Enable RTC_DRV_DS1307. + + -- Ben Hutchings Sat, 07 Jan 2017 03:44:26 +0000 + +linux (4.9~rc8-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * radeon: Update package name in error message for missing firmware + * [amd64] Remove xen-linux-system- package + * debian/control: Fix build-dependency on flex to work with new versions + that have M-A: allowed + * Revert "default exported asm symbols to zero" + * [arm64] remoteproc: Disable QCOM_WCNSS_PIL (fixes FTBFS) + * [sparc64] Don't re-add exports of string functions that are now only + defined as macros (fixes FTBFS, after other fixes) + + -- Ben Hutchings Mon, 05 Dec 2016 05:02:30 +0000 + +linux (4.9~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate: + - [armhf,armel] Revert "arm: move exports to definitions" (Closes: #844530) + + [ Martin Michlmayr ] + * [arm64] Enable more QCOM options: BT_QCOMSMD, QCOM_EBI2, QCOM_TSENS, + QCOM_WCNSS_PIL and EXTCON_QCOM_SPMI_MISC. + * [arm64] Enable ARCH_MVEBU and related options. + + [ Ben Hutchings ] + * linux-headers-common: Make these packages architecture-independent by + including headers for all architectures that we build a kernel for + * Fix exported symbol versions: + - Revert upstream changes moving exports to assembly sources + - [x86] kbuild: enable modversions for symbols exported from assembly + - [powerpc] Remove Mac-on-Linux hooks + - [powerpc*] Fix missing CRCs, add yet more asm-prototypes.h declarations + - Re-enable CONFIG_MODVERSIONS in a slightly weaker form + - module: Disable matching missing version CRC + * debian/bin/buildcheck.py: Add check for symbols with version CRC of 0 + + -- Ben Hutchings Sat, 03 Dec 2016 01:46:12 +0000 + +linux (4.9~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Aurelien Jarno ] + * Enable MAC802154, IEEE802154_ADF7242, IEEE802154_AT86RF230, + IEEE802154_ATUSB, IEEE802154_CC2520 and IEEE802154_MRF24J40. + * [arm64] Enable VIRTUALIZATION and KVM. + + [ Ben Hutchings ] + * [hppa] Update build-dependencies for 64-bit kernel (fixes FTBFS) + * linux-perf: Exclude perf-read-vdso* from shared library dependency + check (fixes FTBFS on sparc64) + * [x86] kexec: add -fno-PIE + * wireless: Enable RTL8XXXU as module, replacement for R8723AU + * netfilter: Enable NFT_SET_RBTREE and NFT_SET_HASH as modules, + renamed from NFT_RBTREE and NFT_HASH + * tcp: Enable TCP_CONG_BBR as module + * [armel] Drop versatile flavour, which has been broken since version + 4.5~rc4-1~exp1 + * [x86] ethernet: Enable ENA_ETHERNET as module + * [x86] efi: Prevent mixed mode boot corruption with CONFIG_VMAP_STACK=y + * w1: Disable W1_MASTER_MATROX + + -- Ben Hutchings Mon, 14 Nov 2016 05:19:31 +0000 + +linux (4.9~rc3-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [rt] Disable until it is updated for 4.9 or later + * kbuild: add -fno-PIE (Closes: #841368) + * Compile with gcc-6 on all architectures + * debian/control: Fix build-dependency on openssl to work with new + versions that have M-A: allowed (Closes: #839145) + + -- Ben Hutchings Thu, 03 Nov 2016 16:51:55 -0600 + +linux (4.8.15-2) unstable; urgency=medium + + [ Ben Hutchings ] + * [x86] Enable INTEL_VBTN as module (Closes: #848967) + * debian/control: Change build-dependency on asciidoc to prefer the new + asciidoc-base, so we don't pull in LaTeX unnecessarily + * [x86] Enable LEDS_DELL_NETBOOKS and DELL_SMBIOS as modules; re-enable + DELL_LAPTOP and DELL_WMI as modules (Closes: #849674) + * [powerpc*] boot: Request no dynamic linker for boot wrapper + (Closes: #848851, FTBFS on ppc6el) + * cpufreq: Enable CPU_FREQ_GOV_SCHEDUTIL as module + * [x86] ACPI: Enable DPTF_POWER as module + * [x86] perf: Enable PERF_EVENTS_AMD_POWER as module + * [x86] perf: Change PERF_EVENTS_INTEL_{CSTATE,RAPL,UNCORE} from built-in + to modules + * PCI: Enable PCIE_DPC (except for armel/versatile) + * [amd64] PCI: Enable PCI_HYPERV as module + * inet: Enable INET_DIAG_DESTROY + * tcp: Enable TCP_CONG_NV as module + * ipv6: Enable IPV6_ILA as module + * net/sched: Enable NET_CLS_MATCHALL, NET_ACT_IFE, NET_IFE_SKBMARK, + NET_IFE_SKBPRIO as modules + * hci_uart: Enable BT_HCIUART_AG6XX + * nvme: Enable NVME_RDMA, NVME_TARGET, NVME_TARGET_RDMA as modules + * [amd64] mic: Enable VOP_BUS and VOP as modules; re-enable INTEL_MIC_HOST as + module + * debian/control: Add Salvatore Bonaccorso to Uploaders + * [rt] Update to 4.8.15-rt10 (no functional change) + + [ Salvatore Bonaccorso ] + * sg_write()/bsg_write() is not fit to be called under KERNEL_DS + (CVE-2016-10088) + * kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF) + (CVE-2016-9588) + + -- Ben Hutchings Wed, 04 Jan 2017 19:39:36 +0000 + +linux (4.8.15-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.12 + - [x86] iommu/vt-d: Fix PASID table allocation + - [x86] iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions + - [x86] KVM: fix out-of-bounds access in lapic + - [x86] KVM: x86: drop error recovery in em_jmp_far and em_ret_far + (CVE-2016-9756) + - [x86] KVM: fix out-of-bounds accesses of rtc_eoi map (CVE-2016-9777) + - [x86] KVM: check for pic and ioapic presence before use + - [arm64, armhf] usb: chipidea: move the lock initialization to core file + - USB: serial: cp210x: add ID for the Zone DPMX + - USB: serial: ftdi_sio: add support for TI CC3200 LaunchPad + - scsi: mpt3sas: Fix secure erase premature termination + - cfg80211: limit scan results cache size + - apparmor: fix change_hat not finding hat after policy replacement + - NFSv4.x: hide array-bounds warning + - [x86] fpu: Fix invalid FPU ptrace state after execve() + - [x86] traps: Ignore high word of regs->cs in early_fixup_exception() + - perf/core: Fix address filter parser + - perf/x86/intel: Cure bogus unwind from PEBS entries + - [x86] thermal/powerclamp: add back module device table + - [hppa/parisc] Fix races in parisc_setup_cache_timing() + - [hppa/parisc] Switch to generic sched_clock implementation + - [hppa/parisc] Fix race in pci-dma.c + - [hppa/parisc] Also flush data TLB in flush_icache_page_asm + - mpi: Fix NULL ptr dereference in mpi_powm() + - X.509: Fix double free in x509_cert_parse() + - xc2028: Fix use-after-free bug properly + - [powerpc] Set missing wakeup bit in LPCR on POWER9 + - [powerpc] mm: Fixup kernel read only mapping + - [powerpc] boot: Fix the early OPAL console wrappers + - can: bcm: fix support for CAN FD frames + - mm, oom: stop pre-mature high-order OOM killer invocations + - flow_dissect: call init_default_flow_dissectors() earlier + - scsi: mpt3sas: Unblock device after controller reset + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.13 + - libata-scsi: Fixup ata_gen_passthru_sense() + - scsi: hpsa: use bus '3' for legacy HBA devices + - scsi: libfc: fix seconds_since_last_reset miscalculation + - mm, thp: propagation of conditional compilation in khugepaged.c + - thp: fix corner case of munlock() of PTE-mapped THPs + - zram: fix unbalanced idr management at hot removal + - mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb + - ovl: fix d_real() for stacked fs + - Input: change KEY_DATA from 0x275 to 0x277 + - Input: psmouse - disable automatic probing of BYD touchpads + - rcu: Fix soft lockup for rcu_nocb_kthread + - mm: workingset: fix NULL ptr in count_shadow_nodes + - PCI: Export pcie_find_root_port + - PCI: Set Read Completion Boundary to 128 iff Root Port supports it + (_HPX) + - mwifiex: printk() overflow with 32-byte SSIDs + - [arm64] KVM: vgic: Don't notify EOI for non-SPIs + - [x86] drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() + error + - [x86] drm/i915: drop the struct_mutex when wedged or trying to reset + - [x86] drm/amdgpu: fix power state when port pm is unavailable + - drm/radeon: fix power state when port pm is unavailable + - [x86] drm/amdgpu: fix check for port PM availability + - drm/radeon: fix check for port PM availability + - [arm64] dts: juno: fix cluster sleep state entry latency on all SoC + versions + - KVM: use after free in kvm_ioctl_create_device() + - pwm: Fix device reference leak + - [x86] perf: Restore TASK_SIZE check on frame pointer + - [armhf] clk: sunxi: Fix M factor computation for APB1 + - batman-adv: Detect missing primaryif during tp_send as error + - [arm64] cpufeature: Schedule enable() calls instead of calling them via + IPI + - [arm64] mm: Set PSTATE.PAN from the cpu_enable_pan() call + - [arm64] suspend: Reconfigure PSTATE after resume from idle + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.14 + - gro_cells: mark napi struct as not busy poll candidates + - virtio-net: add a missing synchronize_net() + - [armhf] net: dsa: b53: Fix VLAN usage and how we treat CPU port + - net: check dead netns for peernet2id_alloc() + - ip6_tunnel: disable caching when the traffic class is inherited + - net: sky2: Fix shutdown crash + - af_unix: conditionally use freezable blocking calls in read + - rtnetlink: fix FDB size computation + - l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind() + - rtnl: fix the loop index update error in rtnl_dump_ifinfo() + - ipv6: bump genid when the IFA_F_TENTATIVE flag is clear + - udplite: call proper backlog handlers + - [armhf] net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link + change + - net, sched: respect rcu grace period on cls destruction + - [armhf] net: dsa: fix unbalanced dsa_switch_tree reference counting + - net/sched: pedit: make sure that offset is valid + - netlink: Call cb->done from a worker thread + - netlink: Do not schedule work from sk_destruct + - net/dccp: fix use-after-free in dccp_invalid_packet + - GSO: Reload iph after pskb_may_pull + - packet: fix race condition in packet_set_ring (CVE-2016-8655) + - ip6_offload: check segs for NULL in ipv6_gso_segment. + - cdc_ether: Fix handling connection notification + - tipc: check minimum bearer MTU (CVE-2016-8632) + - geneve: avoid use-after-free of skb->data + - net: avoid signed overflows for SO_{SND|RCV}BUFFORCE (CVE-2016-9793) + - net: ping: check minimum size on ICMP header length (CVE-2016-8399) + - ipv4: Restore fib_trie_flush_external function and fix call ordering + - ipv4: Fix memory leak in exception case for splitting tries + - ipv4: Drop leaf from suffix pull/push functions + - ipv4: Drop suffix update from resize code + - [sparc64] Fix find_node warning if numa node cannot be found + - [sparc64] fix compile warning section mismatch in find_node() + - [sparc] Fix inverted invalid_frame_pointer checks on sigreturns + - constify iov_iter_count() and iter_is_iovec() + - Don't feed anything but regular iovec's to blk_rq_map_user_iov + (CVE-2016-9576) + - ipv6: Set skb->protocol properly for local output + - ipv4: Set skb->protocol properly for local output + - Revert: "ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in + ip6_tnl_xmit()" + - flowcache: Increase threshold for refusing new allocations + - esp4: Fix integrity verification when ESN are used + - esp6: Fix integrity verification when ESN are used + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.15 + - [powerpc] eeh: Fix deadlock when PE frozen state can't be cleared + - [powerpc] mm: Fix lazy icache flush on pre-POWER5 + - [powerpc] boot: Fix build failure in 32-bit boot wrapper + - fuse: fix clearing suid, sgid for chown() + - [hppa/parisc] Purge TLB before setting PTE + - [hppa/parisc] Remove unnecessary TLB purges from flush_dcache_page_asm + and flush_icache_page_asm + - [hppa/parisc] Fix TLB related boot crash on SMP machines + - zram: restrict add/remove attributes to root only + - locking/rtmutex: Prevent dequeue vs. unlock race + - locking/rtmutex: Use READ_ONCE() in rt_mutex_owner() + - device-dax: fix private mapping restriction, permit read-only + - scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put() + - sched/autogroup: Fix 64-bit kernel nice level adjustment + - [x86] perf: Fix full width counter, counter overflow + - acpi, nfit: fix extended status translations for ACPI DSMs + - acpi, nfit, libnvdimm: fix / harden ars_status output length handling + - acpi, nfit: validate ars_status output buffer size + - acpi, nfit: fix bus vs dimm confusion in xlat_status + - [armel, armhf] crypto: marvell - Don't copy hash operation twice into + the SRAM + - crypto: caam - fix pointer size for AArch64 boot loader, AArch32 kernel + - [armel, armhf] crypto: marvell - Don't corrupt state of an STD req for + re-stepped ahash + - can: raw: raw_setsockopt: limit number of can_filter that can be set + - can: peak: fix bad memory access and free sequence + - [armel] dts: orion5x: fix number of sata port for linkstation ls-gl + (Closes: #845611) + - ceph: don't set req->r_locked_dir in ceph_d_revalidate + - [m68k] Fix ndelay() macro + - batman-adv: Check for alloc errors when preparing TT local data + - hotplug: Make register and unregister notifier API symmetric + + [ Uwe Kleine-König ] + * [armhf] dts: armada-385: add support for Turris Omnia + + [ Salvatore Bonaccorso ] + * Add ABI reference for 4.8.0-2 + * Ignore ABI changes in KVM + * net: handle no dst on skb in icmp6_send (CVE-2016-9919) + * [rt] Update to 4.8.11-rt7 + * [rt] Update to 4.8.14-rt9 + * netfilter: ipv6: nf_defrag: drop mangled skb on ream error (CVE-2016-9755) + * Ignore ABI changes in libnvdimm + * docs: sphinx-extensions: make rstFlatTable work with docutils 0.13. + Thanks to Dmitry Shachnev (Closes: #848349) + + [ Ben Hutchings ] + * [amd64] Re-enable LEGACY_VSYSCALL_EMULATE instead of LEGACY_VSYSCALL_NONE. + There are still binaries in stable that use vsyscall (via dietlibc). + (Closes: #847154) + * debian/rules.real: Exclude *.pyc from featureset diffs + * debian/control: Fix build-dependency on flex to work with new versions that + have M-A: foreign + * debian/rules: Use dpkg-parsechangelog -S option to select fields + * debian/rules: Tighten binNMU version matching, consistent with linux-latest + + -- Salvatore Bonaccorso Mon, 19 Dec 2016 12:35:29 +0100 + +linux (4.8.11-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.8 + - net: fec: set mac address unconditionally + - net: pktgen: fix pkt_size + - net/sched: act_vlan: Push skb->data to mac_header prior calling + skb_vlan_*() functions + - net: Add netdev all_adj_list refcnt propagation to fix panic + - packet: call fanout_release, while UNREGISTERING a netdev + - netlink: do not enter direct reclaim from netlink_dump() + - drivers/ptp: Fix kernel memory disclosure + - net_sched: reorder pernet ops and act ops registrations + - ipv6: tcp: restore IP6CB for pktoptions skbs + - net: phy: Trigger state machine on state change and not polling. + - ip6_tunnel: fix ip6_tnl_lookup + - ipv6: correctly add local routes when lo goes up + - IB/ipoib: move back IB LL address into the hard header + - net/mlx4_en: fixup xdp tx irq to match rx + - net: pktgen: remove rcu locking in pktgen_change_name() + - bridge: multicast: restore perm router ports on multicast enable + - switchdev: Execute bridge ndos only for bridge ports + - rtnetlink: Add rtnexthop offload flag to compare mask + - net: core: Correctly iterate over lower adjacency list + - net: add recursion limit to GRO + - ipv4: disable BH in set_ping_group_range() + - ipv4: use the right lock for ping_group_range + - net: fec: Call swap_buffer() prior to IP header alignment + - net: sctp, forbid negative length + - sctp: fix the panic caused by route update + - udp: fix IP_CHECKSUM handling + - [x86] netvsc: fix incorrect receive checksum offloading + - net: ipv6: Do not consider link state for nexthop validation + - net sched filters: fix notification of filter delete with proper handle + - sctp: validate chunk len before actually using it (CVE-2016-9555) + - ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit() + - packet: on direct_xmit, limit tso and csum to supported devices + - [powerpc] Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold + - [arm64, armhf] usb: dwc3: gadget: properly account queued requests + - scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) + devices + - scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.9 + - ALSA: info: Return error for invalid read/write + - ALSA: info: Limit the proc text input size + - dib0700: fix nec repeat handling + - mm, frontswap: make sure allocated frontswap map is assigned + - shmem: fix pageflags after swapping DMA32 object + - swapfile: fix memory corruption via malformed swapfile + - mm: hwpoison: fix thp split handling in memory_failure() + - mm/hugetlb: fix huge page reservation leak in private mapping error paths + - coredump: fix unfreezable coredumping task + - [s390x] hypfs: Use get_free_page() instead of kmalloc to ensure page + alignment + - PCI: Don't attempt to claim shadow copies of ROM + - [x86] pinctrl: cherryview: Serialize register access in suspend/resume + - [x86] pinctrl: cherryview: Prevent possible interrupt storm on resume + - cpupower: Correct return type of cpu_power_is_cpu_online() in cpufreq-set + - mmc: sdhci: Fix CMD line reset interfering with ongoing data transfer + - mmc: sdhci: Fix unexpected data interrupt handling + - mmc: mmc: Use 500ms as the default generic CMD6 timeout + - [arm64, armhf] usb: dwc3: Fix error handling for core init + - USB: cdc-acm: fix TIOCMIWAIT + - usb: gadget: u_ether: remove interrupt throttling + - drbd: Fix kernel_sendmsg() usage - potential NULL deref + - cdc-acm: fix uninitialized variable + - scsi: qla2xxx: Fix scsi scan hang triggered if adapter fails during init + - scsi: mpt3sas: Fix for block device of raid exists even after deleting + raid disk + - scsi: scsi_dh_alua: fix missing kref_put() in alua_rtpg_work() + - scsi: scsi_dh_alua: Fix a reference counting bug + - [arm64] KVM: vgic: Prevent access to invalid SPIs + - drm/radeon: disable runtime pm in certain cases + - [x86] drm/i915: Respect alternate_ddc_pin for all DDI ports + - [x86] drm/i915/dp: BDW cdclk fix for DP audio + - [x86] drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms + - [x86] drm/amdgpu: disable runtime pm in certain cases + - xprtrdma: use complete() instead complete_all() + - xprtrdma: Fix DMAR failure in frwr_op_map() after reconnect + - [amd64] iommu/amd: Free domain id when free a domain of struct + dma_ops_domain + - [x86] iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path + - [x86] agp/intel: Flush chipset writes after updating a single PTE + - watchdog: core: Fix devres_alloc() allocation size + - perf top: Fix refreshing hierarchy entries on TUI + - [x86] mei: bus: fix received data size check in NFC fixup + - svcrdma: Skip put_page() when send_reply() fails + - svcrdma: Tail iovec leaves an orphaned DMA mapping + - nvme: Delete created IO queues on reset + - [s390x] dumpstack: restore reliable indicator for call traces + - hwrng: core - Don't use a stack buffer in add_early_randomness() + - i40e: fix call of ndo_dflt_bridge_getlink() + - [arm64] mmc: sdhci-msm: Fix error return code in sdhci_msm_probe() + - [x86] ACPI / APEI: Fix incorrect return value of ghes_proc() + - ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages + - ACPI/PCI: pci_link: penalize SCI correctly + - ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs + - batman-adv: Modify neigh_list only with rcu-list functions + - [armel, armhf] gpio/mvebu: Use irq_domain_add_linear + - ASoC: Intel: Skylake: Always acquire runtime pm ref on unload + - [armhf] ASoC: sun4i-codec: return error code instead of NULL when + create_card fails + - memcg: prevent memcg caches to be both OFF_SLAB & OBJFREELIST_SLAB + - libceph: fix legacy layout decode with pool 0 + - [x86] drm/amdgpu: fix fence slab teardown + - [x86] drm/amdgpu: fix a vm_flush fence leak + - [x86] drm/i915: Fix mismatched INIT power domain disabling during + suspend + - netfilter: fix namespace handling in nf_log_proc_dostring + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.10 + - dctcp: avoid bogus doubling of cwnd after loss + - net: clear sk_err_soft in sk_clone_lock() + - net: mangle zero checksum in skb_checksum_help() + - ip6_tunnel: Clear IP6CB in ip6tunnel_xmit() + - tcp: fix potential memory corruption + - ipv4: allow local fragmentation in ip_finish_output_gso() + - tcp: fix return value for partial writes + - dccp: do not release listeners too soon + - dccp: do not send reset to already closed sockets + - dccp: fix out of bound access in dccp_v4_err() + - ipv6: dccp: fix out of bound access in dccp_v6_err() + - ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped + - sctp: assign assoc_id earlier in __sctp_connect + - bpf: fix htab map destruction when extra reserve is in use + - net: icmp6_send should use dst dev to determine L3 domain + - fib_trie: Correct /proc/net/route off by one error + - sock: fix sendmmsg for partial sendmsg + - net: icmp_route_lookup should use rt dev to determine L3 domain + - net: __skb_flow_dissect() must cap its return value + - ipv4: use new_gw for redirect neigh lookup + - tcp: take care of truncations done by sk_filter() (CVE-2016-8645) + - Revert "include/uapi/linux/atm_zatm.h: include linux/time.h" + (Closes: #844491) + - Revert "bnx2: Reset device during driver initialization" + - bnx2: Wait for in-flight DMA to complete at probe stage + - sctp: change sk state only when it has assocs in sctp_shutdown + - [arm64, armhf] net: stmmac: Fix lack of link transition for fixed PHYs + - [sparc] Handle negative offsets in arch_jump_label_transform + - [sparc64] Handle extremely large kernel TSB range flushes sanely. + - [sparc64] Fix illegal relative branches in hypervisor patched TLB code. + - [sparc64] Fix instruction count in comment for + __hypervisor_flush_tlb_pending. + - [sparc64] Fix illegal relative branches in hypervisor patched TLB + cross-call code. + - [sparc64] Handle extremely large kernel TLB range flushes more + gracefully. + - [sparc64] Delete __ret_efault. + - [sparc64] Prepare to move to more saner user copy exception handling. + - [sparc64] Convert copy_in_user to accurate exception reporting. + - [sparc64] Convert GENcopy_{from,to}_user to accurate exception + reporting. + - [sparc64] Convert U1copy_{from,to}_user to accurate exception reporting. + - [sparc64] Convert NG4copy_{from,to}_user to accurate exception + reporting. + - [sparc64] Convert NGcopy_{from,to}_user to accurate exception reporting. + - [sparc64] Convert NG2copy_{from,to}_user to accurate exception + reporting. + - [sparc64] Convert U3copy_{from,to}_user to accurate exception reporting. + - [sparc64] Delete now unused user copy assembler helpers. + - [sparc64] Delete now unused user copy fixup functions. + - usb: gadget: f_fs: edit epfile->ep under lock + - usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.11 + - [x86] cpu/AMD: Fix cpu_llc_id for AMD Fam17h systems + - [x86] KVM: fix missed SRCU usage in kvm_lapic_set_vapic_addr + - [x86] KVM: Disable irq while unregistering user notifier + - ftrace: Ignore FTRACE_FL_DISABLED while walking dyn_ftrace records + - ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records + - genirq: Use irq type from irqdata instead of irqdesc + - fuse: fix fuse_write_end() if zero bytes were copied + - IB/rdmavt: rdmavt can handle non aligned page maps + - IB/hfi1: Fix rnr_timer addition + - [x86] mfd: intel-lpss: Do not put device in reset state on suspend + - [armhf] mfd: stmpe: Fix RESET regression on STMPE2401 + - can: bcm: fix warning in bcm_connect/proc_register + - gpio: do not double-check direction on sleeping chips + - [x86] ALSA: usb-audio: Fix use-after-free of usb_device at disconnect + - [x86] ALSA: hda - add a new condition to check if it is thinkpad + - ALSA: hda - Fix mic regression by ASRock mobo fixup + - [armhf] i2c: mux: fix up dependencies + - [armhf] i2c: i2c-mux-pca954x: fix deselect enabling for device-tree + - kbuild: add -fno-PIE + - scripts/has-stack-protector: add -fno-PIE + - x86/kexec: add -fno-PIE + - kbuild: Steal gcc's pie from the very beginning + - ext4: sanity check the block and cluster size at mount time + - [armhf] dts: imx53-qsb: Fix regulator constraints + - crypto: caam - do not register AES-XTS mode on LP units + - [powerpc*] Fix setting of AIL in hypervisor mode + - [x86] drm/amdgpu: Attach exclusive fence to prime exported bo's. + - [x86] drm/i915: Refresh that status of MST capable connectors in + ->detect() + - [x86] drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no + AUX ch specified in the VBT + - virtio-net: drop legacy features in virtio 1 mode + - [armhf] clk: imx: fix integer overflow in AV PLL round rate + - [armhf] rtc: omap: Fix selecting external osc + - iwlwifi: pcie: fix SPLC structure parsing + - iwlwifi: pcie: mark command queue lock with separate lockdep class + - iwlwifi: mvm: fix netdetect starting/stopping for unified images + - iwlwifi: mvm: fix d3_test with unified D0/D3 images + - iwlwifi: mvm: wake the wait queue when the RX sync counter is zero + - mfd: core: Fix device reference leak in mfd_clone_cell + - sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp + transports + - uwb: fix device reference leaks + - PM / sleep: fix device reference leak in test_suspend + - PM / sleep: don't suspend parent when async child suspend_{noirq, + late} fails + - perf hists: Fix column length on --hierarchy + - IB/mlx4: Check gid_index return value + - IB/mlx4: Fix create CQ error flow + - IB/mlx5: Validate requested RQT size + - IB/mlx5: Use cache line size to select CQE stride + - IB/mlx5: Fix memory leak in query device + - IB/mlx5: Fix fatal error dispatching + - IB/mlx5: Fix NULL pointer dereference on debug print + - IB/core: Avoid unsigned int overflow in sg_alloc_table + - IB/hfi1: Remove incorrect IS_ERR check + - IB/uverbs: Fix leak of XRC target QPs + - IB/cm: Mark stale CM id's whenever the mad agent was unregistered + - netfilter: nft_dynset: fix element timeout for HZ != 1000 + - [arm64, armhf] gpio: pca953x: Move memcpy into mutex lock for set + multiple + - [arm64, armhf] gpio: pca953x: Fix corruption of other gpios in + set_multiple. + + [ Salvatore Bonaccorso ] + * Bump ABI to 2 and remove ABI reference for 4.8.0-1 + * xfs: Propagate dentry down to inode_change_ok() + * ceph: Propagate dentry down to inode_change_ok() + * fuse: Propagate dentry down to inode_change_ok() + * fs: Give dentry to inode_change_ok() instead of inode + * fs: Avoid premature clearing of capabilities (CVE-2015-1350) + (Closes: #770492) + * mpi: Fix NULL ptr dereference in mpi_powm() (CVE-2016-8650) + * vfio/pci: Fix integer overflows, bitmask check (CVE-2016-9083 + CVE-2016-9084) + * mnt: Add a per mount namespace limit on the number of mounts + (CVE-2016-6213) + + [ Ben Hutchings ] + * [arm64] Enable more drivers for X-Gene (Really closes: #840061): + - DMA: Enable XGENE_DMA as module + - EDAC: Enable EDAC and EDAC_MM_EDAC, EDAC_XGENE as modules + * [x86] video: Disable X86_SYSFB, FB_SIMPLE (Closes: #822575) + + -- Salvatore Bonaccorso Fri, 02 Dec 2016 06:35:22 +0100 + +linux (4.8.7-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.6 + - [armhf,arm64] drm/vc4: Fix races when the CS reads from render targets. + - [x86] drm/i915/backlight: setup and cache pwm alternate increment value + - [x86] drm/i915/backlight: setup backlight pwm alternate increment on + backlight enable + - [x86] drm/amdgpu: fix IB alignment for UVD + - [x86] drm/amdgpu/dce10: disable hpd on local panels + - [x86] drm/amdgpu/dce8: disable hpd on local panels + - [x86] drm/amdgpu/dce11: disable hpd on local panels + - [x86] drm/amdgpu/dce11: add missing drm_mode_config_cleanup call + - [x86] drm/amdgpu: initialize the context reset_counter in amdgpu_ctx_init + - [x86] drm/amdgpu: change vblank_time's calculation method to reduce + computational error. + - drm/radeon: narrow asic_init for virtualization + - drm/radeon/si/dpm: fix phase shedding setup + - drm/radeon: change vblank_time's calculation method to reduce + computational error. + - [x86] drm/vmwgfx: Limit the user-space command buffer size + - [x86] drm/amd/powerplay: fix mclk not switching back after multi-head + was disabled + - [x86] drm/i915/skl: Fix FIFO underrun (Closes: #844113) + + Update plane watermarks atomically during plane updates + + Move CRTC updating in atomic_commit into it's own hook + + Update DDB values atomically with wms/plane attrs + + Don't try to update plane watermarks if they haven't changed + - [x86] drm/i915/gen9: only add the planes actually affected by ddb changes + - [x86] drm/i915/gen9: fix the WaWmMemoryReadLatency implementation + - [x86] drm/i915/gen9: minimum scanlines for Y tile is not always 4 + - [x86] drm/i915/gen9: fix plane_blocks_per_line on watermarks calculations + - [x86] drm/i915/gen9: fix the watermark res_blocks value + - [x86] drm/i915: SAGV is not SKL-only, so rename a few things + - [x86] drm/i915: introduce intel_has_sagv() + - [x86] drm/i915/kbl: KBL also needs to run the SAGV code + - [x86] Revert "drm/i915: Check live status before reading edid" + - [x86] drm/i915: Account for TSEG size when determining 865G stolen base + - [x86] drm/i915/skl: Ensure pipes with changed wms get added to the state + - [x86] drm/i915: Allow PCH DPLL sharing regardless of DPLL_SDVO_HIGH_SPEED + - [x86] drm/i915: Move long hpd handling into the hotplug work + - [x86] drm/i915: Allow DP to work w/o EDID + - [x86] drm/i915: Just clear the mmiodebug before a register access + - [x86] drm/i915: Unalias obj->phys_handle and obj->userptr + - rt2x00usb: Fix error return code + - uio: fix dmem_region_start computation + - i40e: remove a stray unlock + - i40e: fix broken i40e_config_rss_aq function + - mwifiex: correct aid value during tdls setup + - mwifiex: fix failed to reconnect after interface disabled/enabled + - ath10k: Add WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT wmi service + - ath10k: fix sending frame in management path in push txq logic + - ath10k: fix reporting channel survey data + - ath10k: fix throughput regression in multi client mode + - [armel/marvell,armhf] crypto: marvell - Don't overwrite default + creq->state during initialization + - crypto: gcm - Fix IV buffer size in crypto_gcm_setkey + - [armel/marvell,armhf] crypto: marvell - Update transformation context for + each dequeued req + - [x86] crypto: ccp - Fix return value check in ccp_dmaengine_register() + - [armhf] hwrng: omap - Only fail if pm_runtime_get_sync returns < 0 + - ASoC: topology: Fix error return code in soc_tplg_dapm_widget_create() + - ASoC: dapm: Fix possible uninitialized variable in + snd_soc_dapm_get_volsw() + - ASoC: dapm: Fix value setting for _ENUM_DOUBLE MUX's second channel + - ASoC: dapm: Fix kcontrol creation for output driver widget + - staging: r8188eu: Fix scheduling while atomic splat + - IB/qib: Remove qpt_mask global + - IB/mlx5: Fix steering resource leak + - mm/hugetlb: check for reserved hugepages during memory offline + - mm/hugetlb: improve locking in dissolve_free_huge_pages() + - [x86] drm/vmwgfx: Avoid validating views on view destruction + - [s390x] cio: fix accidental interrupt enabling during resume + - [s390x] con3270: fix use of uninitialised data + - [s390x] con3270: fix insufficient space padding + - [armhf,arm64] clk: bcm2835: Skip PLLC clocks when deciding on a new + clock parent + - [arm64] clk: gcc-msm8996: Fix pcie 2 pipe register offset + - [arm64] clk: qcom: select GDSC for msm8996 gcc and mmcc + - clk: Return errors from clk providers in __of_clk_get_from_provider() + - clk: core: Force setting the phase delay when no change + - clk: divider: Fix clk_divider_round_rate() to use clk_readl() + - perf hists browser: Fix event group display + - perf ui/tui: Reset output width for hierarchy + - perf ui/stdio: Always reset output width for hierarchy + - perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too + - perf symbols: Fixup symbol sizes before picking best ones + - iwlwifi: check for valid ethernet address provided by OEM + - iwlwifi: mvm: fix pending frames tracking on tx resp + - iwlwifi: mvm: call a different txq_enable function + - iwlwifi: mvm: free reserved queue on STA removal + - iwlwifi: mvm: support BAR in reorder buffer + - iwlwifi: mvm: disable P2P queue on mac context release + - iwlwifi: mvm: bail out if CTDP start operation fails + - [armhf,arm64] pinctrl: qcom: fix masking of pinmux functions + - mpt3sas: Don't spam logs if logging level is 0 + - [powerpc*] Always restore FPU/VEC/VSX if hardware transactional memory + in use + - [powerpc*] Add check_if_tm_restore_required() to giveup_all() + - [powerpc*] nvram: Fix an incorrect partition merge + - [powerpc*] Fix usage of _PAGE_RO in hugepage + - [armhf] dts: omap3: overo: add missing unit name for lcd35 display + - PCI: generic: Fix pci_remap_iospace() failure path + - [armhf] PCI: tegra: Fix pci_remap_iospace() failure path + - libnvdimm: clear the internal poison_list when clearing badblocks + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.7 + - [armhf] i2c: rk3x: Give the tuning value 0 during + rk3x_i2c_v0_calc_timings + - i2c: core: fix NULL pointer dereference under race condition + - drm/dp/mst: Clear port->pdt when tearing down the i2c adapter + - gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get() + - gpio: GPIO_GET_CHIPINFO_IOCTL: Fix line offset validation + - gpio: GPIO_GET_CHIPINFO_IOCTL: Fix information leak + - gpio: GPIO_GET_LINEHANDLE_IOCTL: Validate line offset + - gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix information leak + - gpio: GPIO_GET_LINEEVENT_IOCTL: Validate line offset + - gpio: GPIO_GET_LINEHANDLE_IOCTL: Reject invalid line flags + - gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags + - gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix another information leak + - gpio: GPIO_GET_LINE{HANDLE,EVENT}_IOCTL: Fix file descriptor leak + - libxfs: clean up _calc_dquots_per_chunk + - mm/list_lru.c: avoid error-path NULL pointer deref + - mm/slab: fix kmemcg cache creation delayed issue + - mm: memcontrol: do not recurse in direct reclaim + - [x86] thermal/powerclamp: correct cpu support check + - KEYS: Fix short sprintf buffer in /proc/keys show function + - ALSA: usb-audio: Add quirk for Syntek STK1160 + - ALSA: seq: Fix time account regression + - ALSA: hda - allow 40 bit DMA mask for NVidia devices + - ALSA: hda - Adding a new group of pin cfg into ALC295 pin quirk table + - ALSA: hda - Fix surround output pins for ASRock B150M mobo + - ALSA: hda - Fix headset mic detection problem for two Dell laptops + - [powerpc*] cxl: Fix leaking pid refs in some error paths + - btrfs: fix races on root_log_ctx lists + - [powerpc] Convert cmp to cmpd in idle enter sequence + - [powerpc] mm/radix: Use tlbiel only if we ever ran on the current cpu + - [powerpc] Re-fix race condition between going idle and entering guest + - [powerpc] Fix race condition in setting lock bit in idle/wakeup code + - [amd64] x86/microcode/AMD: Fix more fallout from + CONFIG_RANDOMIZE_MEMORY=y + - timers: Prevent base clock rewind when forwarding clock + - timers: Prevent base clock corruption when forwarding + - timers: Plug locking race vs. timer migration + - timers: Lock base for same bucket optimization + - mei: txe: don't clean an unprocessed interrupt cause. + - USB: serial: fix potential NULL-dereference at probe + - USB: serial: cp210x: fix tiocmget error handling + - USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7 + - xhci: use default USB_RESUME_TIMEOUT when resuming ports. + - usb: increase ohci watchdog delay to 275 msec (Closes: #842863) + - [powerpc] GenWQE: Fix bad page access during abort of resource + allocation + - [x86] smpboot: Init apic mapping before usage + - vt: clear selection before resizing + - [x86] hv: do not lose pending heartbeat vmbus packets + - xhci: add restart quirk for Intel Wildcatpoint PCH + - xhci: workaround for hosts missing CAS bit + - tty: limit terminal size to 4M chars + - [arm64] dts: marvell: fix clocksource for CP110 master SPI0 + - dm: free io_barrier after blk_cleanup_queue call + - [x86] KVM: fix wbinvd_dirty_mask use-after-free + - [s390] KVM: Fix STHYI buffer alignment for diag224 + - [armhf] mvebu: Select corediv clk for all mvebu v7 SoC + - nfsd: Fix general protection fault in release_lock_stateid() + - [mips*] KASLR: Fix handling of NULL FDT + - ovl: fix get_acl() on tmpfs + - ovl: update S_ISGID when setting posix ACLs + - ovl: fsync after copy-up + - virtio_ring: Make interrupt suppression spec compliant + - virtio_pci: Limit DMA mask to 44 bits for legacy virtio devices + - virtio: console: Unlock vqs while freeing buffers + - dm mirror: fix read error on recovery after default leg failure + - dm table: fix missing dm_put_target_type() in dm_table_add_target() + - dm rq: clear kworker_task if kthread_run() returned an error + - dm raid: fix compat_features validation (Closes: #843572) + - dm raid: fix activation of existing raid4/10 devices + - firewire: net: guard against rx buffer overflows (CVE-2016-8633) + - firewire: net: fix fragmented datagram_size off-by-one + - mac80211: discard multicast and 4-addr A-MSDUs + - ath10k: cache calibration data when the core is stopped + - scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded + - scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware + - [arm64, armhf] mmc: dw_mmc-pltfm: fix the potential NULL pointer + dereference + - RAID1: ignore discard error + - RAID10: ignore discard error + - md: be careful not lot leak internal curr_resync value into metadata. + - Revert "drm/radeon: fix DP link training issue with second 4K monitor" + - [armhf] drm/imx: ipuv3-plane: Switch EBA buffer only when we don't need + modeset + - [armhf] drm/imx: ipuv3-plane: Access old u/vbo properly in + ->atomic_check for YU12/YV12 + - drm/radeon/si_dpm: Limit clocks on HD86xx part + - drm/radeon/si_dpm: workaround for SI kickers + - drm/radeon: drop register readback in cayman_cp_int_cntl_setup + - drm/nouveau/acpi: fix check for power resources support + - drm/fb-helper: Don't call dirty callback for untouched clips + - drm/fb-helper: Fix connector ref leak on error + - drm/fb-helper: Keep references for the current set of used connectors + - drm/i915/gen9: fix DDB partitioning for multi-screen cases + - drm/i915/gen9: fix watermarks when using the pipe scaler + - drm/dp/mst: Check peer device type before attempting EDID read + - drm: Release reference from blob lookup after replacing property + - drm/i915: Respect alternate_aux_channel for all DDI ports + - drm/i915: Clean up DDI DDC/AUX CH sanitation + - drm/i915/fbc: fix CFB size calculation for gen8+ + - drm: i915: Wait for fences on new fb, not old + - i2c: mark device nodes only in case of successful instantiation + - netfilter: xt_NFLOG: fix unexpected truncated packet + - [arm64, armhf] pwm: Unexport children before chip removal + - [arm64, armhf] usb: dwc3: Fix size used in dma_free_coherent() + - [arm64, armhf] usb: chipidea: host: fix NULL ptr dereference during + shutdown + - [armhf] usb: musb: Fix hardirq-safe hardirq-unsafe lock order error + - tty: vt, fix bogus division in csi_J + - [x86] kvm: Check memopp before dereference (CVE-2016-8630) + - btrfs: qgroup: Prevent qgroup->reserved from going subzero + - [x86] cpufreq: intel_pstate: Set P-state upfront in performance mode + - HID: usbhid: add ATEN CS962 to list of quirky devices + + [ Ben Hutchings ] + * debian/control: Fix build-dependency on openssl to work with new + versions that have M-A: allowed (Closes: #839145) + * [rt] Update to 4.8.6-rt5: + - [i386] entry: Fix preempt_lazy_count check in resume_kernel() + - sched: Use mmdrop_delayed() in sched_cpu_dying() + - Revert "mm/zsmalloc: Use get/put_cpu_light in + zs_map_object()/zs_unmap_object()" + - mm/zsmalloc: copy with get_cpu_var() and locking + - NFSv4: replace seqcount_t with a seqlock_t + - ftrace: Fix trace header alignment + - connector/cn_proc: Protect send_msg() with a local lock on RT + - drivers/zram: Don't disable preemption in zcomp_stream_get/put() + * HID: Enable HID_ALPS, HID_ASUS (Closes: #843085), HID_CMEDIA as modules + * cpupower: Fix checks for CPU existence (Closes: #843071) + * perf: Disable use of libcrypto (Closes: #843199) + * IB: Enable INFINIBAND_RDMAVT as module, re-enabling INFINIBAND_HFI1 + and INFINIBAND_QIB (Closes: #843792) + * libcpupower-dev: Depend on libcpupower1 (Closes: #840852) + * [arm64] Enable more drivers for X-Gene (Closes: #840061): + - ipmi: Enable IPMI_HANDLER, IPMI_DEVICE_INTERFACE, IPMI_SSIF as modules + - i2c: Enable I2C_XGENE_SLIMPRO as module + - mailbox: Enable XGENE_SLIMPRO_MBOX as module + * debian/control: Build-Depend on a recent debhelper instead of dh-systemd + + -- Ben Hutchings Sun, 13 Nov 2016 04:38:09 +0000 + +linux (4.8.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.5 + - [x86] boot/smp: Don't try to poke disabled/non-existent APIC + (Closes: #841850) + - [x86] Input: i8042 - skip selftest on ASUS laptops + - [x86] Input: elantech - add Fujitsu Lifebook E556 to force crc_enabled + (Closes: #835160) + + [ Ben Hutchings ] + * cpufreq: Re-enable CPU_FREQ_STAT, which can no longer be modular + * [armhf] dts: imx53: add support for USB armory board (Closes: #840137) + * kconfig: Renumber SYMBOL_NEW, fixing regression of allnoconfig + (Closes: #841357) + * netfilter: xt_NFLOG: fix unexpected truncated packet (Closes: #841261) + * Set ABI to 1 + + -- Ben Hutchings Fri, 28 Oct 2016 20:34:09 +0100 + +linux (4.8.4-1~exp1) experimental; urgency=medium + + * New upstream release: https://kernelnewbies.org/Linux_4.8 + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.1 + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.2 + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.3 + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.4 + + [ Ben Hutchings ] + * [amd64] Enable LEGACY_VSYSCALL_NONE instead of LEGACY_VSYSCALL_EMULATE. + This breaks (e)glibc 2.13 and earlier, and can be reverted using the kernel + parameter: vsyscall=emulate + * [arm*] Enable STRICT_DEVMEM + * [arm*,powerpc*,s390x,x86] Enable IO_STRICT_DEVMEM. This breaks dosemu and + some old graphics drivers, and can be reverted using the kernel parameter: + iomem=relaxed + * [mips*] Enable RANDOMIZE_BASE and RELOCATABLE. + * Enable SLAB_FREELIST_RANDOM + * [arm*,powerpc*,s390x,sparc64,x86] Enable HARDENED_USERCOPY + * security,perf: Replace GRKERNSEC_PERF_HARDEN patch with the version + submitted upstream + * [amd64] Enable RANDOMIZE_MEMORY + * [powerpc*/*64*] Enable OPAL_PRD, MTD, MTD_POWERNV_FLASH as modules + (Closes: #838604, #838605) + * security,printk: Enable SECURITY_DMESG_RESTRICT, preventing non-root users + reading the kernel log by default (sysctl: kernel.dmesg_restrict) + * bug script: Optionally use sudo to read a restricted kernel log, and fall + back to writing a placeholder + * [rt] Update to 4.8.2-rt2 and re-enable + * aufs: Update support patchest to aufs4.8-20161010 (no functional change) + + [ Aurelien Jarno ] + * [arm64] Enable SERIAL_8250_EXTENDED, SERIAL_8250_SHARE_IRQ and + SERIAL_8250_BCM2835AUX, needed for Raspberry Pi 3. + + -- Ben Hutchings Sun, 23 Oct 2016 17:21:13 +0100 + +linux (4.8~rc8-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Héctor Orón ] + * [arm64] Enable ACPI, ARM64_VA_BITS_48 (Closes: #834505) + + [ Ben Hutchings ] + * Fix some new reproducibility issues: + - linux-source: Exclude Python bytecode generated when running Sphinx + - Set -fdebug-prefix-map=... in compiler options for kernel and userland + - linux-headers: Stop including unused arch/*/kernel/asm-offsets.s files + * linux-doc: Exclude Sphinx support code and Makefiles + * [arm64] mm: Limit TASK_SIZE_64 for compatibility + * [armhf] udeb: Replace dwmac-socfpga with dwmac-altr-socfpga in + nic-modules (Closes: #837110, thanks to Vagrant Cascadian) + * [armhf] Enable drivers for ASUS Chromebook C201 (veyron-speedy): + MFD_RK808, POWER_AVS, POWER_RESET_GPIO_RESTART, RTC_DRV_RK808, + ROCKCHIP_PM_DOMAINS as built-in; DRM_PANEL_SIMPLE, ROCKCHIP_ANALOGIX_DP, + ROCKCHIP_DW_MIPI_DSI, I2C_CROS_EC_TUNNEL, KEYBOARD_CROS_EC, OUSE_ELAN_I2C, + MFD_CROS_EC, MFD_CROS_EC_SPI, MFD_RK808, PHY_ROCKCHIP_EMMC, PHY_ROCKCHIP_DP, + BATTERY_SBS, CHARGER_GPIO, REGULATOR_RK808, BACKLIGHT_PWM as modules + (Closes: #836251, thanks to Vagrant Cascadian) + * [armhf] dsa: Enable drivers for Lamobo R1 (aka BPi-R1): B53, + B53_MDIO_DRIVER as modules (Closes: #836231, thanks to Vagrant Cascadian) + * [armhf] media: Enable VIDEO_V4L2_SUBDEV_API and VIDEO_OMAP3 as module + + -- Ben Hutchings Mon, 26 Sep 2016 04:27:06 +0100 + +linux (4.8~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Martin Michlmayr ] + * [arm64] Enable more Tegra options: TEGRA_ACONNECT. + * [arm64] Enable more QCOM options: MSM_GCC_8996, MSM_MMCC_8996, QCOM_HIDMA, + QCOM_HIDMA_MGMT, PCIE_QCOM, PINCTRL_MSM8996, QCOM_Q6V5_PIL. + * [arm64] Enable support for BCM2837 (Raspberry Pi 3): + - Enable ARCH_BCM2835, DMA_BCM2835, BCM2835_MBOX, RASPBERRYPI_FIRMWARE, + RASPBERRYPI_POWER + - Enable DRM_VC4, I2C_BCM2835, PWM_BCM2835, SPI_BCM2835, SPI_BCM2835AUX, + BCM2835_WDT, SND_BCM2835_SOC_I2S, MMC_SDHCI_IPROC, HW_RANDOM_BCM2835 + as modules + * [arm64] Enable USB_DWC2 and USB_DWC3. + * [arm64] Enable more HISI options: MFD_HI655X_PMIC, REGULATOR_HI655X, + STUB_CLK_HI6220, HI6220_MBOX, COMMON_RESET_HI6220, PHY_HI6220_USB, + HW_RANDOM_HISI, DRM_HISI_KIRIN, INPUT_HISI_POWERKEY, PCI_HISI, + SPI_HISI_SFC, SCSI_HISI_SAS (Closes: #821027). + * [arm64] Enable TI WLAN (WLAN_VENDOR_TI): WL1251, WL12XX, WL18XX + * [arm64] Enable Hisilicon Ethernet devices: HIX5HD2_GMAC, HISI_FEMAC, + HIP04_ETH, HNS_MDIO, HNS, HNS_DSAF, HNS_ENET, MDIO_HISI_FEMAC + + [ Ben Hutchings ] + * Update config for 4.8: + - Enable HID_LED as module instead of USB_LED + - Enable BH1780 as module instead of SENSORS_BH1780 + - [alpha] Enable RTC_CLASS and RTC_DRV_ALPHA instead of GEN_RTC + - [armhf] Rename omapdrm display config symbols + - [armhf] Enable IIO_ST_ACCEL_3AXIS as module instead of LIS3L02DQ + - [hppa] Enable RTC_CLASS and RTC_DRV_GENERIC instead of GEN_RTC + * liblockdep: Stop trying to build packages, as it failed to build again + * linux-doc: Build and install HTML pages from reStructuredText sources + - Add python-sphinx and python-sphinx-rtd-theme to Build-Depends-Indep + - Install files from both HTML output directories into the package + - Exclude RST sources from the package + + -- Ben Hutchings Wed, 07 Sep 2016 21:52:47 +0100 + +linux (4.7.8-1) unstable; urgency=high + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.7 + - cpuset: handle race between CPU hotplug and cpuset_hotplug_work + - cgroup: fix invalid controller enable rejections with cgroup namespace + - scripts/recordmcount.c: account for .softirqentry.text + - mm,ksm: fix endless looping in allocating memory when ksm enable + - can: dev: fix deadlock reported after bus-off + - [x86] init: Fix cr4_init_shadow() on CR4-less machines + - drm/udl: fix line iterator in damage handling + - drm/nouveau/fifo/nv04: avoid ramht race against cookie insertion + - drm/radeon/si/dpm: add workaround for for Jet parts + - [armel,armhf] 8616/1: dt: Respect property size when parsing CPUs + - [armel,armhf] 8617/1: dma: fix dma_max_pfn() + - mwifiex: illegal assignment + - i40e: avoid null pointer dereference + - pinctrl: Flag strict is a field in struct pinmux_ops + - i2c: mux: demux-pinctrl: run properly with multiple instances + - rcuperf: Don't treat gp_exp mis-setting as a WARN + - [armhf,arm64] drivers/perf: arm_pmu: Fix leak in error path + - perf/core: Use this_cpu_ptr() when stopping AUX events + - [armhf,arm64] mmc: tegra: Only advertise UHS modes if IO regulator is + present + - nvmem: Declare nvmem_cell_read() consistently + - hwmon: (adt7411) set bit 3 in CFG1 register + - sched/cputime: Fix prev steal time accouting during CPU hotplug + - iwlwifi: mvm: checksum IPv6 fragmented packet + - iwlwifi: mvm: fix txq aggregation bug + - iwlwifi: mvm: write the correct internal TXF index + - iwlwifi: mvm: unmap the paging memory before freeing it + - iwlwifi: pcie: fix access to scratch buffer + - iwlwifi: mvm: free RX reorder buffer on restart + - iwlwifi: mvm: avoid harmless -Wmaybe-uninialized warning + - iwlwifi: mvm: don't use ret when not initialised + - [armhf] usb: gadget: fsl_qe_udc: signedness bug in qe_get_frame() + - mac80211: check skb_linearize() return value + - i40iw: Protect req_resource_num update + - i40iw: Add missing check for interface already open + - i40iw: Change mem_resources pointer to a u8 + - i40iw: Fix double free of allocated_buffer + - i40iw: Do not set self-referencing pointer to NULL after kfree + - i40iw: Avoid writing to freed memory + - i40iw: Add missing NULL check for MPA private data + - i40iw: Send last streaming mode message for loopback connections + - i40iw: Update hw_iwarp_state + - i40iw: Receive notification events correctly + - batman-adv: Add missing refcnt for last_candidate + - batman-adv: fix elp packet data reservation + - [armhf,arm64] irqchip/gicv3: Silence noisy DEBUG_PER_CPU_MAPS warning + - [armhf] 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7 + - [arm64] debug: avoid resetting stepping state machine when TIF_SINGLESTEP + - [mips*] uprobes: remove incorrect set_orig_insn + - [mips*] fix uretprobe implementation + - [mips*/*-malta] Fix IOCU disable switch read for MIPS64 + - [mips*] uprobes: fix use of uninitialised variable + - printk: fix parsing of "brl=" option + - Bluetooth: split sk_filter in l2cap_sock_recv_cb + - tpm: fix byte-order for the value read by tpm2_get_tpm_pt + - regulator: pwm: Fix regulator ramp delay for continuous mode + - [arm64] regulator: qcom_spmi: Add support for S4 supply on pm8941 + - [arm64] regulator: qcom_spmi: Add support for get_mode/set_mode on + switches + - [arm64] regulator: qcom_spmi: Update mvs1/mvs2 switches on pm8941 + - [arm64] regulator: qcom_smd: Fix voltage ranges for pm8x41 + - [arm64] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and + pldo + - [armhf] dts: imx6sx-sabreauto: Fix misspelled property + - [armhf] sun5i: Fix typo in trip point temperature + - pcmcia: ds: fix suspend/resume + - [armhf] hwrng: omap - Fix assumption that runtime_get_sync will always + succeed + - blk-mq: actually hook up defer list when running requests + - pstore: drop file opened reference count + - fm10k: fix incorrect index calculation in fm10k_write_reta + - iwlmvm: mvm: set correct state in smart-fifo configuration + - [armhf,arm64] em28xx-i2c: rt_mutex_trylock() returns zero on failure + - gspca: avoid unused variable warnings + - ath9k: Fix programming of minCCA power threshold + - qla2xxx: Fix BBCR offset + - fnic: pci_dma_mapping_error() doesn't return an error code + - tracing: Have HIST_TRIGGERS select TRACING + - NFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup + - svc: Avoid garbage replies when pc_func() returns rpc_drop_reply + - NFS: Don't drop CB requests with invalid principals + - pNFS/files: Fix layoutcommit after a commit to DS + - pNFS/flexfiles: Fix layoutcommit after a commit to DS + - watchdog: core: Clear WDOG_HW_RUNNING before calling the stop function + - xprtrdma: Remove FMRs from the unmap list after unmapping + - [x86] ASoC: Intel: Skylake: Fix error return code in skl_probe() + - brcmfmac: Fix glob_skb leak in brcmf_sdiod_recv_chain + - brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill + - brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get() + - [powerpc*] prom: Fix sub-processor option passed to ibm, + client-architecture-support + - sysctl: handle error writing UINT_MAX to u32 fields + - IB/core: Fix possible memory leak in cma_resolve_iboe_route() + - kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd + - SUNRPC: Silence WARN_ON when NFSv4.1 over RDMA is in use + - pNFS/flexfiles: Fix layoutstat periodic reporting + - lib/test_hash.c: fix warning in preprocessor symbol evaluation + - [x86] KVM: nVMX: postpone VMCS changes on MSR_IA32_APICBASE write + - ceph: do not modify fi->frag in need_reset_readdir() + - IB/ipoib: Fix memory corruption in ipoib cm mode connect flow + - ath10k: fix get rx_status from htt context + - IB/core: Fix use after free in send_leave function + - regmap: rbtree: Avoid overlapping nodes + - scsi: ses: use scsi_is_sas_rphy instead of is_sas_attached + - IB/ipoib: Don't allow MC joins during light MC flush + - IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV + - IB/mlx4: Fix code indentation in QP1 MAD flow + - IB/mlx4: Use correct subnet-prefix in QP1 mads under SR-IOV + - IB/mlx5: Enable MAD_IFC commands for IB ports only + - IB/mlx5: Set source mac address in FTE + - batman-adv: remove unused callback from batadv_algo_ops struct + - aio: mark AIO pseudo-fs noexec + - dm log writes: fix bug with too large bios + - usb: misc: legousbtower: Fix NULL pointer deference + - [x86] usb: usbip: vudc: fix left shift overflow + - Revert "usbtmc: convert to devm_kzalloc" + - [x86] ALSA: hda - Adding one more ALC255 pin definition for headset + problem + - [x86] ALSA: hda - Fix headset mic detection problem for several Dell + laptops + - [x86] ALSA: hda - Add the top speaker pin config for HP Spectre x360 + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.8 + - [powerpc*] pseries: use pci_host_bridge.release_fn() to kfree(phb) + - [powerpc*] cxl: use pcibios_free_controller_deferred() when removing + vPHBs + - timekeeping: Fix __ktime_get_fast_ns() regression + - ALSA: ali5451: Fix out-of-bound position reporting + - ALSA: usb-audio: Extend DragonFly dB scale quirk to cover other variants + - mfd: rtsx_usb: Avoid setting ucr->current_sg.status + - [x86] xen: Update topology map for PV VCPUs + - [powerpc*] KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2 + register + - [arm64] KVM: arm64: Require in-kernel irqchip for PMU support + - [arm64] KVM: arm/arm64: vgic: Don't flush/sync without a working vgic + - [powerpc*] KVM: PPC: BookE: Fix a sanity check + - [arm64] fix dump_backtrace/unwind_frame with NULL tsk + - [x86] boot: Fix kdump, cleanup aborted E820_PRAM max_pfn manipulation + - [x86] irq: Prevent force migration of irqs which are not in the vector + domain + - [x86] apic: Get rid of apic_version[] array + - [x86] arch/x86: Handle non enumerated CPU after physical hotplug + - [x86] dumpstack: Fix x86_32 kernel_stack_pointer() previous stack access + - [armhf] dts: mvebu: armada-390: add missing compatibility string and + bracket + - [arm64] dts: MSM8064 remove flags from SPMI/MPP IRQs + - [arm64] cpuidle: Fix error return code + - [x86] tpm: fix a race condition in tpm2_unseal_trusted() + - [x86] tpm_crb: fix crb_req_canceled behavior + + [ Ben Hutchings ] + * net: add recursion limit to GRO (CVE-2016-7039) + * posix_acl: Clear SGID bit when setting file permissions (CVE-2016-7097) + * scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer() (CVE-2016-7425) + + [ Salvatore Bonaccorso ] + * KEYS: Fix short sprintf buffer in /proc/keys show function (CVE-2016-7042) + * mm: remove gup_flags FOLL_WRITE games from __get_user_pages() + (CVE-2016-5195) + + -- Salvatore Bonaccorso Wed, 19 Oct 2016 17:56:57 +0200 + +linux (4.7.6-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.6 + - [arm64] crypto: arm64/aes-ctr - fix NULL dereference in tail processing + - [armhf] crypto: arm/aes-ctr - fix NULL dereference in tail processing + - crypto: skcipher - Fix blkcipher walk OOM crash + - crypto: echainiv - Replace chaining with multiplication + - ocfs2/dlm: fix race between convert and migration + - ocfs2: fix start offset to ocfs2_zero_range_for_truncate() + - Revert "ocfs2: bump up o2cb network protocol version" + - autofs: use dentry flags to block walks during expire + - xfs: prevent dropping ioend completions during buftarg wait + - mm: fix the page_swap_info() BUG_ON check + - fsnotify: add a way to stop queueing events on group shutdown + - fanotify: fix list corruption in fanotify_get_response() + - mm: memcontrol: make per-cpu charge cache IRQ-safe for socket accounting + - cgroup: duplicate cgroup reference when cloning sockets + - fix fault_in_multipages_...() on architectures with no-op access_ok() + - KEYS: Fix skcipher IV clobbering + - [arm64] Call numa_store_cpu_info() earlier. + - configfs: Return -EFBIG from configfs_write_bin_file. + - [armhf] mtd: nand: mxc: fix obiwan error in + mxc_nand_v[12]_ooblayout_free() functions + - mtd: spi-nor: fix wrong "fully unlocked" test + - reset: Return -ENOTSUPP when not configured + - rtc: ds1307: Fix relying on reset value for weekday + - [arm64] power: reset: hisi-reboot: Unmap region obtained by of_iomap + - mac80211: reject TSPEC TIDs (TSIDs) for aggregation + - fix memory leaks in tracing_buffers_splice_read() + - tracing: Move mutex to protect against resetting of seq data + - mm: delete unnecessary and unsafe init_tlb_ubc() + - iwlwifi: mvm: update TX queue before making a copy of the skb + - nl80211: validate number of probe response CSA counters + - btrfs: ensure that file descriptor used with subvol ioctls is a dir + - [x86] efi: Only map RAM into EFI page tables if in mixed-mode + - [x86] i2c-eg20t: fix race between i2c init and interrupt enable + - [armhf] i2c: mux: pca954x: retry updating the mux selection on failure + - [arm64] i2c: qup: skip qup_i2c_suspend if the device is already runtime + suspended + - [mips*] SMP: Fix possibility of deadlock when bringing CPUs online + - [mips*] Avoid a BUG warning during prctl(PR_SET_FP_MODE, ...) + - [mips*] Add a missing ".set pop" in an early commit + - [x86] mm/pat: Prevent hang during boot when mapping pages + - libceph: add an ONSTACK initializer for oids + - ceph: fix symbol versioning for ceph_monc_do_statfs + - ceph: Correctly return NXIO errors from ceph_llseek + - libceph: fix return value check in alloc_msg_with_page_vector() + - PM / hibernate: Restore processor state before using per-CPU variables + - PM / hibernate: Fix rtree_next_node() to avoid walking off list ends + - ixgbe: Force VLNCTRL.VFE to be set in all VMDq paths + - ixgbe: Re-enable ability to toggle VLAN filtering + - igb: fix adjusting PTP timestamps for Tx/Rx latency + - [armhf,arm64] soc/tegra: pmc: Don't probe PMC if early initialisation + fails + - qxl: check for kmap failures + - hostfs: Freeing an ERR_PTR in hostfs_fill_sb_common() + - iw_cxgb4: stop MPA_REPLY timer when disconnecting + + [ Ben Hutchings ] + * debian/bin/gencontrol.py: Fix cross-build-dependencies if invoked under + dpkg-buildpackage + * linux-image: Exclude vmlinux from stripping by dh_strip (fixes FTBFS + on hppa) + * udeb: Fold core-modules into kernel-image + * udeb: Move nls_utf8 from fat-modules to kernel-image, as many other + filesystems need it but vfat no longer does + * of_mdio: Enable fixed PHY support if driver is a module + * of_mdio: select fixed phy support unconditionally + * [armhf] Enable driver for SolidRun ClearFog: USB_XHCI_MVEBU as module + * mm: memcontrol: use special workqueue for creating per-memcg caches + + [ Cyril Brulebois ] + * Add nls_ascii to the fat-modules udeb, following the change of + iocharset default in 4.7.2-1. This fixes a regression with EFI-related + mounts within the Debian Installer. (Closes: #839552) + + -- Ben Hutchings Fri, 07 Oct 2016 02:11:50 +0100 + +linux (4.7.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.5 + - [armhf] clocksource/drivers/sun4i: Clear interrupts after stopping timer + in probe function + - fscrypto: require write access to mount to set encryption policy + - [arm64] drm/msm: protect against faults from copy_from_user() in submit + ioctl + - bpf: fix method of PTR_TO_PACKET reg id generation + - ipv4: panic in leaf_walk_rcu due to stale node pointer + - vti: flush x-netns xfrm cache when vti interface is removed + - bpf: fix write helpers with regards to non-linear parts + - net/irda: handle iriap_register_lsap() allocation failure + - net/sctp: always initialise sctp_ht_iter::start_fail + - net: ipv6: Do not keep IPv6 addresses when IPv6 is disabled + - tipc: fix NULL pointer dereference in shutdown() + - net/mlx5: Fix pci error recovery flow + - net/mlx5: Added missing check of msg length in verifying its signature + - net/mlx5e: Use correct flow dissector key on flower offloading + - net sched: fix encoding to use real length + - udp: fix poll() issue with zero sized packets + - tcp: properly scale window in tcp_v[46]_reqsk_send_ack() + - sctp: fix overrun in sctp_diag_dump_one() + - tun: fix transmit timestamp support + - [armhf] net: dsa: bcm_sf2: Fix race condition while unmasking interrupts + - Revert "phy: IRQ cannot be shared" + - net: smc91x: fix SMC accesses + - bridge: re-introduce 'fix parsing of MLDv2 reports' + - bonding: Fix bonding crash + - Revert "af_unix: Fix splice-bind deadlock" + - af_unix: split 'u->readlock' into two: 'iolock' and 'bindlock' + - ipv6: release dst in ping_v6_sendmsg + - [arm64] bnxt_en: Fix TX push operation on ARM64. + - ipv6: addrconf: fix dev refcont leak when DAD failed + - tcp: fastopen: avoid negative sk_forward_alloc + - net/mlx5e: Fix parsing of vlan packets when updating lro header + - tcp: cwnd does not increase in TCP YeAH + - [powerpc*] tm: do not use r13 for tabort_syscall + - [powerpc*] powernv : Drop reference added by kset_find_obj() + - [powerpc*] sysdev: cpm: fix gpio save_regs functions + - [powerpc*] mm: Don't alias user region to other regions below PAGE_OFFSET + - [powerpc*] powernv: Fix corrupted PE allocation bitmap on releasing PE + - kernfs: don't depend on d_find_any_alias() when generating notifications + - pNFS/flexfiles: Fix an Oopsable condition when connection to the DS fails + - pNFS: The client must not do I/O to the DS if it's lease has expired + - NFSv4.1: Fix Oopsable condition in server callback races + - NFSv4.x: Fix a refcount leak in nfs_callback_up_net + - nfsd: Close race between nfsd4_release_lockowner and nfsd4_lock + - pNFS: Ensure LAYOUTGET and LAYOUTRETURN are properly serialised + - NFSv4.1: Fix the CREATE_SESSION slot number accounting + - kexec: fix double-free when failing to relocate the purgatory + - mm, mempolicy: task->mempolicy must be NULL before dropping final + reference + - ahci: disable correct irq for dummy ports + - audit: fix exe_file access in audit_exe_compare + - dm flakey: fix reads to be issued if drop_writes configured + - IB/hfi1,IB/qib: Fix qp_stats sleep with rcu read lock held + - IB/uverbs: Fix race between uverbs_close and remove_one + - IB/hfi1: Reset QSFP on every run through channel tuning + - [amd64] mm: fix cache mode of dax pmd mappings + - [x86] paravirt: Do not trace _paravirt_ident_*() functions + - [x86] AMD: Apply erratum 665 on machines without a BIOS fix + - [s390x] KVM: don't use current->thread.fpu.* when accessing registers + - [armhf,arm64] kvm-arm: Unmap shadow pagetables properly + - [x86] kvm: correctly reset dest_map->vector when restoring LAPIC state + - iio: sw-trigger: Fix config group initialization + - [armhf] iio: adc: rockchip_saradc: reset saradc controller before + programming it + - [armhf] iio: adc: ti_am335x_adc: Protect FIFO1 from concurrent access + - [armhf] iio: adc: ti_am335x_adc: Increase timeout value waiting for ADC + sample + - iio:ti-ads1015: fix a wrong pointer definition. + - [x86] iio: accel: bmc150: reset chip at init time + - iio: fix pressure data output unit in hid-sensor-attributes + - iio:core: fix IIO_VAL_FRACTIONAL sign handling + - iio: ensure ret is initialized to zero before entering do loop + - serial: 8250_mid: fix divide error bug if baud rate is 0 + - serial: 8250: added acces i/o products quad and octal serial cards + - [armhf,arm64] usb: chipidea: udc: fix NULL ptr dereference in + isr_setup_status_phase + - USB: change bInterval default to 10 ms + - devpts: return NULL pts 'priv' entry for non-devpts nodes + - cpuset: make sure new tasks conform to the current config of the cpuset + - [armhf] dts: rockchip: add reset node for the exist saradc SoCs + - [armhf] imx6: add missing BM_CLPCR_BYP_MMDC_CH0_LPM_HS setting for imx6ul + - [armhf] imx6: add missing BM_CLPCR_BYPASS_PMIC_READY setting for imx6sx + - [armel] kirkwood: ib62x0: fix size of u-boot environment partition + - [armhf] OMAP3: hwmod data: Add sysc information for DSI + - [armel] dts: kirkwood: Fix PCIe label on OpenRD + - [armhf] dts: imx6qdl: Fix SPDIF regression + - [armhf] dts: armada-388-clearfog: number LAN ports properly + - dm log writes: fix check of kthread_run() return value + - dm crypt: fix free of bad values after tfm allocation failure + - dm log writes: move IO accounting earlier to fix error path + - dm crypt: fix error with too large bios + - [armhf] pinctrl: sunxi: fix uart1 CTS/RTS pins at PG on A23/A33 + - [armhf] memory: omap-gpmc: allow probe of child nodes to fail + - [arm64] spinlocks: implement smp_mb__before_spinlock() as smp_mb() + - crypto: cryptd - initialize child shash_desc on import + - Btrfs: remove root_log_ctx from ctx list before btrfs_sync_log returns + - fuse: direct-io: don't dirty ITER_BVEC pages + - xhci: fix null pointer dereference in stop command timeout function + - brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap() + - md-cluster: make md-cluster also can work when compiled into kernel + - ath9k: fix using sta->drv_priv before initializing it + - ath9k: bring back direction setting in ath9k_{start_stop} + - [x86] perf/intel: Fix PEBSv3 record drain + - [x86] perf/intel/cqm: Check cqm/mbm enabled state in event init + - [x86] perf/amd: Make HW_CACHE_REFERENCES and HW_CACHE_MISSES measure L2 + - [x86] perf/intel/pt: Fix an off-by-one in address filter configuration + - [x86] perf/intel/pt: Fix kernel address filter's offset validation + - [x86] perf/intel/pt: Do validate the size of a kernel address filter + - Revert "wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel" + - sched/core: Fix a race between try_to_wake_up() and a woken up task + - ipv6: Don't unset flowi6_proto in ipxip6_tnl_xmit() + - efi: Make for_each_efi_memory_desc_in_map() cope with running on Xen + - efi/libstub: Allocate headspace in efi_get_memory_map() + - efi/libstub: Introduce ExitBootServices helper + - efi/libstub: Use efi_exit_boot_services() in FDT + - [x86] efi: Use efi_exit_boot_services() + - [powerpc,powerpcspe] Fix csum_partial_copy_generic() + - [powerpc,powerpcspe] Fix again csum_partial_copy_generic() + - [x86] drm/i915: Ignore OpRegion panel type except on select machines + - [x86] drm: Only use compat ioctl for addfb2 on X86/IA64 + - svcauth_gss: Revert 64c59a3726f2 ("Remove unnecessary allocation") + - genirq: Provide irq_gc_{lock_irqsave,unlock_irqrestore}() helpers + - fix iov_iter_fault_in_readable() + - [x86] fix minor infoleak in get_user_ex() + - [s390x] get_user() should zero on failure + - asm-generic: make get_user() clear the destination on errors + - asm-generic: make copy_from_user() zero the destination properly + - [alpha,hppa,mips*,powerpc,powerpcspe,sh4] make copy_from_user() zero the + destination properly + + [ Ben Hutchings ] + * [hppa,mips*,powerpc*] linux-image: Strip debug symbols from vmlinux + (really closes: #837588) + * [hppa] tracing: Re-enable FTRACE + * [powerpc,powerpcspe,ppc64] linux-image: Suppress automatic dbgsym packages + * uaccess,uio: Fix ABI changes in 4.7.5 + * ext4: Fix checksum validation for inodes with small i_extra_isize + (Closes: #838544, regression in 4.7.4) + + -- Ben Hutchings Mon, 26 Sep 2016 01:48:21 +0100 + +linux (4.7.4-2) unstable; urgency=medium + + * [arm64] Revert "arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO" + (fixes FTBFS) + * [armhf] media: Disable VIDEO_V4L2_SUBDEV_API and VIDEO_OMAP3 to avoid ABI + change (fixes FTBFS) + * [hppa] Ignore ABI changes caused by disabling CONFIG_FTRACE (fixes FTBFS) + + -- Ben Hutchings Mon, 19 Sep 2016 22:09:42 +0100 + +linux (4.7.4-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.3 + - [x86] mm: Disable preemption during CR3 read+write + - [x86] uprobes: Fix RIP-relative handling of EVEX-encoded instructions + - [x86] platform/uv: Skip UV runtime services mapping in the + efi_runtime_disabled case + - SUNRPC: Handle EADDRNOTAVAIL on connection failures + - SUNRPC: allow for upcalls for same uid but different gss service + - [x86] ALSA: hda - Manage power well properly for resume + - efi/capsule: Allocate whole capsule into virtual memory + - virtio: fix memory leak in virtqueue_add() + - vfio/pci: Fix NULL pointer oops in error interrupt setup handling + - tracing: Fix tick_stop tracepoint symbols for user export + - [x86] perf intel-pt: Fix occasional decoding errors when tracing + system-wide + - [amd64] libnvdimm, nd_blk: mask off reserved status bits + - ACPI: CPPC: Return error if _CPC is invalid on a CPU + - ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid data + - genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP + - genirq/msi: Make sure PCI MSIs are activated early + - usb: ehci: change order of register cleanup during shutdown + - usb: devio, do not warn when allocation fails + - usb: misc: usbtest: add fix for driver hang + - usb: misc: usbtest: usbtest_do_ioctl may return positive integer + - usb: dwc3: gadget: increment request->actual once + - usb: dwc3: gadget: fix for short pkts during chained xfers + - usb: dwc3: gadget: always cleanup all TRBs + - usb: hub: Fix unbalanced reference count/memory leak/deadlocks + - USB: hub: fix up early-exit pathway in hub_activate + - USB: hub: change the locking in hub_activate + - USB: validate wMaxPacketValue entries in endpoint descriptors + - usb/gadget: fix gadgetfs aio support. + - xhci: always handle "Command Ring Stopped" events + - usb: xhci: Fix panic if disconnect + - xhci: don't dereference a xhci member after removing xhci + - USB: serial: fix memleak in driver-registration error path + - uprobes: Fix the memcg accounting + - perf symbols: Fix annotation of objects with debuginfo files + - perf/core: Fix event_function_local() + - perf tools mem: Fix -t store option for record command + - iommu/dma: Don't put uninitialised IOVA domains + - [armhf] iommu/io-pgtable-arm-v7s: Fix attributes when splitting blocks + - [armhf,arm64] iommu/arm-smmu: Fix CMDQ error handling + - [armhf,arm64] iommu/arm-smmu: Disable stalling faults for all endpoints + - [armhf,arm64] iommu/arm-smmu: Don't BUG() if we find aborting STEs with + disable_bypass + - [x86] pinctrl/amd: Remove the default de-bounce time + - i2c: mux: demux-pinctrl: properly roll back when adding adapter fails + - [s390x] dasd: fix hanging device after clear subchannel + - mac80211: fix purging multicast PS buffer queue + - [arm64] kernel: avoid literal load of virtual address with MMU off + - [arm64] avoid TLB conflict with CONFIG_RANDOMIZE_BASE + - [arm64] dts: rockchip: add reset saradc node for rk3368 SoCs + - [arm64] kernel: Fix unmasked debug exceptions when restoring mdscr_el1 + - of: fix reference counting in of_graph_get_endpoint_by_regs + - iio: fix sched WARNING "do not call blocking ops when !TASK_RUNNING" + - [x86] drm/amdgpu: Change GART offset to 64-bit + - [x86] drm/amdgpu: fix amdgpu_move_blit on 32bit systems + - [x86] drm/amdgpu: fix lru size grouping v2 + - [x86] drm/amdgpu: avoid a possible array overflow + - [x86] drm/amdgpu: skip TV/CV in display parsing + - [x86] drm/amd/amdgpu: sdma resume fail during S4 on CI + - [x86] drm/amd/amdgpu: compute ring test fail during S4 on CI + - [x86] drm/amdgpu: record error code when ring test failed + - [x86] drm/i915: Fix iboost setting for DDI with 4 lanes on SKL + - [x86] drm/i915: Program iboost settings for HDMI/DVI on SKL + - [x86] drm/i915: Fix iboost setting for SKL Y/U DP DDI buffer translation + entry 2 + - [x86] drm/i915: Acquire audio powerwell for HD-Audio registers + - [x86] drm/i915: fix aliasing_ppgtt leak + - [x86] drm/i915/vlv: Make intel_crt_reset() per-encoder + - [x86] drm/i915/vlv: Reset the ADPA in vlv_display_power_well_init() + - [x86] drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() + - [x86] drm/i915: Enable polling when we don't have hpd + - [arm64] mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper + - [arm64] i2c: cros-ec-tunnel: Fix usage of cros_ec_cmd_xfer() + - cdc-acm: fix wrong pipe type on rx interrupt xfers + - mpt3sas: Fix resume on WarpDrive flash cards + - megaraid_sas: Fix probing cards without io port + - dm round robin: do not use this_cpu_ptr() without having preemption + disabled + - gpio: Fix OF build problem on UM + - fs/seq_file: fix out-of-bounds read + - soft_dirty: fix soft_dirty during THP split + - [amd64] dax: fix device-dax region base + - [amd64] mm: silently skip readahead for DAX inodes + - btrfs: waiting on qgroup rescan should not always be interruptible + - btrfs: properly track when rescan worker is running + - btrfs: don't create or leak aliased root while cleaning up orphans + - Revert "floppy: fix open(O_ACCMODE) for ioctl-only open" + - Input: synaptics-rmi4 - fix register descriptor subpacket map construction + - [x86] crypto: qat - fix aes-xts key sizes + - USB: avoid left shift by -1 + - usb: chipidea: udc: don't touch DP when controller is in host mode + - USB: fix typo in wMaxPacketSize validation + - usb: gadget: udc: core: don't starve DMA resources + - USB: serial: mos7720: fix non-atomic allocation in write path + - USB: serial: mos7840: fix non-atomic allocation in write path + - [x86] staging/lustre/llite: Close atomic_open race with several openers + - [x86] staging: comedi: daqboard2000: bug fix board type matching code + - [x86] staging: comedi: comedi_test: fix timer race conditions + - [x86] staging: comedi: ni_mio_common: fix AO inttrig backwards + compatibility + - [x86] staging: comedi: ni_mio_common: fix wrong insn_write handler + - ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY macro + - ACPI / drivers: replace acpi_probe_lock spinlock with mutex + - ALSA: line6: Remove double line6_pcm_release() after failed acquire. + - ALSA: line6: Give up on the lock while URBs are released. + - ALSA: line6: Fix POD sysfs attributes segfault + - hwmon: (it87) Add missing sysfs attribute group terminator + - hwmon: (iio_hwmon) fix memory leak in name attribute + - sysfs: correctly handle read offset on PREALLOC attrs + - SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.4 + - Revert "floppy: refactor open() flags handling" + - apparmor: fix refcount race when finding a child profile + - fs: Check for invalid i_uid in may_follow_link() + - cred: Reject inodes with invalid ids in set_create_file_as() + - ext4: validate that metadata blocks do not overlap superblock + - ext4: fix xattr shifting when expanding inodes + - ext4: fix xattr shifting when expanding inodes part 2 + - ext4: properly align shifted xattrs when expanding inodes + - ext4: avoid deadlock when expanding inode size + - ext4: avoid modifying checksum fields directly during checksum + verification + - block: Fix race triggered by blk_set_queue_dying() + - block: make sure a big bio is split into at most 256 bvecs + - cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork + - cdc-acm: added sanity checking for probe() + - drm/radeon: fix radeon_move_blit on 32bit systems + - drm/radeon: only apply the SS fractional workaround to RS[78]80 + - drm/atomic: Don't potentially reset color_mgmt_changed on successive + property updates. + - drm: Reject page_flip for !DRIVER_MODESET + - [arm64] drm/msm: fix use of copy_from_user() while holding spinlock + - [armhf] drm/vc4: Use drm_free_large() on handles to match its allocation. + - [armhf] drm/vc4: Fix overflow mem unreferencing when the binner runs dry. + - [armhf] drm/vc4: Fix oops when userspace hands in a bad BO. + - xfs: fix superblock inprogress check + - timekeeping: Cap array access in timekeeping_debug + - xenbus: don't look up transaction IDs for ordinary writes + - ovl: proper cleanup of workdir + - ovl: don't copy up opaqueness + - ovl: remove posix_acl_default from workdir + - ovl: listxattr: use strnlen() + - ovl: fix workdir creation + - mei: me: disable driver on SPT SPS firmware + - ubifs: Fix xattr generic handler usage + - ubifs: Fix assertion in layout_in_gaps() + - bdev: fix NULL pointer dereference + - bcache: RESERVE_PRIO is too small by one when prio_buckets() is a power + of two. + - [mips*/*-malta] irqchip/mips-gic: Implement activate op for device domain + - vhost/scsi: fix reuse of &vq->iov[out] in response + - [x86] apic: Do not init irq remapping if ioapic is disabled + - xprtrdma: Create common scatterlist fields in rpcrdma_mw + - crypto: caam - fix IV loading for authenc (giv)decryption + - fscrypto: add authorization check for setting encryption policy + - fscrypto: only allow setting encryption policy on directories + - ALSA: firewire-tascam: accessing to user space outside spinlock + - ALSA: fireworks: accessing to user space outside spinlock + - ALSA: rawmidi: Fix possible deadlock with virmidi registration + - ALSA: timer: fix NULL pointer dereference in read()/ioctl() race + - ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE + - ALSA: timer: fix NULL pointer dereference on memory allocation failure + - ALSA: timer: Fix zero-division by continue of uninitialized instance + - scsi: fix upper bounds check of sense key in scsi_sense_key_string() + - cpufreq: dt: Add terminate entry for of_device_id tables + + [ Ben Hutchings ] + * [arm64] Add cpu_to_fdt32() when setting Secure Boot flag in FDT + * [amd64] Enable SIGNED_PE_FILE_VERIFICATION, KEXEC_FILE, + KEXEC_VERIFY_SIG, KEXEC_BZIMAGE_VERIFY_SIG + * i8042: Revert ABI break in 4.7.3 + * mm, oom: prevent premature OOM killer invocation for high order request + (regression in 4.7) + * [arm64] pinctrl: Enable PINCTRL_SINGLE as built-in, needed for HiKey SoCs + * [hppa] Disable FTRACE due to huge size cost (Closes: #837588) + * [powerpcspe] xmon: Don't use ld on 32-bit (Closes: #836741) + * liblockdep-dev: Add dependency on liblockdep (Closes: #837710) + * xen-linux-system: Relax dependency on linux-image to allow for version + suffix added by linux-signed + * [armhf] Enable drivers for Novena: MFD_STMPE as built-in; DRM_PANEL_SIMPLE, + MMA8452, TOUCHSCREEN_STMPE, BATTERY_SBS, BACKLIGHT_PWM, SND_SOC_IMX_ES8328 + as modules (Closes: #837627, thanks to Vagrant Cascadian) + * linux-image: postrm: Make failure of rmdir on purge non-fatal + (Closes: #836282) + * [armhf] Enable drivers and options for OpenPandora console: POWER_AVS_OMAP + as built-in; DISPLAY_CONNECTOR_ANALOG_TV, DISPLAY_PANEL_TPO_TD043MTEA1, + SENSORS_TWL4030_MADC, VIDEO_OMAP3, BATTERY_TWL4030_MADC, BACKLIGHT_PANDORA, + HDQ_MASTER_OMAP as modules; OMAP2_DSS_DSI (Closes: #835893, thanks to + Vagrant Cascadian) + * bug script: Stop describing TAINT_UNSIGNED_MODULE as expected + + -- Ben Hutchings Sun, 18 Sep 2016 14:56:01 +0100 + +linux (4.7.2-1) unstable; urgency=medium + + * New upstream release: https://kernelnewbies.org/Linux_4.7 + - media: fix airspy usb probe error path (CVE-2016-5400) + - libata: LITE-ON CX1-JB256-HP needs lower max_sectors (Closes: #830971) + - tcp: make challenge acks less predictable (CVE-2016-5696) + * New stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.1 + - vfs: ioctl: prevent double-fetch in dedupe ioctl (CVE-2016-6516) + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.7.2 + - [powerpc*] KVM: Book3S HV: Save/restore TM state in H_CEDE (CVE-2016-5412) + - audit: fix a double fetch in audit_log_single_execve_arg() (CVE-2016-6136) + + [ Ben Hutchings ] + * sched: Enable SCHEDSTATS (Closes: #796674) + * Re-enable various config options disabled by name and type changes in 4.7: + - nfc: NFC_PN533_USB replaced NFC_PN533 + - [armhf] dsa: NET_DSA_MV88E6XXX replaced NET_DSA_MV88E6{123,131,171} + - [x86] ACPI: ACPI_TABLE_UPGRADE replaced ACPI_INITRD_TABLE_OVERRIDE + - rxrpc: Enable RXKAD as part of af_rxrpc module + - [x86] 8250: Enable SERIAL_8250_FINTEK as built-in + * cgroups: Enable memory controller by default + * [armfh] udeb: Add efi-modules + * linux-kbuild: Include headers_install.sh and unifdef (Closes: #832359) + * udeb: Include cdc_ncm in nic-usb-modules (Closes: #833918) + * usbip: Use the locally-installed + * Exclude redundant and unreproducible files from binary packages + (Closes: #830268) + - usbip: Put all autotools-generated files in the build directory + - linux-headers: Exclude all .cmd files + * [arm*] Enable SECCOMP (Closes: #833183) + * [hppa] Fix automatic selection of cr16 clocksource + * [hppa] Fix order of EREFUSED define in errno.h + * aufs: Update support patches to aufs4.7-20160822 (Closes: #834764) + * [powerpc*] ipmi: Enable IPMI_POWERNV as module (Closes: #833861) + * kbuild: Do not use hyphen in exported variable name (Closes: #833561) + * fat: Mitigate the lack of UTF-8 case folding by enabling + FAT_DEFAULT_UTF8 and setting FAT_DEFAULT_IOCHARSET to "ascii" + (Closes: #833238) + * [arm64] Add support for securelevel and Secure Boot (Closes: #831827, + thanks to Linn Crosetto): + - efi: Disable secure boot if shim is in insecure mode + - Add kernel config option to set securelevel when in Secure Boot mode + - Enable EFI_SECURE_BOOT_SECURELEVEL + * tcp: fix use after free in tcp_xmit_retransmit_queue() (CVE-2016-6828) + * aacraid: Check size values after double-fetch from user (CVE-2016-6480) + * liblockdep: Move dummy definition of prandom_u32() to fix missing + declaration + * debian/rules.real: Avoid error message when usbip's config.h doesn't exist + + [ Martin Michlmayr ] + * [armhf] Enable MMC_SDHCI_IPROC and HW_RANDOM_BCM2835 for BCM2835. + * [arm64] Add USB support for NVIDIA Jetson TX1 Developer Kit: + - pinctrl: max77620: add pincontrol driver for MAX77620/MAX20024 + - gpio: max77620: add gpio driver for MAX77620/MAX20024 + - gpio: max77620: Configure interrupt trigger level + - gpio: max77620: use the new open drain callback + - gpio: max77620: get gpio value based on direction + - arm64: tegra: Add PMIC support on Jetson TX1 + - arm64: tegra: p2597: Add SDMMC power supplies + - arm64: tegra: Add DSI panel on Jetson TX1 + - arm64: tegra: Add Tegra210 XUSB pad controller + - arm64: tegra: Add Tegra210 XUSB controller + - arm64: tegra: Enable debug serial on Jetson TX1 + - arm64: tegra: Enable XUSB controller on Jetson TX1 + - arm64: tegra: Correct Tegra210 XUSB mailbox interrupt + * [arm64] Enable REGULATOR_FIXED_VOLTAGE. + * [arm64] Enable ARM64_ERRATUM_834220. + * [arm64] Build in SERIAL_TEGRA. + * [arm64] Enable REGULATOR_PWM, DRM_PANEL_SIMPLE, BACKLIGHT_GENERIC + and BACKLIGHT_LP855X for Jetson TX1. + * [arm64] Enable BATTERY_BQ27XXX, MFD_CROS_EC_I2C, I2C_CROS_EC_TUNNEL + for Google Pixel C. + * [arm64] Enable more Qualcomm options: PINCTRL_QCOM_SPMI_PMIC, + SPMI_MSM_PMIC_ARB, QCOM_SPMI_IADC, QCOM_SPMI_VADC, MFD_SPMI_PMIC, + REGULATOR_QCOM_SPMI, QCOM_SPMI_TEMP_ALARM, CHARGER_QCOM_SMBB, + USB_CHIPIDEA, USB_HSIC_USB3503, RTC_DRV_PM8XXX, EXTCON_USB_GPIO, + QCOM_COINCELL, and INPUT_PM8941_PWRKEY. + + [ Uwe Kleine-König ] + * Fix perf to be able to find debug info based on build-id. (Closes: + #833096) + + [ Nicolas LE CAM ] + * [amd64] Suggest grub-efi-amd64 instead of grub-efi dummy transitionnal + package (Closes: #835459) + + -- Ben Hutchings Sun, 28 Aug 2016 15:56:10 +0100 + +linux (4.7~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Aurelien Jarno ] + * [mipsel] Remove loongson-2e and loongson-2f flavours (Closes: #827790). + * [mipsel/4kc-malta, mipsel/5kc-malta] Build for R2 ISA. + + [ Martin Michlmayr ] + * [armhf, arm64] Enable DRM_TEGRA_STAGING. + + [ Ben Hutchings ] + * [x86] KASLR, power: Remove x86 hibernation restrictions + * fanotify: Enable FANOTIFY_ACCESS_PERMISSIONS (Closes: #690737) + - Warn and taint kernel if this feature is actually used + * Define Auto-Built-Package field when running dpkg-gencontrol, as dpkg-source + doesn't like to see it in debian/control + * debian/lib/python/debian_linux/debian.py: Handle packages with only short + descriptions + * Change names and descriptions of linux-image debug symbol packages to match + debhelper + + [ Bastian Blank ] + * Mark debug symbols packages to move them into the debug archive. + * Build debug symbols for all images. + + -- Ben Hutchings Thu, 14 Jul 2016 13:35:22 +0100 + +linux (4.7~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [armel] Disable module signing for all flavours (fixes FTBFS) + + -- Ben Hutchings Tue, 21 Jun 2016 00:41:23 +0100 + +linux (4.7~rc3-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * bug script: Put binary package name and version in the info file so + linux-signed can easily replace them + * Move merge_packages function from debian/bin/gencontrol.py to + gencontrol module + * udeb: Drop packages for modules that will later be signed + * linux-image: Add '-unsigned' suffix to packages with modules that will + later be signed + - Add Conflicts and Replaces relations to signed packages (Closes: #827618) + * [rt] Disable until it is updated for 4.7 or later + * cpupower: Bump soname version and rename library package accordingly + * debian/rules.d/Makefile: Override architecture detection when building + userland headers + * linux-cpupower: Define PACKAGE_BUGREPORT to refer to reportbug, not upstream + * debian/README.source: Document the supported build profiles + * debian/control: Fix build-dependencies for cross-building + - Add workaround for libdpkg-perl bugs #827628, #827633 + * Add support for the nopython build profile, disabling the linux-perf package + * Fix build rules for userland tools to support cross-building + + [ Martin Michlmayr ] + * [armhf, arm64] Enable PHY_TEGRA_XUSB and USB_XHCI_TEGRA. + * [arm64] Enable MAX77620 and PCA9539 which are required by Jetson TX1. + * [arm64] Enable TEGRA210_ADMA. + * [arm64] Enable THERMAL. + * [armhf] Enable TEGRA_SOCTHERM. + * [armhf] Enable SPI_TEGRA114. + * [arm64] Enable more QCOM options (QCOM_SMP2P, QCOM_SMSM, QCOM_WCNSS_CTRL, + PHY_QCOM_UFS, QCOM_QFPROM). + + [ Aurelien Jarno ] + * [ppc64*] Enable SPAPR_TCE_IOMMU, VFIO and VFIO_PCI (Closes: #826367). + + -- Ben Hutchings Sat, 18 Jun 2016 23:50:39 +0100 + +linux (4.6.4-1) unstable; urgency=medium + + * Team upload. + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.4 + - net_sched: fix pfifo_head_drop behavior vs backlog + - act_ipt: fix a bind refcnt leak + - net: Don't forget pr_fmt on net_dbg_ratelimited for CONFIG_DYNAMIC_DEBUG + - sit: correct IP protocol used in ipip6_err + - esp: Fix ESN generation under UDP encapsulation + - netem: fix a use after free + - ipmr/ip6mr: Initialize the last assert time of mfc entries. + - Bridge: Fix ipv6 mc snooping if bridge has no ipv6 address + - sock_diag: do not broadcast raw socket destruction + - bpf, perf: delay release of BPF prog after grace period + - neigh: Explicitly declare RCU-bh read side critical section in neigh_xmit() + - AX.25: Close socket connection on session completion + - [powerpc] crypto: vmx - Increase priority of aes-cbc cipher + - crypto: user - re-add size check for CRYPTO_MSG_GETALG + - USB: uas: Fix slave queue_depth not being set + - usb: quirks: Fix sorting + - usb: quirks: Add no-lpm quirk for Acer C120 LED Projector + - [armhf] usb: musb: only restore devctl when session was set in backup + - [armhf] usb: musb: Stop bulk endpoint while queue is rotated + - [armhf] usb: musb: Ensure rx reinit occurs for shared_fifo endpoints + - [armhf] usb: musb: host: correct cppi dma channel for isoch transfer + - xhci: Cleanup only when releasing primary hcd + - usb: xhci-plat: properly handle probe deferral for devm_clk_get() + - USB: xhci: Add broken streams quirk for Frescologic device id 1009 + - xhci: Fix handling timeouted commands on hosts in weird states. + - USB: mos7720: delete parport + - usb: gadget: fix spinlock dead lock in gadgetfs + - [arm64, armhf] usb: host: ehci-tegra: Grab the correct UTMI pads reset + - usb: dwc3: exynos: Fix deferred probing storm. + + [ Uwe Kleine-König ] + * Cherry pick patches for rtc-s35390a from next. (Closes: #794266) + + [ Salvatore Bonaccorso ] + * apparmor: fix oops, validate buffer size in apparmor_setprocattr() + (CVE-2016-6187) + + [ Ben Hutchings ] + * bridge: Fix ABI change in 4.6.4 + * [rt] Update to 4.6.4-rt6 (no functional change) + + -- Salvatore Bonaccorso Mon, 18 Jul 2016 21:57:31 +0200 + +linux (4.6.3-1) unstable; urgency=medium + + [ Ben Hutchings ] + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.3 + - scsi_lib: correctly retry failed zero length REQ_TYPE_FS commands + - scsi: Add QEMU CD-ROM to VPD Inquiry Blacklist + - netlink: Fix dump skb leak/double free + - tipc: fix nametable publication field in nl compat + - switchdev: pass pointer to fib_info instead of copy + - tuntap: correctly wake up process during uninit + - bpf: Use mount_nodev not mount_ns to mount the bpf filesystem + - udp: prevent skbs lingering in tunnel socket queues + - uapi glibc compat: fix compilation when !__USE_MISC in glibc + - bpf, inode: disallow userns mounts + - [armhf] net: mvneta: Fix lacking spinlock initialization + - net: hwbm: Fix unbalanced spinlock in error case + - sfc: on MC reset, clear PIO buffer linkage in TXQs + - team: don't call netdev_change_features under team->lock + - net: alx: use custom skb allocator + - net: stmmac: Fix incorrect memcpy source memory + - vxlan: Accept user specified MTU value when create new vxlan link + - net: nps_enet: Disable interrupts before napi reschedule + - bpf, trace: use READ_ONCE for retrieving file ptr + - tcp: record TLP and ER timer stats in v6 stats + - bridge: Don't insert unnecessary local fdb entry on changing mac address + - l2tp: fix configuration passed to setup_udp_tunnel_sock() + - ipv6: Skip XFRM lookup if dst_entry in socket cache is valid + - [armhf,arm64] KVM: vgic-v2: Clear all dirty LRs + - [armhf,arm64] KVM: vgic-v3: Clear all dirty LRs + - [x86] KVM: fix OOPS after invalid KVM_SET_DEBUGREGS + - KVM: irqfd: fix NULL pointer dereference in kvm_irq_map_gsi + - [arm*] drivers/perf: arm_pmu: Defer the setting of __oprofile_cpu_pmu + - [x86] ALSA: hda - Add PCI ID for Kabylake + - [x86] ALSA: hda - Fix headset mic detection problem for Dell machine + - ALSA: hda/realtek - ALC256 speaker noise issue + - ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703 + - [x86] ALSA: hda/realtek: Add T560 docking unit fixup + - [armhf] fix PTRACE_SETVFPREGS on SMP systems + - gpio: bail out silently on NULL descriptors + - gpiolib: Fix NULL pointer deference + - gpiolib: Fix unaligned used of reference counters + - [s390x] bpf: fix recache skb->data/hlen for skb_vlan_push/pop + - [s390x] bpf: reduce maximum program size to 64 KB + - [armhf,arm64] irqchip/gic-v3: Fix ICC_SGI1R_EL1.INTID decoding mask + - [x86] crypto: ccp - Fix AES XTS error for request sizes above 4096 + - [arm64] Provide "model name" in /proc/cpuinfo for PER_LINUX32 tasks + - [arm64] mm: always take dirty state from new pte in ptep_set_access_flags + - [powerpc*] pseries/eeh: Handle RTAS delay requests in configure_bridge + - [powerpc*] Fix definition of SIAR and SDAR registers + - [powerpc*] Use privileged SPR number for MMCR2 + - [powerpc*] pseries: Add POWER8NVL support to + ibm,client-architecture-support call + - [powerpc*] mm/hash: Fix the reference bit update when handling hash fault + - [hppa] Fix pagefault crash in unaligned __get_user() call + - memcg: add RCU locking around css_for_each_descendant_pre() in + memcg_offline_kmem() + - wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel + - mm: thp: broken page count after commit aa88b68c3b1d + - [x86] entry/traps: Don't force in_interrupt() to return true in IST + handlers + - fix d_walk()/non-delayed __d_free() race + - [sparc64] Reduce TLB flushes during hugepte changes + - [sparc64] Take ctx_alloc_lock properly in hugetlb_setup(). + - [sparc64] Harden signal return frame checks. + - [sparc64] Fix return from trap window fill crashes. + - drm/core: Do not preserve framebuffer on rmfb, v4. + - [x86] Revert "drm/i915: Exit cherryview_irq_handler() after one pass" + - gpio: make sure gpiod_to_irq() returns negative on NULL desc + * [powerpc*] tm: Always reclaim in start_thread() for exec() class syscalls + (CVE-2016-5828) + + [ Salvatore Bonaccorso ] + * HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands + (CVE-2016-5829) + + -- Ben Hutchings Mon, 04 Jul 2016 20:10:24 +0200 + +linux (4.6.2-2) unstable; urgency=medium + + * [mips*] Fix ABI changes in 4.6.2 + * [rt] Update to 4.6.2-rt5: + - mm/memcontrol: mem_cgroup_migrate() - replace another local_irq_disable() + w. local_lock_irq() + * KEYS: potential uninitialized variable (CVE-2016-4470) + * percpu: fix synchronization between chunk->map_extend_work and chunk + destruction (CVE-2016-4794) + * percpu: fix synchronization between synchronous map extension and + chunk destruction (CVE-2016-4794) + * netfilter: x_tables: Fix parsing of IPT_SO_SET_REPLACE blobs + (CVE-2016-4997, CVE-2016-4998) + - don't move to non-existent next rule + - validate targets of jumps + - add and use xt_check_entry_offsets + - kill check_entry helper + - assert minimum target size + - add compat version of xt_check_entry_offsets + - check standard target size too + - check for bogus target offset + - validate all offsets and sizes in a rule + - don't reject valid target size on some + - arp_tables: simplify translate_compat_table args + - ip_tables: simplify translate_compat_table args + - ip6_tables: simplify translate_compat_table args + - xt_compat_match_from_user doesn't need a retval + - do compat validation via translate_table + - introduce and use xt_copy_counters_from_user + * Ignore ABI change in x_tables + * nfsd: check permissions when setting ACLs (CVE-2016-1237) + + -- Ben Hutchings Sat, 25 Jun 2016 11:22:27 +0200 + +linux (4.6.2-1) unstable; urgency=medium + + * Team upload. + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.2 + - f2fs: fix deadlock when flush inline data + - [mips*] math-emu: Fix jalr emulation when rd == $0 + - [mips*] Avoid using unwind_stack() with usermode + - [mips*] Fix siginfo.h to use strict posix types + - [mips*] Fix uapi include in exported asm/siginfo.h + - [mips*] Fix watchpoint restoration + - [mips*] Flush highmem pages in __flush_dcache_page + - [mips*] Handle highmem pages in __update_cache + - [mips*] Sync icache & dcache in set_pte_at + - [mips*] Reserve nosave data for hibernation + - [mips*el/loongson-3] Reserve 32MB for RS780E integrated GPU + - [mips*] Use copy_s.fmt rather than copy_u.fmt + - [mips*] Prevent "restoration" of MSA context in non-MSA kernels + - [mips*] ptrace: Fix FP context restoration FCSR regression + - [mips*] ptrace: Prevent writes to read-only FCSR bits + - [mips*] lib: Mark intrinsics notrace + - [mips*] VDSO: Build with `-fno-strict-aliasing' + - affs: fix remount failure when there are no options changed + - ASoC: ak4642: Enable cache usage to fix crashes on resume + - Input: uinput - handle compat ioctl for UI_SET_PHYS + - Input: xpad - move pending clear to the correct location + - Input: xpad - prevent spurious input from wired Xbox 360 controllers + - [armhf] sun4i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output + - [armhf] sun7i: dt: Enable dram gate 5 (tve0 clock) for simplefb TV output + - [armhf] mvebu: fix GPIO config on the Linksys boards + - [armhf] dts: exynos: Add interrupt line to MAX8997 PMIC on + exynos4210-trats + - ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards. + - ath10k: fix firmware assert in monitor mode + - ath10k: fix rx_channel during hw reconfigure + - ath10k: fix kernel panic, move arvifs list head init before htt init + - ath5k: Change led pin configuration for compaq c700 laptop + - [armhf] hwrng: exynos - Fix unbalanced PM runtime put on timeout + error path + - rtlwifi: Fix logic error in enter/exit power-save mode + - rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in + rtl_pci_reset_trx_ring + - Revert "lpfc: Delete unnecessary checks before the function call + mempool_destroy" + - aacraid: Start adapter after updating number of MSIX vectors + - aacraid: Relinquish CPU during timeout wait + - aacraid: Fix for aac_command_thread hang + - aacraid: Fix for KDUMP driver hang + - regulator: Try to resolve regulators supplies on registration + - hwmon: (ads7828) Enable internal reference + - [x86] mfd: intel_quark_i2c_gpio: Remove clock tree on error path + - [x86] mfd: intel-lpss: Save register context on suspend + - [x86] mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup + table correctly + - PM / Runtime: Fix error path in pm_runtime_force_resume() + - cpuidle: Indicate when a device has been unregistered + - cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter() + - [armhf] clk: bcm2835: Fix PLL poweron + - [armhf] clk: bcm2835: pll_off should only update CM_PLL_ANARST + - [armhf] clk: bcm2835: divider value has to be 1 or more + - [armhf] clk: bcm2835: correctly enable fractional clock support + - [armhf] pinctrl: exynos5440: Use off-stack memory for pinctrl_gpio_range + - PCI: Disable all BAR sizing for devices with non-compliant BARs + - media: v4l2-compat-ioctl32: fix missing reserved field copy in + put_v4l2_create32 + - PKCS#7: fix missing break on OID_sha224 case + - mm: use phys_addr_t for reserve_bootmem_region() arguments + - mm/compaction.c: fix zoneindex in kcompactd() + - wait/ptrace: assume __WALL if the child is traced + - batman-adv: Fix double neigh_node_put in batadv_v_ogm_route_update + - [powerpc*] book3s64: Fix branching to OOL handlers in relocatable kernel + - [powerpc*] eeh: Don't report error in eeh_pe_reset_and_recover() + - [powerpc*] Revert "powerpc/eeh: Fix crash in eeh_add_device_early() + on Cell" + - [powerpc*] eeh: Restore initial state in eeh_pe_reset_and_recover() + - xen/events: Don't move disabled irqs + - xen: use same main loop for counting and remapping pages + - sunrpc: fix stripping of padded MIC tokens + - [x86] drm/gma500: Fix possible out of bounds read + - [x86] drm/vmwgfx: Kill some lockdep warnings + - [x86] drm/amdgpu: use drm_mode_vrefresh() rather than mode->vrefresh + - [x86] drm/amdgpu: Fix hdmi deep color support. + - [x86] drm/i915/fbdev: Fix num_connector references in + intel_fb_initial_config() + - drm/fb_helper: Fix references to dev->mode_config.num_connector + - [x86] drm/i915: Discard previous atomic state on resume if connectors + change + - drm/atomic: Verify connector->funcs != NULL when clearing states + - Bluetooth: 6lowpan: Fix memory corruption of ipv6 destination address + - [x86] drm/i915/psr: Try to program link training times correctly + - [x86] drm/i915: Respect DP++ adaptor TMDS clock limit + - [x86] drm/i915: Enable/disable TMDS output buffers in DP++ adaptor + as needed + - [x86] drm/i915: Don't leave old junk in ilk active watermarks on readout + - [x86] drm/i915: Fix watermarks for VLV/CHV + - [armhf] drm/imx: Match imx-ipuv3-crtc components using device node in + platform data + - [x86] drm/i915: Pass the correct crtc state to .update_plane() + - ext4: fix data exposure after a crash + - ext4: fix hang when processing corrupted orphaned inode list + - ext4: clean up error handling when orphan list is corrupted + - ext4: fix check of dqget() return value in ext4_ioctl_setproject() + - ext4: fix oops on corrupted filesystem + - ext4: address UBSAN warning in mb_find_order_for_block() + - nfs: avoid race that crashes nfs_init_commit + - PM / sleep: Handle failures in device_suspend_late() consistently + - mm: thp: avoid false positive VM_BUG_ON_PAGE in page_move_anon_rmap() + - xfs: disallow rw remount on fs with unknown ro-compat features + - xfs: Don't wrap growfs AGFL indexes + - xfs: remove xfs_fs_evict_inode() + - xfs: xfs_iflush_cluster fails to abort on error + - xfs: fix inode validity check in xfs_iflush_cluster + - xfs: skip stale inodes in xfs_iflush_cluster + - [armhf] drm: msm: remove unused variable + - IB/hfi1: Fix hard lockup due to not using save/restore spin lock + - regulator: Fix deadlock during regulator registration + + [ Ben Hutchings ] + * [armel,armhf,sh4] linux-image: Do not suggest fdutils + * liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain::depth + * liblockdep: Fix 'unused value' warnings + * liblockdep: Fix 'set but not used' warnings + * liblockdep: Fix 'defined but not used' warning for init_utsname() + + [ Salvatore Bonaccorso ] + * Stack overflow via ecryptfs and /proc/$pid/environ (CVE-2016-1583) + - proc: prevent stacking filesystems on top + - ecryptfs: forbid opening files without mmap handler + - sched: panic on corrupted stack end + * tipc: fix an infoleak in tipc_nl_compat_link_dump (CVE-2016-5243) + * rds: fix an infoleak in rds_inc_info_copy (CVE-2016-5244) + + -- Salvatore Bonaccorso Wed, 15 Jun 2016 21:32:54 +0200 + +linux (4.6.1-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.6.1 + + [ Ben Hutchings ] + * [mips*r6*] Disable these architectures until dak recognises them as valid + in the control file + * linux-image: Rewrite maintainer scripts in shell, using the new + linux-update-symlinks and linux-check-removal commands + (Closes: #692333, #815850). Drop support for minimal_swap, no_symlinks, + use_hard_links and *_hook parameters in /etc/kernel-img.conf + (Closes: #730073). Remove now-redundant debconf templates. + * linux-image: postrm: Update default symlinks before running hook scripts + * linux-image: Make a newly installed kernel the default if the package + was previously removed + * mtd: Disable slram and phram when securelevel is enabled + * debian/patches/features/all/rt/genpatch.py: Use Python 3 + * debian/patches/features/all/rt/genpatch.py: Fix mapping of -rt version to + upstream version + * debian/patches/features/all/rt/genpatch.py: Use upstream tarball directly + * debian/patches/features/all/rt/genpatch.py: Use stable URLs in patch Origin + headers + * [rt] Update to 4.6.1-rt3: + - trace: correct off by one while recording the trace-event + - sched,preempt: Fix preempt_count manipulations + - kernel/rtmutex: only warn once on a try lock from bad + - locallock: add local_lock_on() + - kernel/printk: Don't try to print from IRQ/NMI region + - mm: perform lru_add_drain_all() remotely + * debian/control: Drop obsolete versioned Depends and Breaks + * linux-libc-dev: Drop obsolete Replaces/Conflicts with linux-kernel-headers + * debian/control: Update policy version to 3.9.8; no changes required + * Disable MODULE_SIG for architectures not supported by linux-signed + * Set ABI to 1 + + -- Ben Hutchings Mon, 06 Jun 2016 18:13:57 +0100 + +linux (4.6-1~exp2) experimental; urgency=medium + + [ Ben Hutchings ] + * [tilegx] Build a linux-libc-dev package (Closes: #824524; thanks to + Helmut Grohne) + * [tilegx] linux-libc-dev: Install headers in arch-specific + directory (Closes: #823632; thanks to Helmut Grohne) + * [rt] Update to 4.6-rc7-rt1 and re-enable + - Override SYSTEM_TRUSTED_KEYS to work from the source_rt directory + * Fold debian/config/README into debian/README.source + * debian/README.source: Rewrite and expand explanation of kernel config file + construction + * aufs: Update support patches to aufs4.6-20160523 + - mmap: Fix use-after-free in remap_file_pages(2) + * [mips*] Change NFS and various storage and network drivers from built-in + to modules + * 8139too: Use same configuration on all architectures: enable + 8139TOO_TUNE_TWISTER, 8139TOO_8129 and disable 8139TOO_PIO + * [mipsn32{,r6}{,el}] Build linux-libc-dev and tools packages + * [mips{,64}r6{,el}] Add kernel flavours for the Malta platform; build + linux-libc-dev and tools packages (Closes: #825024; thanks to YunQiang Su) + * [mips*/*-malta] udeb: Add ata-modules package + * linux-image: Stop setting $STEM in environment for maintainer script hooks + * linux-image: Add workaround for bug #817083 in debconf + * linux-image: prerm: Allow removal of running kernel if we can't ask debconf + questions (Closes: #825423) + * linux-image: prerm: Ignore version of running kernel inside a container or + chroot + * [s390] udeb: Drop all packages, since s390 no longer has its own kernel + * udeb: Drop packages for modules that will later be signed; these packages + will be taken over by src:linux-signed + + [ Aurelien Jarno ] + * [mips64{,el}] Set CPU to MIPS64 R2. + * [mips] Set CPU to MIPS32/64 R2. + + [ Martin Michlmayr ] + * [armhf] Enable more NVIDIA Tegra options (TEGRA_IOMMU_SMMU, + ARM_TEGRA_DEVFREQ, SND_SOC_TEGRA_*). + + -- Ben Hutchings Mon, 30 May 2016 04:44:45 +0100 + +linux (4.6-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.6 + + [ Ben Hutchings ] + * Re-apply "[media] videobuf2-v4l2: Verify planes array in buffer dequeueing", + reverted upstream in 4.6 + * [arm64] Enable RANDOMIZE_BASE (kASLR) + * [armhf] dsa: Enable NET_DSA_MV88E6123 as module, replacing + NET_DSA_MV88E6123_61_65 + + -- Ben Hutchings Tue, 17 May 2016 02:39:47 +0100 + +linux (4.6~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [hppa] Enable MLONGCALLS (fixes FTBFS) + * [alpha] fs: Disable BINFMT_EM86 (obsoleted by binfmt_misc; fixes FTBFS) + + [ Aurelien Jarno ] + * [mips*/octeon] Enable EDAC, EDAC_MM_EDAC, EDAC_OCTEON_L2C, + EDAC_OCTEON_LMC, EDAC_OCTEON_PC, EDAC_OCTEON_PCI. + + -- Ben Hutchings Mon, 09 May 2016 03:39:32 +0100 + +linux (4.6~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [armhf] Enable EFI, RTC_DRV_EFI + * Update config for renaming/removal/replacement/merging/splitting of various + symbols + * *lockdep*,linux-perf: Remove '-rcN' from installation paths + + [ Martin Michlmayr ] + * [armel, armhf] Use new Marvell CESA driver. + * [arm64] Enable support for NVIDIA Tegra. + * [arm64] udeb: Create fb-modules. + + -- Ben Hutchings Fri, 29 Apr 2016 10:40:36 +0200 + +linux (4.6~rc3-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update support patches to aufs4.x-rcN-20160328 + + -- Ben Hutchings Thu, 14 Apr 2016 23:55:15 +0100 + +linux (4.5.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.5 + - decnet: Do not build routes to devices without decnet private data. + - route: do not cache fib route info on local routes with oif + - packet: fix heap info leak in PACKET_DIAG_MCLIST sock_diag interface + - net: sched: do not requeue a NULL skb + - bpf/verifier: reject invalid LD_ABS | BPF_DW instruction + - cdc_mbim: apply "NDP to end" quirk to all Huawei devices + - soreuseport: fix ordering for mixed v4/v6 sockets + - net: use skb_postpush_rcsum instead of own implementations + - vlan: pull on __vlan_insert_tag error path and fix csum correction + - openvswitch: Orphan skbs before IPv6 defrag + - openvswitch: use flow protocol when recalculating ipv6 checksums + - net/mlx5_core: Fix soft lockup in steering error flow + - net/mlx5e: Device's mtu field is u16 and not int + - net/mlx5e: Fix minimum MTU + - net/mlx5e: Use vport MTU rather than physical port MTU + - ipv4/fib: don't warn when primary address is missing if in_dev is dead + - net/mlx4_en: fix spurious timestamping callbacks + - net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case + - gre: do not pull header in ICMP error processing + - net_sched: introduce qdisc_replace() helper + - net_sched: update hierarchical backlog too + - sch_htb: update backlog as well + - sch_dsmark: update backlog as well + - netem: Segment GSO packets on enqueue + - ipv6/ila: fix nlsize calculation for lwtunnel + - net/mlx4_en: Fix endianness bug in IPV6 csum calculation + - [x86] VSOCK: do not disconnect socket when peer has shutdown SEND only + - net: bridge: fix old ioctl unlocked net device walk + - bridge: fix igmp / mld query parsing + - net: fix a kernel infoleak in x25 module (CVE-2016-4580) + - net: thunderx: avoid exposing kernel stack + - tcp: refresh skb timestamp at retransmit time + - net/route: enforce hoplimit max value + - ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang + - ocfs2: fix posix_acl_create deadlock + - zsmalloc: fix zs_can_compact() integer overflow + - mm: thp: calculate the mapcount correctly for THP pages during WP faults + - [x86] crypto: qat - fix invalid pf2vf_resp_wq logic + - crypto: testmgr - Use kmalloc memory for RSA input + - ALSA: usb-audio: Quirk for yet another Phoenix Audio devices (v2) + - ALSA: usb-audio: Yet another Phoneix Audio device quirk + - ALSA: hda - Fix subwoofer pin on ASUS N751 and N551 + - ALSA: hda - Fix white noise on Asus UX501VW headset + - ALSA: hda - Fix broken reconfig + - [armhf] spi: spi-ti-qspi: Fix FLEN and WLEN settings if bits_per_word is + overridden + - [armhf] spi: spi-ti-qspi: Handle truncated frames properly + - perf diff: Fix duplicated output column + - perf/core: Disable the event on a truncated AUX record + - vfs: rename: check backing inode being equal + - workqueue: fix rebind bound workers warning + - [armhf] regulator: s2mps11: Fix invalid selector mask and voltages + for buck9 + - [armhf] regulator: axp20x: Fix axp22x ldo_io voltage ranges + - atomic_open(): fix the handling of create_error + - qla1280: Don't allocate 512kb of host tags + - tools lib traceevent: Do not reassign parg after collapse_tree() + - [x86] drm/i915: Update CDCLK_FREQ register on BDW after changing cdclk + frequency + - drm/radeon: fix PLL sharing on DCE6.1 (v2) + - [x86] drm/i915: Bail out of pipe config compute loop on LPT + - [x86] Revert "drm/i915: start adding dp mst audio" + - [x86] drm/i915/bdw: Add missing delay during L3 SQC credit programming + - drm/radeon: fix DP link training issue with second 4K monitor + - drm/radeon: fix DP mode validation + - [x86] drm/amdgpu: fix DP mode validation + - btrfs: reada: Fix in-segment calculation for reada + - Btrfs: fix truncate_space_check + - btrfs: remove error message from search ioctl for nonexistent tree + - btrfs: change max_inline default to 2048 + - Btrfs: fix unreplayable log after snapshot delete + parent dir fsync + - Btrfs: fix file loss on log replay after renaming a file and fsync + - Btrfs: fix extent_same allowing destination offset beyond i_size + - Btrfs: fix deadlock between direct IO reads and buffered writes + - Btrfs: fix race when checking if we can skip fsync'ing an inode + - Btrfs: do not collect ordered extents when logging that inode exists + - btrfs: csum_tree_block: return proper errno value + - btrfs: do not write corrupted metadata blocks to disk + - Btrfs: fix invalid reference in replace_path + - btrfs: handle non-fatal errors in btrfs_qgroup_inherit() + - btrfs: fallback to vmalloc in btrfs_compare_tree + - Btrfs: don't use src fd for printk + - btrfs: Reset IO error counters before start of device replacing + + [ Salvatore Bonaccorso ] + * tipc: check nl sock before parsing nested attributes (CVE-2016-4951) + + [ Ben Hutchings ] + * aufs: Update support patches to aufs4.5-20160523 + - mmap: Fix use-after-free in remap_file_pages(2) + * Revert "stmmac: Fix 'eth0: No PHY found' regression" (Closes: #823493) + * [x86] kvm:vmx: more complete state update on APICv on/off (CVE-2016-4440) + * USB: usbfs: fix potential infoleak in devio (CVE-2016-4482) + * ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS (CVE-2016-4569) + * ALSA: timer: Fix leak in events via snd_timer_user_ccallback or + snd_timer_user_tinterrupt (CVE-2016-4578) + * dwc3-exynos: Fix deferred probing storm (Closes: #823552; thanks to + Steinar H. Gunderson) + * Re-apply "[media] videobuf2-v4l2: Verify planes array in buffer dequeueing", + reverted upstream in 4.5.5 + + [ Roger Shimizu ] + * [armhf] Enable SENSORS_PWM_FAN / PWM_SAMSUNG as module, as recommended by + Steinar H. Gunderson. (Closes: #824941) + * [armhf] For Odroid-U3 (Exynos4) support, enable ARCH_EXYNOS4 / MFD_MAX77686 + / RTC_DRV_MAX77686 as built-in, and COMMON_CLK_MAX77686 + / REGULATOR_MAX77686 / MMC_SDHCI_S3C as module. Thanks to + Vagrant Cascadian. (Closes: #825139) + + -- Ben Hutchings Sun, 29 May 2016 22:21:11 +0100 + +linux (4.5.4-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.4 + - RDMA/iw_cxgb4: Fix bar2 virt addr calculation for T4 chips + - net/mlx5_core: Fix caching ATOMIC endian mode capability + - ipvs: handle ip_vs_fill_iph_skb_off failure + - ipvs: correct initial offset of Call-ID header search in SIP persistence + engine + - ipvs: drop first packet to redirect conntrack + - rtlwifi: Fix size of wireless mode variable + - [x86] mfd: intel-lpss: Remove clock tree on error path + - nbd: ratelimit error msgs after socket close + - null_blk: add lightnvm null_blk device to the nullb_list + - [arm64] ata: ahci_xgene: dereferencing uninitialized pointer in probe + - [armhf] wlcore: fix error handling in wlcore_event_fw_logger + - ath10k: fix pktlog in QCA99X0 + - mwifiex: fix corner case association failure + - clk-divider: make sure read-only dividers do not write to their register + - [armhf] clk: rockchip: fix wrong mmc phase shift for rk3228 + - [armhf] clk: rockchip: free memory in error cases when registering clock + branches + - [armel/versatile] clk: versatile: sp810: support reentrance + - [armhf] clk: sunxi: Fix sun8i-a23-apb0-clk divider flags + - [arm64] clk: xgene: Add missing parenthesis when clearing divider value + - [armhf] clk: bcm2835: fix check of error code returned by + devm_ioremap_resource() + - [armhf] pwm: omap-dmtimer: Fix inaccurate period and duty cycle + calculations + - [armhf] pwm: omap-dmtimer: Add sanity checking for load and match values + - [armhf] pwm: omap-dmtimer: Round load and match values rather than + truncate + - lpfc: fix misleading indentation + - gpiolib-acpi: Duplicate con_id string when adding it to the crs lookup + list + - ath9k: ar5008_hw_cmn_spur_mitigate: add missing mask_m & mask_p + initialisation + - mac80211: fix statistics leak if dev_alloc_name() fails + - tracing: Don't display trigger file for events that can't be enabled + - MD: make bio mergeable + - Minimal fix-up of bad hashing behavior of hash_64() + - mm: memcontrol: let v2 cgroups follow changes in system swappiness + - [armhf] mm, cma: prevent nr_isolated_* counters from going negative + - mm/zswap: provide unique zpool name + - propogate_mnt: Handle the first propogated copy being a slave + (CVE-2016-4581) + - modpost: fix module autoloading for OF devices with generic compatible + property + - [armhf] EXYNOS: Properly skip unitialized parent clock in power domain on + - [armhf] SoCFPGA: Fix secondary CPU startup in thumb2 kernel + - xen: Fix page <-> pfn conversion on 32 bit systems + - xen/balloon: Fix crash when ballooning on x86 32 bit PAE + - xen/evtchn: fix ring resize when binding new events + - HID: wacom: Add support for DTK-1651 + - proc: prevent accessing /proc//environ until it's ready + - mm: update min_free_kbytes from khugepaged after core initialization + - batman-adv: fix DAT candidate selection (must use vid) + - batman-adv: Check skb size before using encapsulated ETH+VLAN header + - batman-adv: Fix broadcast/ogm queue limit on a removed interface + - batman-adv: Reduce refcnt of removed router when updating route + - [x86] libnvdimm, pfn: fix memmap reservation sizing + - writeback: Fix performance regression in wb_over_bg_thresh() + - [x86] tsc: Read all ratio bits from MSR_PLATFORM_INFO + - [arm64] cpuidle: Pass on arm_cpuidle_suspend()'s return value + - [x86] sysfb_efi: Fix valid BAR address range check + - [arm64] dts: apq8064: add ahci ports-implemented mask + - ACPICA: Dispatcher: Update thread ID for recursive method calls + - [powerpc*] Fix bad inline asm constraint in create_zero_mask() + - libahci: save port map for forced port map + - ata: ahci-platform: Add ports-implemented DT bindings. + - USB: serial: cp210x: add ID for Link ECU + - USB: serial: cp210x: add Straizona Focusers device ids + - Revert "USB / PM: Allow USB devices to remain runtime-suspended when + sleeping" + - nvmem: mxs-ocotp: fix buffer overflow in read + - [x86] Drivers: hv: vmbus: Fix signaling logic in + hv_need_to_signal_on_read() + - [armhf] gpu: ipu-v3: Fix imx-ipuv3-crtc module autoloading + - [x86] drm/amdgpu: make sure vertical front porch is at least 1 + - [x86] drm/amdgpu: set metadata pointer to NULL after freeing. + - [x86] iio: ak8975: Fix NULL pointer exception on early interrupt + - [x86] iio: ak8975: fix maybe-uninitialized warning + - drm/radeon: make sure vertical front porch is at least 1 + - [x86] drm/i915: Avoid stalling on pending flips for legacy cursor updates + - [x86] drm/i915/ddi: Fix eDP VDD handling during booting and suspend/resume + - [x86] drm/i915: Fix system resume if PCI device remained enabled + - [x86] drm/i915: Fix eDP low vswing for Broadwell + - [x86] drm/i915: Make RPS EI/thresholds multiple of 25 on SNB-BDW + - [x86] drm/i915: Fake HDMI live status + - [x86] ACPI / processor: Request native thermal interrupt handling via _OSC + + [ Aurelien Jarno ] + * [mips*] Fix PR_SET_FPMODE issues with multi-threaded programs. + * [i386] Stop recommending libc6-i686. + * [arm,x86] Fix memory corruption in KVM with THP enabled. (Closes: #821225) + * [mips*/octeon] Add support for byte swapped initramfs to handle u-boot and + kernel running with a different endianness. + * [mipsel/octeon] Activate flavour on mipsel. + + [ Roger Shimizu ] + * netfilter: Enable NF_DUP_NETDEV / NFT_DUP_NETDEV / NFT_FWD_NETDEV + as module, as recommended by Arturo Borrero Gonzalez. (Closes: #824162) + + [ Salvatore Bonaccorso ] + * KEYS: Fix ASN.1 indefinite length object parsing (CVE-2016-0758) + * net: fix infoleak in llc (CVE-2016-4485) + * KVM: MTRR: remove MSR 0x2f8 (CVE-2016-3713) + + [ Ben Hutchings ] + * gencontrol.py: Fix implementation of [packages]tools config option, + thanks to Yves-Alexis Perez + * debian/control: Exclude tools from 'stage1' build profile + * debian/control,debian/rules: Support a 'pkg.linux.notools' build profile + which does not build tools packages + * debian/control,debian/rules,debian/rules.d: Support the 'nodoc' build + profile + * debian/control: Remove alternate build-dependency on binutils-dev that was + used for backports to wheezy + * net: fix infoleak in rtnetlink (CVE-2016-4486) + * nf_conntrack: avoid kernel pointer value leak in slab name + * vfs: do_splice_to(): cap the size before passing to ->splice_read() + * crypto: hash - Fix page length clamping in hash walk + * isofs: get_rock_ridge_filename(): handle malformed NM entries + * uapi glibc compat: fix compile errors when glibc net/if.h included + before linux/if.h (Closes: #822393) + * videobuf2-core: Fix crash after fixing CVE-2016-4568 + * [armhf] Enable more Exynos drivers (Closes: #824435): + - drm: Enable DRM_EXYNOS as module, DRM_EXYNOS_MIXER, DRM_EXYNOS_FIMD, + DRM_EXYNOS_DSI, DRM_EXYNOS_DP, DRM_EXYNOS_HDMI + - phy: Enable PHY_EXYNOS_MIPI_VIDEO, PHY_EXYNOS_DP_VIDEO as modules + - cpuidle: Enable ARM_EXYNOS_CPUIDLE + - iio: Enable EXYNOS_ADC as module + + -- Ben Hutchings Mon, 16 May 2016 19:17:22 +0100 + +linux (4.5.3-2) unstable; urgency=medium + + * [s390x] PCI: Ignore zpci ABI changes; these functions are not used by + modules + * [powerpc*] Fix sstep compile on powerpcspe (Closes: #823526; thanks to + Lennart Sorensen) + + -- Ben Hutchings Sun, 08 May 2016 15:03:45 +0100 + +linux (4.5.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.3 + - mmc: block: Use the mmc host device index as the mmcblk device index + - block: partition: initialize percpuref before sending out KOBJ_ADD + - block: loop: fix filesystem corruption in case of aio/dio + - [arm64] efi: Don't apply MEMBLOCK_NOMAP to UEFI memory map mapping + - [x86] mce: Avoid using object after free in genpool + - [x86] kvm: do not leak guest xcr0 into host interrupt handlers + - [arm*] KVM: Handle forward time correction gracefully + - [armhf] mvebu: Correct unit address for linksys + - [armhf] OMAP2: Fix up interconnect barrier initialization for DRA7 + - [armhf] OMAP2+: hwmod: Fix updating of sysconfig register + - assoc_array: don't call compare_object() on a node + - [x86] usb: xhci: applying XHCI_PME_STUCK_QUIRK to Intel BXT B0 host + - xhci: resume USB 3 roothub first + - usb: host: xhci: add a new quirk XHCI_NO_64BIT_SUPPORT + - usb: xhci: fix wild pointers in xhci_mem_cleanup + - xhci: fix 10 second timeout on removal of PCI hotpluggable xhci + controllers + - usb: host: xhci-plat: Make enum xhci_plat_type start at a non zero value + - usb: hcd: out of bounds access in for_each_companion + - usb: gadget: f_fs: Fix use-after-free + - dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros + - dm cache metadata: fix cmd_read_lock() acquiring write lock + - lib: lz4: fixed zram with lz4 on big endian machines + - debugfs: Make automount point inodes permanently empty + - dmaengine: dw: fix master selection + - [armhf] dmaengine: omap-dma: Fix polled channel completion detection + and handling + - dmaengine: edma: Remove dynamic TPTC power management feature + - mtd: nand: pxa3xx_nand: fix dmaengine initialization + - sched/cgroup: Fix/cleanup cgroup teardown/init + - [x86] EDAC, sb_edac.c: Repair damage introduced when "fixing" + channel address + - [x86] EDAC, sb_edac.c: Take account of channel hashing when needed + - ALSA: hda - Don't trust the reported actual power state + - [x86] ALSA: hda/realtek - Add ALC3234 headset mode for Optiplex 9020m + - ALSA: hda - Keep powering up ADCs on Cirrus codecs + - [x86] ALSA: hda - add PCI ID for Intel Broxton-T + - ALSA: pcxhr: Fix missing mutex unlock + - [x86] ALSA: hda - Add dock support for ThinkPad X260 + - [x86] ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW + - asm-generic/futex: Re-enable preemption in futex_atomic_cmpxchg_inatomic() + - futex: Handle unlock_pi race gracefully + - futex: Acknowledge a new waiter in counter before plist + - drm/nouveau/core: use vzalloc for allocating ramht + - drm/qxl: fix cursor position with non-zero hotspot + - [x86] drm/i915: Fix race condition in intel_dp_destroy_mst_connector() + - Revert "drm/radeon: disable runtime pm on PX laptops without dGPU + power control" + - [armhf] Revert "PCI: imx6: Add support for active-low reset GPIO" + - usbvision: revert commit 588afcc1 + - [x86] Revert "drm/amdgpu: disable runtime pm on PX laptops without dGPU + power control" + - cpufreq: intel_pstate: Fix processing for turbo activation ratio + - [s390x] pci: add extra padding to function measurement block + - iwlwifi: pcie: lower the debug level for RSA semaphore access + - iwlwifi: mvm: fix memory leak in paging + - crypto: rsa-pkcs1pad - fix dst len + - [x86] crypto: ccp - Prevent information leakage on export + - crypto: sha1-mb - use corrcet pointer while completing jobs + - [powerpc*] scan_features() updates incorrect bits for REAL_LE + - [powerpc*] Update cpu_user_features2 in scan_features() + - [powerpc*] Update TM user feature bits in scan_features() + - nl80211: check netlink protocol in socket release notification + - netlink: don't send NETLINK_URELEASE for unbound sockets + - pinctrl: single: Fix pcs_parse_bits_in_pinctrl_entry to use __ffs than ffs + - [x86] iommu/amd: Fix checking of pci dma aliases + - iommu/dma: Restore scatterlist offsets correctly + - [x86] drm/amdgpu: when suspending, if uvd/vce was running. need to cancel + delay work. + - [x86] drm/amdgpu: use defines for CRTCs and AMFT blocks + - [x86] drm/amdgpu: bump the afmt limit for CZ, ST, Polaris + - [x86] amdgpu/uvd: add uvd fw version for amdgpu + - [x86] drm/amdgpu: fix regression on CIK (v2) + - drm/radeon: add a quirk for a XFX R9 270X + - drm/radeon: fix initial connector audio value + - drm/radeon: forbid mapping of userptr bo through radeon device file + - drm/radeon: fix vertical bars appear on monitor (v2) + - [mips*el/loongson-3] drm: Loongson-3 doesn't fully support wc memory + - drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries + - drm/dp/mst: Validate port in drm_dp_payload_send_msg() + - drm/dp/mst: Restore primary hub guid on resume + - drm/dp/mst: Get validated port ref in drm_dp_update_payload_part1() + - [x86] drm/i915: Pass the correct encoder to intel_ddi_clk_select() + with MST + - [x86] drm/i915: Cleanup phys status page too + - [x86] drm/i915: Use the active wm config for merging on ILK-BDW + - [x86] drm/i915: Start WM computation from scratch on ILK-BDW + - [x86] drm/i915: skl_update_scaler() wants a rotation bitmask instead of + bit number + - [x86] drm/amdkfd: uninitialized variable in + dbgdev_wave_control_set_registers() + - [x86] drm/i915/skl: Fix DMC load on Skylake J0 and K0 + - [x86] drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs + - [x86] drm/i915: Fixup the free space logic in ring_prepare + - [x86] drm/i915: Force ringbuffers to not be at offset 0 + - [x86] drm/i915: Use fw_domains_put_with_fifo() on HSW + - drm/ttm: fix kref count mess in ttm_bo_move_to_lru_tail + - [x86] perf intel-pt: Fix segfault tracing transactions + - [armhf] i2c: exynos5: Fix possible ABBA deadlock by keeping I2C + clock prepared + - ACPICA / Interpreter: Fix a regression triggered because of wrong Linux + ECDT support + - [x86] mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs + - [x86] toshiba_acpi: Fix regression caused by hotkey enabling value + - [x86] EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder + callback + - [x86] ASoC: ssm4567: Reset device before regcache_sync() + - [x86] ASoC: rt5640: Correct the digital interface data select + - vb2-memops: Fix over allocation of frame vectors + - media: vb2: Fix regression on poll() for RW mode + - videobuf2-core: Check user space planes array in dqbuf + - videobuf2-v4l2: Verify planes array in buffer dequeueing (CVE-2016-4568) + - v4l2-dv-timings.h: fix polarity for 4k formats + - IB/core: Fix oops in ib_cache_gid_set_default_gid + - mwifiex: fix IBSS data path issue. + - IB/mlx5: Expose correct max_sge_rd limit + - IB/security: Restrict use of the write() interface (CVE-2016-4565) + - efi: Fix out-of-bounds read in variable_matches() + - efi: Expose non-blocking set_variable() wrapper to efivars + - [x86] apic: Handle zero vector gracefully in clear_vector_irq() + - workqueue: fix ghost PENDING flag while doing MQ IO + - slub: clean up code for kmem cgroup support to kmem_cache_free_bulk + - cgroup, cpuset: replace cpuset_post_attach_flush() with + cgroup_subsys->post_attach callback + - memcg: relocate charge moving from ->attach to ->post_attach + - mm: exclude HugeTLB pages from THP page_mapped() logic + - mm/huge_memory: replace VM_NO_THP VM_BUG_ON with actual VMA check + - numa: fix /proc//numa_maps for THP + - mm: vmscan: reclaim highmem zone if buffer_heads is over limit + - mm/hwpoison: fix wrong num_poisoned_pages accounting + - locking/mcs: Fix mcs_spin_lock() ordering + - [armhf] spi/rockchip: Make sure spi clk is on in rockchip_spi_set_cs + - [armhf] irqchip/sunxi-nmi: Fix error check of of_io_request_and_map() + - [armhf] regulator: s5m8767: fix get_register() error handling + - scsi_dh: force modular build if SCSI is a module + - lib/mpi: Endianness fix + - [x86] misc: mic/scif: fix wrap around tests + - PM / OPP: Initialize u_volt_min/max to a valid value + - PM / Domains: Fix removal of a subdomain + - drivers/misc/ad525x_dpot: AD5274 fix RDAC read back errors + - perf evlist: Reference count the cpu and thread maps at set_maps() + - perf tools: Fix perf script python database export crash + - [x86] mm/kmmio: Fix mmiotrace for hugepages + - ext4: fix NULL pointer dereference in ext4_mark_inode_dirty() + - f2fs crypto: fix corrupted symlink in encrypted case + - f2fs: slightly reorganize read_raw_super_block + - f2fs: cover large section in sanity check of super + - ext4/fscrypto: avoid RCU lookup in d_revalidate + - f2fs: do f2fs_balance_fs when block is allocated + - f2fs: don't need to call set_page_dirty for io error + - f2fs crypto: handle unexpected lack of encryption keys + - f2fs crypto: make sure the encryption info is initialized on opendir(2) + - bus: uniphier-system-bus: fix condition of overlap check + - mtd: spi-nor: remove micron_quad_enable() + - mtd: brcmnand: Fix v7.1 register offsets + - mtd: nand: Drop mtd.owner requirement in nand_scan + - perf hists browser: Only offer symbol scripting when a symbol is under + the cursor + - perf hists browser: Fix dump to show correct callchain style + - perf tools: handle spaces in file names obtained from /proc/pid/maps + - NTB: Remove _addr functions from ntb_hw_amd + - perf/core: Don't leak event in the syscall error path + - perf/core: Fix time tracking bug with multiplexing + - perf hists: Fix determination of a callchain node's childlessness + - [armhf] OMAP3: Add cpuidle parameters table for omap3430 + - [armhf] dts: armada-375: use armada-370-sata for SATA + - [armhf] dts: am33xx: Fix GPMC dma properties + - btrfs: fix memory leak of fs_info in block group cache + - btrfs: cleaner_kthread() doesn't need explicit freeze + - [armhf] thermal: rockchip: fix a impossible condition caused by the + warning + - sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects + a race + - megaraid_sas: add missing curly braces in ioctl handler + - tpm: fix checks for policy digest existence in tpm2_seal_trusted() + - tpm: fix: set continueSession attribute for the unseal operation + + [ Uwe Kleine-König ] + * [armhf] enable I2C_MUX_PCA954x, MMC_SDHCI_PXAV3, AHCI_MVEBU + + [ Ben Hutchings ] + * bug control: Update list of related firmware packages + * Revert "sp5100_tco: fix the device check for SB800 and later chipsets" + (Closes: #823146; probably fixes #822651) + * bpf: fix double-fdput in replace_map_fd_with_map_ptr() (CVE-2016-4557) + (Closes: #823603) + * bpf: fix refcnt overflow (CVE-2016-4558) + * bpf: fix check_map_func_compatibility logic + * stable-update: Rewrite stable-update.sh in Python + + -- Ben Hutchings Sat, 07 May 2016 21:59:15 +0100 + +linux (4.5.2-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.2 + - hwmon: (max1111) Return -ENODEV from max1111_read_channel if not + instantiated + - PKCS#7: pkcs7_validate_trust(): initialize the _trusted output argument + - [hppa] Fix SIGSYS signals in compat case + - [hppa] Fix and enable seccomp filter support + - [hppa] Avoid function pointers for kernel exception routines + - [hppa] Fix kernel crash with reversed copy_from_user() + - [hppa] Unbreak handling exceptions from kernel modules + - ALSA: timer: Use mod_timer() for rearming the system timer + - mm: fix invalid node in alloc_migrate_target() + - [powerpc*] mm: Fixup preempt underflow with huge pages + - [s390x] /mm: handle PTE-mapped tail pages in fast gup + - [x86] libnvdimm: fix smart data retrieval + - [x86] libnvdimm, pfn: fix uuid validation + - [powerpc*] process: Fix altivec SPR not being saved + - compiler-gcc: disable -ftracer for __noclone functions + - drm/dp: move hw_mutex up the call stack + - drm/udl: Use unlocked gem unreferencing + - [x86] drm/amd/powerplay: fix segment fault issue in multi-display case. + - [x86] drm/amdgpu/gmc: move vram type fetching into sw_init + - [x86] drm/amdgpu/gmc: use proper register for vram type on Fiji + - xen/events: Mask a moving irq + - net: validate variable length ll headers + - ax25: add link layer header validation function + - packet: validate variable length ll headers + - bpf: avoid copying junk bytes in bpf_get_current_comm() + - qlcnic: Remove unnecessary usage of atomic_t + - qlcnic: Fix mailbox completion handling during spurious interrupt + - macvtap: always pass ethernet header in linear + - bridge: allow zero ageing time + - ipv4: Don't do expensive useless work during inetdev destroy. + - net: Fix use after free in the recvmmsg exit path + - mlx4: add missing braces in verify_qp_parameters + - farsync: fix off-by-one bug in fst_add_one + - ath9k: fix buffer overrun for ar9287 + - [armhf] net: mvneta: Fix spinlock usage + - ppp: ensure file->private_data can't be overridden + - tcp/dccp: remove obsolete WARN_ON() in icmp handlers + - qlge: Fix receive packets drop. + - bonding: fix bond_get_stats() + - ipv4: fix broadcast packets reception + - ipv4: initialize flowi4_flags before calling fib_lookup() + - ppp: take reference on channels netns + - xfrm: Fix crash observed during device unregistration and decryption + - ipv6: udp: fix UDP_MIB_IGNOREDMULTI updates + - bridge: Allow set bridge ageing time when switchdev disabled + - rtnl: fix msg size calculation in if_nlmsg_size() + - tun, bpf: fix suspicious RCU usage in tun_{attach, detach}_filter + - tuntap: restore default qdisc + - ipv4: l2tp: fix a potential issue in l2tp_ip_recv + - ipv6: l2tp: fix a potential issue in l2tp_ip6_recv + - ip6_tunnel: set rtnl_link_ops before calling register_netdevice + - ipv6: Count in extension headers in skb->network_header + - mpls: find_outdev: check for err ptr in addition to NULL check + - USB: uas: Limit qdepth at the scsi-host level + - USB: uas: Add a new NO_REPORT_LUNS quirk + - [x86] KVM: Inject pending interrupt even if pending nmi exist + - [x86] KVM: reduce default value of halt_poll_ns parameter + - pinctrl: pistachio: fix mfio84-89 function description and pinmux. + - pinctrl: sunxi: Fix A33 external interrupts not working + - pinctrl: freescale: imx: fix bogus check of of_iomap() return value + - au0828: fix au0828_v4l2_close() dev_state race condition + - au0828: Fix dev_state handling + - coda: fix error path in case of missing pdata on non-DT platform + - v4l: vsp1: Set the SRU CTRL0 register when starting the stream + - pcmcia: db1xxx_ss: fix last irq_to_gpio user + - rbd: use GFP_NOIO consistently for request allocations + - mac80211: properly deal with station hashtable insert errors + - mac80211: avoid excessive stack usage in sta_info + - mac80211: fix ibss scan parameters + - mac80211: fix unnecessary frame drops in mesh fwding + - mac80211: fix txq queue related crashes + - [armhf] gpio: pca953x: Use correct u16 value for register word write + - scsi: Do not attach VPD to devices that don't support it + - [armel,armhf]: 8550/1: protect idiv patching against undefined + gcc behavior + - iio: fix config watermark initial value + - iio: st_magn: always define ST_MAGN_TRIGGER_SET_STATE + - iio: accel: bmc150: fix endianness when reading axes + - iio: gyro: bmg160: fix buffer read values + - iio: gyro: bmg160: fix endianness when reading axes + - sd: Fix excessive capacity printing on devices with blocks bigger than + 512 bytes + - fs: add file_dentry() (Closes: #821442) + + nfs: use file_dentry() + + ext4 crypto: use dget_parent() in ext4_d_revalidate() + + ext4: use dget_parent() in ext4_file_open() + + ext4: use file_dentry() + - btrfs: fix crash/invalid memory access on fsync when using overlayfs + - ext4: ignore quota mount options if the quota feature is enabled + - iommu: Don't overwrite domain pointer when there is no default_domain + - Btrfs: fix file/data loss caused by fsync after rename and new inode + - [arm64] replace read_lock to rcu lock in call_step_hook + - mmc: sdhci: Fix regression setting power on Trats2 board + - ALSA: hda - Fix regression of monitor_present flag in eld proc file + - [x86] ALSA: usb-audio: Skip volume controls triggers hangup on Dell + USB Dock + - HID: wacom: fix Bamboo ONE oops + - HID: usbhid: fix inconsistent reset/resume/reset-resume behavior + + [ Salvatore Bonaccorso ] + * [x86] xen: suppress hugetlbfs in PV guests (CVE-2016-3961) + * [x86] USB: usbip: fix potential out-of-bounds write (CVE-2016-3955) + + [ Ben Hutchings ] + * fs: Consolidate softdep declarations in each module + * Bump ABI to 2 + * [armel/marvell] dts: kirkwood: fix SD slot default configuration for OpenRD + (Closes: #811351) + * atl2: Disable unimplemented scatter/gather feature (CVE-2016-2117) + * [x86] sound/soc/intel: Enable SND_SOC_INTEL_BYTCR_RT5640_MACH (replacing + SND_SOC_INTEL_BYT_RT5640_MACH; closes: #822267), + SND_SOC_INTEL_BYTCR_RT5651_MACH, SND_SOC_INTEL_CHT_BSW_RT5672_MACH, + SND_SOC_INTEL_CHT_BSW_RT5645_MACH, SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH, + SND_SOC_INTEL_SKL_RT286_MACH, SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH, + SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH as modules + * module: Invalidate signatures on force-loaded modules + * linux-source: Fix up module signing configuration in included kernel + config files + * README.Debian: Change more URLs to use https: scheme + * [sparc] Implement and wire up hotplug and modalias_show for vio, thanks to + Adrian Glaubitz (Closes: #815977) + * linux-headers: Avoid mixed implicit and normal rules in Makefile, thanks to + Thierry Herbelot (Closes: #822666) + * memcg: remove lru_add_drain_all() invocation from mem_cgroup_move_charge() + (Closes: #822084) + * linux-perf: Add build-time check for unversioned files that are likely to + result in file conflicts + * linux-perf: Move tips.txt to /usr/share/doc/linux-perf- + (Closes: #821741) + * tools/build: Fix bpf(2) feature test (fixes FTBFS on alpha, sh4; + closes: #822364) + * [armhf] Disable FB_OMAP2; it is redundant and conflicting with DRM_OMAP + * [armhf] mm: Enable CMA, DMA_CMA + * Input: gtco - fix crash on detecting device without endpoints + (CVE-2016-2187) + + [ Aurelien Jarno ] + * [mips*] Emulate unaligned LDXC1 and SDXC1 instructions. + + [ Uwe Kleine-König ] + * [armhf] enable NET_DSA and available switch drivers as modules. + + -- Ben Hutchings Thu, 28 Apr 2016 18:03:18 +0200 + +linux (4.5.1-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.1 + - [x86] entry/compat: Keep TS_COMPAT set during signal delivery + - [x86] perf/intel: Add definition for PT PMI bit + - [x86] KVM: fix missed hardware breakpoints + - [x86] KVM: i8254: change PIT discard tick policy + - [x86] KVM: fix spin_lock_init order on x86 + - [x86] KVM: VMX: avoid guest hang on invalid invept instruction + - [x86] KVM: VMX: avoid guest hang on invalid invvpid instruction + - [x86] KVM: VMX: fix nested vpid for old KVM guests + - perf/core: Fix perf_sched_count derailment + - perf tools: Fix checking asprintf return value + - Thermal: Ignore invalid trip points + - sched/cputime: Fix steal_account_process_tick() to always return jiffies + - sched/fair: Avoid using decay_load_missed() with a negative value + - [x86] EDAC/sb_edac: Fix computation of channel address + - [x86] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr() + - [s390x] fix floating pointer register corruption (again) + - [s390x] cpumf: add missing lpp magic initialization + - [s390x] pci: enforce fmb page boundary rule + - [armhf] pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing + - [x86] irq: Cure live lock in fixup_irqs() (Closes: #817816) + - [x86] apic: Fix suspicious RCU usage in + smp_trace_call_function_interrupt() + - [amd64] iopl: Properly context-switch IOPL on Xen PV (CVE-2016-3157) + - [x86] mm: TLB_REMOTE_SEND_IPI should count pages + - sg: fix dxferp in from_to case + - aacraid: Fix RRQ overload + - aacraid: Fix memory leak in aac_fib_map_free + - aacraid: Set correct msix count for EEH recovery + - sd: Fix discard granularity when LBPRZ=1 + - ncr5380: Correctly clear command pointers and lists after bus reset + - ncr5380: Dont release lock for PIO transfer + - ncr5380: Dont re-enter NCR5380_select() + - ncr5380: Forget aborted commands + - ncr5380: Fix NCR5380_select() EH checks and result handling + - ncr5380: Call scsi_eh_prep_cmnd() and scsi_eh_restore_cmnd() as and when + appropriate + - scsi: storvsc: fix SRB_STATUS_ABORTED handling + - be2iscsi: set the boot_kset pointer to NULL in case of failure + - aic7xxx: Fix queue depth handling + - libnvdimm: Fix security issue with DSM IOCTL. + - libnvdimm, pmem: fix kmap_atomic() leak in error path + - dm snapshot: disallow the COW and origin devices from being identical + - dm: fix excessive dm-mq context switching + - dm thin metadata: don't issue prefetches if a transaction abort + has failed + - dm cache: make sure every metadata function checks fail_io + - dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request() + - usb: retry reset if a device times out + - usb: hub: fix a typo in hub_port_init() leading to wrong logic + - USB: cdc-acm: more sanity checking (CVE-2016-3138) + - USB: iowarrior: fix oops with malicious USB descriptors (incomplete fix + for CVE-2016-2188) + - USB: usb_driver_claim_interface: add sanity checking + - USB: mct_u232: add sanity checking in probe (CVE-2016-3136) + - USB: digi_acceleport: do sanity checking for the number of ports + (CVE-2016-3140) + - USB: cypress_m8: add endpoint sanity check (CVE-2016-3137) + - Input: powermate - fix oops with malicious USB descriptors + (CVE-2016-2186) + - ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk() + (CVE-2016-2184) + - ALSA: usb-audio: Add sanity checks for endpoint accesses (CVE-2016-2184) + - ALSA: usb-audio: Minor code cleanup in create_fixed_stream_quirk() + - ALSA: usb-audio: Fix double-free in error paths after + snd_usb_add_audio_stream() call + - crypto: ccp - Add hash state import and export support + - crypto: ccp - Limit the amount of information exported + - crypto: ccp - Don't assume export/import areas are aligned + - crypto: ccp - memset request context to zero during import + - crypto: keywrap - memzero the correct memory + - [armel/marvell,armhf] crypto: marvell/cesa - forward + devm_ioremap_resource() error code + - [x86] mei: bus: check if the device is enabled before data transfer + - tpm: fix the rollback in tpm_chip_register() + - tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister() + - tpm_eventlog.c: fix binary_bios_measurements + - tpm: fix the cleanup of struct tpm_chip + - HID: logitech: fix Dual Action gamepad support + - HID: i2c-hid: fix OOB write in i2c_hid_set_or_send_report() + - HID: multitouch: force retrieving of Win8 signature blob + - HID: fix hid_ignore_special_drivers module parameter + - staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg + - staging: comedi: ni_mio_common: fix the ni_write[blw]() functions + - tty: Fix GPF in flush_to_ldisc(), part 2 + - net: irda: Fix use-after-free in irtty_open() + - 8250: use callbacks to access UART_DLL/UART_DLM + - saa7134: Fix bytesperline not being set correctly for planar formats + - adv7511: TX_EDID_PRESENT is still 1 after a disconnect + - bttv: Width must be a multiple of 16 when capturing planar formats + - coda: fix first encoded frame payload + - media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32 + - mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild + - mtip32xx: Fix broken service thread handling + - mtip32xx: Remove unwanted code from taskfile error handler + - mtip32xx: Fix for rmmod crash when drive is in FTL rebuild + - mtip32xx: Handle safe removal during IO + - mtip32xx: Handle FTL rebuild failure state during device initialization + - mtip32xx: Implement timeout handler + - mtip32xx: Cleanup queued requests after surprise removal + - ALSA: hda - Fix unexpected resume through regmap code path + - ALSA: hda - Apply reboot D3 fix for CX20724 codec, too + - [x86] ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM + ThinkPad X41. + - ALSA: hda - Don't handle ELD notify from invalid port + - [x86] ALSA: hda - fix the mic mute button and led problem for a Lenovo AIO + - ALSA: hda - Fix unconditional GPIO toggle via automute + - [x86] ALSA: hda - Limit i915 HDMI binding only for HSW and later + - [x86] ALSA: hda - Fix spurious kernel WARNING on Baytrail HDMI + - [x86] ALSA: hda - Really restrict i915 notifier to HSW+ + - ALSA: hda - Fix forgotten HDMI monitor_present update + - [x86] ALSA: hda - Workaround for unbalanced i915 power refcount by + concurrent probe + - ALSA: hda - Fix missing ELD update at unplugging + - jbd2: fix FS corruption possibility in jbd2_journal_destroy() on + umount path + - [arm64] Update PTE_RDONLY in set_pte_at() for PROT_NONE permission + - brd: Fix discard request processing + - IB/srpt: Simplify srpt_handle_tsk_mgmt() + - bcache: cleaned up error handling around register_cache() + - bcache: fix race of writeback thread starting before complete + initialization + - bcache: fix cache_set_flush() NULL pointer dereference on OOM + - mm: memcontrol: reclaim when shrinking memory.high below usage + - mm: memcontrol: reclaim and OOM kill when shrinking memory.max below usage + - watchdog: don't run proc_watchdog_update if new value is same as old + - Bluetooth: Fix potential buffer overflow with Add Advertising + - cgroup: ignore css_sets associated with dead cgroups during migration + - [amrhf] net: mvneta: enable change MAC address when interface is up + - brcmfmac: Increase nr of supported flowrings. + - of: alloc anywhere from memblock if range not specified + - vfs: show_vfsstat: do not ignore errors from show_devname method + - splice: handle zero nr_pages in splice_to_pipe() + - quota: Fix possible GPF due to uninitialised pointers + - xfs: fix two memory leaks in xfs_attr_list.c error paths + - raid1: include bio_end_io_list in nr_queued to prevent freeze_array hang + - md/raid5: Compare apples to apples (or sectors to sectors) + - RAID5: check_reshape() shouldn't call mddev_suspend + - RAID5: revert e9e4c377e2f563 to fix a livelock + - raid10: include bio_end_io_list in nr_queued to prevent freeze_array hang + - md/raid5: preserve STRIPE_PREREAD_ACTIVE in break_stripe_batch_list + - md: multipath: don't hardcopy bio in .make_request path + - fuse: do not use iocb after it may have been freed + - fuse: Add reference counting for fuse_io_priv + - fs/coredump: prevent fsuid=0 dumps into user-controlled directories + - [armhf] drm/vc4: Return -EFAULT on copy_from_user() failure + - [x86] drm/radeon: disable runtime pm on PX laptops without dGPU + power control + - drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards. + - drm/radeon: rework fbdev handling on chips with no connectors + - drm/radeon/mst: fix regression in lane/link handling. + - [x86] drm/amdgpu: disable runtime pm on PX laptops without dGPU + power control + - drm/amdgpu: include the right version of gmc header files for iceland + - drm/amd/powerplay: add uvd/vce dpm enabling flag to fix the performance + issue for CZ + - tracing: Have preempt(irqs)off trace preempt disabled functions + - tracing: Fix crash from reading trace_pipe with sendfile + - tracing: Fix trace_printk() to print when not using bprintk() + - bitops: Do not default to __clear_bit() for __clear_bit_unlock() + - [x86] ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list + - mmc: block: fix ABI regression of mmc_blk_ioctl + - mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case + - mmc: sdhci: move initialisation of command error member + - mmc: sdhci: clean up command error handling + - mmc: sdhci: fix command response CRC error handling + - mmc: sdhci: further fix for DMA unmapping in sdhci_post_req() + - mmc: sdhci: avoid unnecessary mapping/unmapping of align buffer + - mmc: sdhci: plug DMA mapping leak on error + - mmc: sdhci: fix data timeout + - [armhf] mmc: tegra: Disable UHS-I modes for tegra114 + - [armhf] mmc: tegra: properly disable card clock + - mmc: sdhci: Fix override of timeout clk wrt max_busy_timeout + - [armhf] clk: rockchip: rk3368: fix cpuclk mux bit of big cpu-cluster + - [armhf] clk: rockchip: rk3368: fix cpuclk core dividers + - [armhf] clk: rockchip: rk3368: fix parents of video encoder/decoder + - [armhf] clk: rockchip: rk3368: fix hdmi_cec gate-register + - [armhf] clk: rockchip: add hclk_cpubus to the list of rk3188 + critical clocks + - [armhf] clk: bcm2835: Fix setting of PLL divider clock rates + - target: Fix target_release_cmd_kref shutdown comp leak + - iser-target: Fix identification of login rx descriptor type + - iser-target: Separate flows for np listeners and connections cma events + - iser-target: Rework connection termination + - nfsd4: fix bad bounds checking + - nfsd: fix deadlock secinfo+readdir compound + - ACPI / PM: Runtime resume devices when waking from hibernate + - writeback, cgroup: fix premature wb_put() in + locked_inode_to_wb_and_lock_list() + - writeback, cgroup: fix use of the wrong bdi_writeback which mismatches + the inode + - Input: synaptics - handle spurious release of trackstick buttons, again + - Input: ati_remote2 - fix crashes on detecting device with invalid + descriptor (CVE-2016-2185) + - ocfs2: o2hb: fix double free bug + - ocfs2/dlm: fix race between convert and recovery + - ocfs2/dlm: fix BUG in dlm_move_lockres_to_recovery_list + - mm/page_alloc: prevent merging between isolated and other pageblocks + - mtd: onenand: fix deadlock in onenand_block_markbad + - [x86] intel_idle: prevent SKL-H boot failure when C8+C9+C10 enabled + - PM / sleep: Clear pm_suspend_global_flags upon hibernate + - scsi_common: do not clobber fixed sense information + - sched/cputime: Fix steal time accounting vs. CPU hotplug + - [x86] perf/pebs: Add workaround for broken OVFL status on HSW+ + - [x86] perf/intel/uncore: Remove SBOX support for BDX-DE + - [x86] perf/intel: Fix PEBS warning by only restoring active PMU in pmi + - [x86] perf/intel: Use PAGE_SIZE for PEBS buffer size on Core2 + - [x86] perf/intel: Fix PEBS data source interpretation on Nehalem/Westmere + + [ Ben Hutchings ] + * mm: exclude ZONE_DEVICE from GFP_ZONE_TABLE + * mm: ZONE_DEVICE depends on SPARSEMEM_VMEMMAP + * [amd64] Re-enable ZONE_DMA and sound drivers that depend on it + (Closes: #814855, #819385, #820890) + * ntfs: Disable NTFS_RW (Closes: #566356); ntfs-3g has much more complete + write support + * Merge linux-tools source package into linux + (Closes: #550379, #573483, #816500) + * Add support for securelevel and prepare for Secure Boot (Closes: #820008): + - Add Matthew Garrett's securelevel patchset (see + Documentation/security/securelevel.txt) + - modules: Enable MODULE_SIG and MODULE_SIG_SHA256, but not MODULE_SIG_ALL + as signatures will be packaged separately + - debian/control: Add build-dependencies on libssl-dev, openssl + - debian/copyright: Note that extract-cert and sign-file are under LGPL 2.1 + - linux-kbuild: Add extract-cert and sign-file programs + - scripts: Fix X.509 PEM support in sign-file + - certs: Set SYSTEM_TRUSTED_KEYS to my own personal certificate to support + initial testing of signed modules + * Disable UNUSED_SYMBOLS; it is now itself unused + * linux-support: Include udeb configuration from debian/installer for use + by the linux-signed package + * Set ABI to 1 + * netfilter: x_tables: Fix parsing of IPT_SO_SET_REPLACE blobs (CVE-2016-3134) + - validate e->target_offset early + - make sure e->next_offset covers remaining blob size + * ipv4: Don't do expensive useless work during inetdev destroy (CVE-2016-3156) + * [x86] mm/32: Enable full randomization on i386 and X86_32 (CVE-2016-3672) + * fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers + (Closes: #819725) + * aufs: Update support patches to aufs4.5-20160328 (Closes: #819748) + * [x86] ACPI / processor: Request native thermal interrupt handling via _OSC + (Closes: #817016, #819336) + * [armhf] Add support for octa-core big.LITTLE systems including Exynos + (Closes: #819379) + * [armhf] watchdog: Enable S3C2410_WATCHDOG as module (Closes: #819377) + * nbd: Create size change events for userspace (Closes: #812487) + * [armhf] usb-modules: Add modules required for BeagleBoard-X15, thanks to + Vagrant Cascadian (Closes: #815848) + + [ Aurelien Jarno ] + * [mipsel/mips/config.loongson-2f] Disable VIDEO_CX23885, VIDEO_IVTV, + VIDEO_CX231XX, VIDEO_PVRUSB2 (fixes FTBFS). + * [mips*/octeon] Backport OCTEON SATA controller support from 4.6-rc1. + Enable AHCI_OCTEON and SATA_AHCI_PLATFORM. + * [mips*/octeon] Backport Octeon III CN7xxx interface detection from + 4.7 queue. + * [mips*/octeon] Enable SPI_OCTEON. + * [mips*/octeon] udeb: Add ahci_octeon and ahci_platform modules to + sata-modules. + * [mips*/octeon] Bump CONFIG_NR_CPUS to 32 to accomodate recent Octeon + III SoCs. + * [mips*/octeon] Enable CRYPTO_MD5_OCTEON, CRYPTO_SHA1_OCTEON, CRYPTO_SHA256 + and CRYPTO_SHA512_OCTEON. + + [ Roger Shimizu ] + * [armel/marvell] Change MTD_CFI_AMDSTD from module to built-in + because orion5x-based Buffalo Linkstation devices still need it + (Closes: #818598) + * [armel/marvell] Add DT support for "Synology DS112" and "Zyxel NSA320". + Thanks to Heinrich Schuchardt. (Closes: #819393) + * [armel/marvell] Add DT support for "Buffalo/Revogear Kurobox Pro" + * [armhf/armmp] Enable DW_WATCHDOG as module, used on Firefly-RK3288. + Patch by Vagrant Cascadian. (Closes: #820834) + + -- Ben Hutchings Thu, 14 Apr 2016 09:49:24 +0100 + +linux-tools (4.5-1~exp1) experimental; urgency=medium + + * New upstream release + + [ Ben Hutchings ] + * linux-perf: Fix use of uninitialized variables + + -- Ben Hutchings Sun, 20 Mar 2016 21:20:22 +0000 + +linux (4.5-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.5 + + [ Martin Michlmayr ] + * [arm64] Enable LEDS_GPIO. + * [arm64] Enable more QCOM options. (Closes: #815627) + * [arm64] udeb: Add leds-modules package containing leds-gpio driver. + * [arm64] udeb: Add regulators and SoC modules to core-modules. + + [ Uwe Kleine-König ] + * [armhf] Enable DRM_ETNAVIV. + + [ Ben Hutchings ] + * [armel/versatile] Enable GPIOLIB, new dependency of SMC91X (fixes FTBFS) + * [x86] input: Enable ASUS_WIRELESS as module (Closes: #818487) + * [x86] amdgpu: Enable DRM_AMD_POWERPLAY (Closes: #818174) + * [x86] Enable RANDOMIZE_BASE (kASLR). This is incompatible with hibernation, + so you must use the kernel parameter "kaslr" to enable kASLR and disable + hibernation at boot time. (Closes: #816067) + * [x86] vmxnet3: fix lock imbalance in vmxnet3_tq_xmit() (regression in 4.5) + + -- Ben Hutchings Sun, 20 Mar 2016 12:06:57 +0000 + +linux (4.5~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Mon, 07 Mar 2016 22:20:48 +0000 + +linux-tools (4.5~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * Makefile.inc: Add support for wildcards in $(SCRIPTS) and $(DATA) + * linux-kbuild: Include scripts/Makefile.* (Closes: #815593) + * Makefile.inc, rules.real: Fix conflation of $(DESTDIR) and $(prefix) + * hyperv-daemons: Fix rule redefinition that 'make' warns about + * debian/control: Build-Depend on dh-python, as dh_python2 warns we should + * lockdep: Add '+' prefix to make invocation, so it can be parallelised + * tools/build: Fix 'unused variable' warning in the bpf() feature check + * lockdep: Add more missing macros + + -- Ben Hutchings Mon, 07 Mar 2016 03:07:00 +0000 + +linux-tools (4.5~rc5-1~exp3) experimental; urgency=medium + + * Adjust build fix from unstable + + -- Ben Hutchings Sun, 21 Feb 2016 23:45:04 +0000 + +linux-tools (4.5~rc5-1~exp2) experimental; urgency=medium + + * Merge build fix from unstable + + -- Ben Hutchings Sun, 21 Feb 2016 17:40:52 +0000 + +linux-tools (4.5~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * lockdep: Add missing macros + * Adjust VPATH to work for check-hyperv (and simplify the modpost wrapper) + * tools/build: Remove bpf() run-time check at build time + + -- Ben Hutchings Sun, 21 Feb 2016 16:45:52 +0000 + +linux (4.5~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [armel/versatile] Enable GPIOLIB, needed to build smc91x driver with + OF enabled (fixes FTBFS) + * [powerpc] mm: Fix HAVE_ARCH_SOFT_DIRTY dependencies (fixes FTBFS) + + -- Ben Hutchings Sun, 21 Feb 2016 13:17:27 +0000 + +linux (4.5~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Roger Shimizu ] + * Enable TTY_PRINTK as module (Closes: #814540). + + [ Ben Hutchings ] + * [rt] Disable until it is updated for 4.5 or later + * aufs: Update support patches to aufs4.x-rcN-20160215 + * Compile with gcc-5 on all architectures + * [hppa] Update build-dependencies for renaming of binutils-hppa64 + * [x86] udeb: Move scsi_transport_fc to scsi-core-modules, since hv_storvsc + now depends on it + + -- Ben Hutchings Thu, 18 Feb 2016 01:57:20 +0000 + +linux-tools (4.4.6-1) unstable; urgency=medium + + * New upstream stable update: + - tools lib traceevent: Fix output of %llu for 64 bit values read on + 32 bit machines + - perf tools: tracepoint_error() can receive e=NULL, robustify it + - perf kvm record/report: 'unprocessable sample' error while + recording/reporting guest data + - tools: hv: vss: fix the write()'s argument: error -> vss_msg + - uapi: update install list after nvme.h rename + - perf stat: Do not clean event's private stats + + [ Mattia Dongili ] + * Build linux-cpupower. + + [ Ben Hutchings ] + * debian/control: Update policy version to 3.9.7; no changes required + * linux-perf: Override lintian errors for perf-read-vdso{,x}32 in + 64-bit packages + * debian/copyright: Move GPL-2 boilerplate to its own paragraph + + -- Ben Hutchings Sun, 20 Mar 2016 16:23:48 +0000 + +linux (4.4.6-1) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.5 + - Btrfs: fix deadlock running delayed iputs at transaction commit time + (regression in 4.1) + - btrfs: Fix no_space in write and rm loop + (regression in 4.4) + - btrfs: async-thread: Fix a use-after-free error for trace + - [x86] drm/amdgpu: mask out WC from BO on unsupported arches + - block: Initialize max_dev_sectors to 0 + - [hppa] Fix ptrace syscall number and return value modification + - [x86] kvm: Update tsc multiplier on change. + (regression in 4.4) + - fbcon: set a default value to blink interval + - cifs: fix out-of-bounds access in lease parsing + - CIFS: Fix SMB2+ interim response processing for read requests + - [x86] vfio: fix ioctl error handling + - [x86] KVM: fix root cause for missed hardware breakpoints + - [arm*] KVM: Fix ioctl error handling + - [amd64] iommu: Apply workaround for ATS write permission check + - [amd64] iommu: Fix boot warning when device 00:00.0 is not iommu covered + - [x86] iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path + - target: Fix WRITE_SAME/DISCARD conversion to linux 512b sectors + - [x86,powerpc*] drm/ast: Fix incorrect register check for DRAM width + - drm/radeon/pm: update current crtc info after setting the powerstate + - [x86] drm/amdgpu/pm: update current crtc info after setting the powerstate + - [x86] drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well + - [x86] drm/amdgpu/gfx8: specify which engine to wait before vm flush + - [x86] drm/amdgpu: return from atombios_dp_get_dpcd only when error + - libata: fix HDIO_GET_32BIT ioctl + - writeback: flush inode cgroup wb switches instead of pinning super_block + - Adding Intel Lewisburg device IDs for SATA + - [arm64] vmemmap: use virtual projection of linear region + (regression in 4.1) + - ata: ahci: don't mark HotPlugCapable Ports as external/removable + - tracing: Do not have 'comm' filter override event 'comm' field + (regression in 4.3) + - Btrfs: fix loading of orphan roots leading to BUG_ON + - Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin" + - jffs2: Fix page lock / f->sem deadlock + - jffs2: Fix directory hardlinks from deleted directories + - ALSA: usb-audio: Add a quirk for Plantronics DA45 + - [amd64] ALSA: ctl: Fix ioctls for X32 ABI + - [x86] ALSA: hda - Fix mic issues on Acer Aspire E1-472 + - [amd64] ALSA: rawmidi: Fix ioctls X32 ABI + - [amd64] ALSA: timer: Fix ioctls for X32 ABI + - [amd64] ALSA: pcm: Fix ioctls for X32 ABI + - ALSA: seq: oss: Don't drain at closing a client + - ALSA: hdspm: Fix wrong boolean ctl value accesses + - ALSA: hdsp: Fix wrong boolean ctl value accesses + - ALSA: hdspm: Fix zero-division + - ALSA: timer: Fix broken compat timer user status ioctl + - [armhf] usb: chipidea: otg: change workqueue ci_otg as freezable + - USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder + - USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3) + - USB: qcserial: add Sierra Wireless EM74xx device ID + - USB: serial: option: add support for Telit LE922 PID 0x1045 + - USB: serial: option: add support for Quectel UC20 + - [mips*] scache: Fix scache init with invalid line size. + - [mips*] traps: Fix SIGFPE information leak from `do_ov' and + `do_trap_or_bp' + - ubi: Fix out of bounds write in volume update code + - thermal: cpu_cooling: fix out of bounds access in time_in_idle + - [x86] drm/amdgpu: Use drm_calloc_large for VM page_tables array + - block: check virt boundary in bio_will_gap() + - [x86] drm/i915: more virtual south bridge detection + - [x86] drm/i915: refine qemu south bridge detection + - modules: fix longstanding /proc/kallsyms vs module insertion race. + - [x86] drm/amdgpu: fix topaz/tonga gmc assignment in 4.4 stable + + [ Ben Hutchings ] + * [x86] drm/i915: Fix oops caused by fbdev initialization failure + * module: Fix ABI change in 4.4.5 + * Revert "libata: Align ata_device's id on a cacheline" to avoid ABI change + * [amd64] Fix more regressions due to "efi: Build our own page table + structure": + - efi: Fix boot crash by always mapping boot service regions into new EFI + page tables (Closes: #815125) + - mm/pat: Fix boot crash when 1GB pages are not supported by cpu + * [armhf] gpio: Enable GPIO_PCF857X as module, needed by TI DRA7xx EVMs + (Closes: #818386) + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.6 + - [arm64] account for sparsemem section alignment when choosing vmemmap + offset + - [armel,armhf] mvebu: fix overlap of Crypto SRAM with PCIe memory window + - [armhf] dts: dra7: do not gate cpsw clock due to errata i877 + - [armhf] OMAP2+: hwmod: Introduce ti,no-idle dt property + - PCI: Allow a NULL "parent" pointer in pci_bus_assign_domain_nr() + - kvm: cap halt polling at exactly halt_poll_ns + - [x86] KVM: VMX: disable PEBS before a guest entry + - [s390x] KVM: correct fprs on SIGP (STOP AND) STORE STATUS + - [powerpc*] KVM: Book3S HV: Sanitize special-purpose register values on + guest exit + - [x86] KVM: MMU: fix ept=0/pte.u=1/pte.w=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 + combo + - [x86] KVM: MMU: fix reserved bit check for + ept=0/CR0.WP=0/CR4.SMEP=1/EFER.NX=0 + - [s390x] mm: four page table levels vs. fork (CVE-2016-2143) + - [s390x] dasd: fix diag 0x250 inline assembly + - tracing: Fix check for cpu online when event is disabled + - jffs2: reduce the breakage on recovery from halfway failed rename() + - ncpfs: fix a braino in OOM handling in ncp_fill_cache() + - ASoC: dapm: Fix ctl value accesses in a wrong type + - ovl: ignore lower entries when checking purity of non-directory entries + - ovl: fix working on distributed fs as lower layer + - wext: fix message delay/ordering + - cfg80211/wext: fix message ordering + - can: gs_usb: fixed disconnect bug by removing erroneous use of kfree() + - iwlwifi: mvm: inc pending frames counter also when txing non-sta + - mac80211: minstrel: Change expected throughput unit back to Kbps + - mac80211: fix use of uninitialised values in RX aggregation + - mac80211: minstrel_ht: set default tx aggregation timeout to 0 + - mac80211: minstrel_ht: fix a logic error in RTS/CTS handling + - mac80211: check PN correctly for GCMP-encrypted fragmented MPDUs + - mac80211: Fix Public Action frame RX in AP mode + - [armhf] gpu: ipu-v3: Do not bail out on missing optional port nodes + - [i386/686-pae] mm: Fix slow_virt_to_phys() for X86_PAE again + - Revert "drm/radeon: call hpd_irq_event on resume" + - [x86] drm/amdgpu: Fix error handling in amdgpu_flip_work_func. + - drm/radeon: Fix error handling in radeon_flip_work_func. + - Revert "drm/radeon/pm: adjust display configuration after powerstate" + - [powerpc*] powernv: Add a kmsg_dumper that flushes console output on panic + - [powerpc*] powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages + - userfaultfd: don't block on the last VM updates at exit time + - ovl: copy new uid/gid into overlayfs runtime inode + - ovl: fix getcwd() failure after unsuccessful rmdir + - [mips*] smp.c: Fix uninitialised temp_foreign_map + - block: don't optimize for non-cloned bio in bio_get_last_bvec() + - target: Drop incorrect ABORT_TASK put for completed commands + * netfilter: x_tables: check for size overflow (CVE-2016-3135) + + [ Ian Campbell ] + * [arm64] Enable ARCH_HISI (Hisilicon) and the set of currently available + drivers (Power, Thermal, MMC) (Closes: #812540) + + -- Ben Hutchings Thu, 17 Mar 2016 01:25:23 +0000 + +linux (4.4.4-2) unstable; urgency=medium + + * Ignore ABI changes in sdhci* modules (fixes FTBFS on armhf) + * udeb: Add dependency from mmc-modules to crc-modules (fixes FTBFS on arm64) + * [hppa] Ignore ABI changes in built-in drm_kms_helper code (fixes FTBFS) + * [powerpc*] Revert "powerpc: Simplify module TOC handling"; it is not needed + to fix #808043 and causes a regression on ppc64el + + -- Ben Hutchings Wed, 09 Mar 2016 02:15:48 +0000 + +linux (4.4.4-1) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.3 + - [x86] mm: Fix types used in pgprot cacheability flags translations + - [x86] mm/pat: Avoid truncation when converting cpa->numpages to address + - [x86] uaccess/64: Make the __copy_user_nocache() assembly code + more readable + - [x86] uaccess/64: Handle the caching of 4-byte nocache copies + properly in __copy_user_nocache() + - [x86] mm: Fix vmalloc_fault() to handle large pages properly + - ALSA: hda - Cancel probe work instead of flush at remove + - ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream + - ALSA: seq: Fix leak of pool buffer at concurrent writes + - ALSA: seq: Fix double port list deletion + - [armhf] phy: twl4030-usb: Relase usb phy on unload + - [armhf] phy: twl4030-usb: Fix unbalanced pm_runtime_enable on + module reload + - staging/speakup: Use tty_ldisc_ref() for paste kworker + - pty: fix possible use after free of tty->driver_data + - pty: make sure super_block is still valid in final /dev/tty close + - tty: Add support for PCIe WCH382 2S multi-IO card + - [x86] serial: 8250_pci: Add Intel Broadwell ports + - [armhf] serial: omap: Prevent DoS using unprivileged ioctl(TIOCSRS485) + - ext4: fix scheduling in atomic on group checksum failure + - ext4: fix potential integer overflow + - ext4: don't read blocks from disk after extents being swapped + - btrfs: handle invalid num_stripes in sys_array + - Btrfs: fix fitrim discarding device area reserved for boot loader's use + - Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()" + - btrfs: properly set the termination value of ctx->pos in readdir + - Btrfs: fix invalid page accesses in extent_same (dedup) ioctl + - Btrfs: fix page reading in extent_same ioctl leading to csum errors + - Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl + - Btrfs: fix direct IO requests not reporting IO error to user space + - ptrace: use fsuid, fsgid, effective creds for fs access checks + - tracing: Fix freak link error caused by branch tracer + - tracepoints: Do not trace when cpu is offline + - klist: fix starting point removed bug in klist iterators + - scsi: add Synology to 1024 sector blacklist + - iscsi-target: Fix potential dead-lock during node acl delete + - SCSI: fix crashes in sd and sr runtime PM + - drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration + - scsi_dh_rdac: always retry MODE SELECT on command lock violation + - SCSI: Add Marvell Console to VPD blacklist + - scsi: fix soft lockup in scsi_remove_target() on module removal + - iio: adis_buffer: Fix out-of-bounds memory access + - iio:adc:ti_am335x_adc Fix buffered mode by identifying as software buffer. + - iio-light: Use a signed return type for ltr501_match_samp_freq() + - iio: add HAS_IOMEM dependency to VF610_ADC + - iio: add IIO_TRIGGER dependency to STK8BA50 + - iio: dac: mcp4725: set iio name property in sysfs + - iio: light: acpi-als: Report data as processed + - iio: pressure: mpl115: fix temperature offset sign + - iio: inkern: fix a NULL dereference on error + - cifs: Ratelimit kernel log messages + - cifs: fix race between call_async() and reconnect() + - cifs_dbg() outputs an uninitialized buffer in cifs_readdir() + - cifs: fix erroneous return value + - NFS: Fix attribute cache revalidation + - pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh() + - nfs: Fix race in __update_open_stateid() + - pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn + - udf: limit the maximum number of indirect extents in a row + - udf: Prevent buffer overrun with multi-byte characters + - udf: Check output buffer length when converting name to CS0 + - SUNRPC: Fixup socket wait for memory + - [powerpc] eeh: Fix PE location code + - [powerpc] eeh: Fix stale cached primary bus + - [powerpc] powernv: Fix stale PE primary bus + - [powerpc] ioda: Set "read" permission when "write" is set + - [armhf] mvebu: remove duplicated regulator definition in Armada 388 GP + - [arm64] mm: avoid calling apply_to_page_range on empty range + - [armel,armhf] 8519/1: ICST: try other dividends than 1 + - [armel,armhf] 8517/1: ICST: avoid arithmetic overflow in icst_hz() + - [armhf] dts: Fix wl12xx missing clocks that cause hangs + - [armhf] dts: Fix omap5 PMIC control lines for RTC writes + - [armhf] dts: omap5-board-common: enable rtc and charging of backup battery + - [armhf] OMAP2+: Fix wait_dll_lock_timed for rodata + - [armhf] OMAP2+: Fix l2_inv_api_params for rodata + - [armhf] OMAP2+: Fix l2dis_3630 for rodata + - [armhf] OMAP2+: Fix save_secure_ram_context for rodata + - [armhf] OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata + - [arm64] dma-mapping: fix handling of devices registered before + arch_initcall + - [arm,arm64] KVM: Fix reference to uninitialised VGIC + - [powerpc*] KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8 + - [powerpc*] KVM: PPC: Fix ONE_REG AltiVec support + - mm: soft-offline: check return value in second __get_any_page() call + - libnvdimm: fix namespace object confusion in is_uuid_busy() + - mm: fix mlock accouting + - mm: replace vma_lock_anon_vma with anon_vma_lock_read/write + - mm: fix regression in remap_file_pages() emulation + - Input: elantech - mark protocols v2 and v3 as semi-mt + - [x86] Input: i8042 - add Fujitsu Lifebook U745 to the nomux list + - string_helpers: fix precision loss for some inputs + - Input: vmmouse - fix absolute device registration + - [x86] iommu/vt-d: Don't skip PCI devices when disabling IOTLB + - [x86] iommu/amd: Correct the wrong setting of alias DTE in do_attach + - [x86] iommu/vt-d: Fix mm refcounting to hold mm_count not mm_users + - [x86] iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG + - [x86] iommu/vt-d: Clear PPR bit to ensure we get more page + request interrupts + - Revert "xhci: don't finish a TD if we get a short-transfer event mid TD" + - xhci: Fix list corruption in urb dequeue at host removal + - fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list() + - [s390x] numa: fix /proc//numa_maps for hugetlbfs on s390 + - memcg: only free spare array when readers are done + - radix-tree: fix race in gang lookup + - drivers/hwspinlock: fix race between radix tree insertion and lookup + - radix-tree: fix oops after radix_tree_iter_retry + - dump_stack: avoid potential deadlocks + - mm,thp: khugepaged: call pte flush at the time of collapse + - [x86] intel_scu_ipcutil: underflow in scu_reg_access() + - ipc/shm: handle removed segments gracefully in shm_mmap() + - devm_memremap_release(): fix memremap'd addr handling + - futex: Drop refcount if requeue_pi() acquired the rtmutex + - ovl: allow zero size xattr + - ovl: use a minimal buffer in ovl_copy_xattr + - ovl: check dentry positiveness in ovl_cleanup_whiteouts() + - ovl: root: copy attr + - ovl: setattr: check permissions before copy-up + - libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct + - xfs: inode recovery readahead can race with inode buffer creation + - Revert "xfs: clear PF_NOFREEZE for xfsaild kthread" + - xfs: log mount failures don't wait for buffers to be released + - prctl: take mmap sem for writing to protect against others + - timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper + - posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper + - itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper + - modules: fix modparam async_probe request + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.4 + - af_iucv: Validate socket address length in iucv_sock_bind() + - gro: Make GRO aware of lightweight tunnels. + - tunnels: Allow IPv6 UDP checksums to be correctly controlled. + - lwt: fix rx checksum setting for lwt devices tunneling over ipv6 + - tcp: fix NULL deref in tcp_v4_send_ack() + - af_unix: fix struct pid memory leak + - pptp: fix illegal memory access caused by multiple bind()s + - sctp: allow setting SCTP_SACK_IMMEDIATELY by the application + - tipc: fix connection abort during subscription cancel + - inet: frag: Always orphan skbs inside ip_defrag() + - tcp: beware of alignments in tcp_get_info() + - ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail() + - ipv6/udp: use sticky pktinfo egress ifindex on connect() + - ipv6: addrconf: Fix recursive spin lock call + - ipv6: fix a lockdep splat + - unix: correctly track in-flight fds in sending process user_struct + (regression in 4.3.3-6; CVE-2016-2550) + - tcp: do not drop syn_recv on all icmp reports + - net:Add sysctl_max_skb_frags + - tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs + - enic: increment devcmd2 result ring in case of timeout + - sctp: translate network order to host order when users get a hmacid + - net: Copy inner L3 and L4 headers as unaligned on GRE TEB + - flow_dissector: Fix unaligned access in __skb_flow_dissector when used by + eth_get_headlen + - bpf: fix branch offset adjustment on backjumps after patching + ctx expansion + - bonding: Fix ARP monitor validation + - ipv4: fix memory leaks in ip_cmsg_send() callers + - af_unix: Don't set err in unix_stream_read_generic unless there was + an error + - af_unix: Guard against other == sk in unix_dgram_sendmsg + - tipc: fix premature addition of node to lookup table + - tcp: md5: release request socket instead of listener + - qmi_wwan: add "4G LTE usb-modem U901" + - net/mlx4_en: Count HW buffer overrun only once + - net/mlx4_en: Choose time-stamping shift value according to HW frequency + - net/mlx4_en: Avoid changing dev->features directly in run-time + - l2tp: Fix error creating L2TP tunnels + - pppoe: fix reference counting in PPPoE proxy + - net_sched fix: reclassification needs to consider ether protocol changes + - route: check and remove route cache when we get route + - tcp/dccp: fix another race at listener dismantle + - IFF_NO_QUEUE: Fix for drivers not calling ether_setup() + - rtnl: RTM_GETNETCONF: fix wrong return value + - tipc: unlock in error path + - unix_diag: fix incorrect sign extension in unix_lookup_by_ino + - sctp: Fix port hash table size computation + - ext4: fix bh->b_state corruption + - [s390x] KVM: fix guest fprs memory leak + - devm_memremap: Fix error value when memremap failed + - efi: Make efivarfs entries immutable by default + - efi: Add pstore variables to the deletion whitelist + - bcache: fix a livelock when we cause a huge number of cache misses + - bcache: Add a cond_resched() call to gc + - bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device + - bcache: fix a leak in bch_cached_dev_run() + - bcache: unregister reboot notifier if bcache fails to unregister device + - bcache: allows use of register in udev to avoid "device_busy" error. + - bcache: prevent crash on changing writeback_running + - bcache: Change refill_dirty() to always scan entire disk if necessary + - dm thin: fix race condition when destroying thin pool workqueue + - can: ems_usb: Fix possible tx overflow + - usb: dwc3: Fix assignment of EP transfer resources + - USB: cp210x: add IDs for GE B650V3 and B850V3 boards + - USB: option: add support for SIM7100E + - USB: option: add "4G LTE usb-modem U901" + - [armhf] spi: omap2-mcspi: Prevent duplicate gpio_request + - iw_cxgb3: Fix incorrectly returning error on success + - [x86] drm/i915: shut up gen8+ SDE irq dmesg noise + - ocfs2: unlock inode if deleting inode from orphan fails + - mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED + - mm: numa: quickly fail allocations for NUMA balancing on full nodes + - genirq: Validate action before dereferencing it in + handle_irq_event_percpu() + - [s390x] KVM: fix memory overwrites when vx is disabled + - Btrfs: add missing brelse when superblock checksum fails + - Btrfs: igrab inode in writepage + - btrfs: statfs: report zero available if metadata are exhausted + - Btrfs: send, don't BUG_ON() when an empty symlink is found + - Btrfs: fix number of transaction units required to create symlink + - Btrfs: fix transaction handle leak on failure to create hard link + - Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and + subvolume roots + - btrfs: initialize the seq counter in struct btrfs_device + - [s390x] fix normalization bug in exception table sorting + - [s390x] dasd: prevent incorrect length error under z/VM after PAV changes + - [s390x] dasd: fix refcount for PAV reassignment + - [s390x] dasd: fix performance drop + - [s390x] compat: correct restore of high gprs on signal return + - [s390x] fpu: signals vs. floating point control register + - locks: fix unlock when fcntl_setlk races with a close + - rtlwifi: rtl8192cu: Add missing parameter setup + - rtlwifi: rtl8192ce: Fix handling of module parameters + - rtlwifi: rtl8192de: Fix incorrect module parameter descriptions + - rtlwifi: rtl8723ae: Fix initialization of module parameters + - rtlwifi: rtl8192se: Fix module parameter initialization + - rtlwifi: rtl8188ee: Fix module parameter initialization + - rtlwifi: rtl8723be: Fix module parameter initialization + - [x86] mei: fix fasync return value on error + - [x86] mei: validate request value in client notify request ioctl + - namei: ->d_inode of a pinned dentry is stable only for positives + - [armhf] rc: sunxi-cir: Initialize the spinlock properly + - gspca: ov534/topro: prevent a division by 0 + - vb2: fix a regression in poll() behavior for output,streams + - tda1004x: only update the frontend properties if locked + - dm snapshot: fix hung bios when copy error occurs + - dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths + - posix-clock: Fix return code on the poll method's error path + - mmc: sdhci-pci: Do not default to 33 Ohm driver strength for Intel SPT + - mmc: sdhci: Fix DMA descriptor with zero data length + - mmc: sdio: Fix invalid vdd in voltage switch power cycle + - mmc: mmc: Fix incorrect use of driver strength switching HS200 and HS400 + - mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off() + - mmc: core: Enable tuning according to the actual timing + - [armhf, arm64] mmc: mmci: fix an ages old detection error + - [x86] mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL + - [x86] mmc: sdhci-pci: Fix card detect race for Intel BXT/APL + - mmc: sdhci: Allow override of mmc host operations + - mmc: sdhci: Allow override of get_cd() called from sdhci_request() + - [x86] Drivers: hv: vmbus: Fix a Host signaling bug + - Bluetooth: Use continuous scanning when creating LE connections + - Bluetooth: Add support of Toshiba Broadcom based devices + - Bluetooth: Fix incorrect removing of IRKs + - Bluetooth: 6lowpan: Fix kernel NULL pointer dereferences + - Bluetooth: 6lowpan: Fix handling of uncompressed IPv6 packets + - time: Avoid signed overflow in timekeeping_get_ns() + - cputime: Prevent 32bit overflow in time[val|spec]_to_cputime() + - [mips*] Revert "MIPS: Fix PAGE_MASK definition" + - [mips*el/loongson-3] Loongson-3: Fix SMP_ASK_C0COUNT IPI handler + - [mips*] hpet: Choose a safe value for the ETIME check + - [mips*] Fix buffer overflow in syscall_get_arguments() + - EDAC: Robustify workqueues destruction + - EDAC, mc_sysfs: Fix freeing bus' name + - [sparc64] fix incorrect sign extension in sys_sparc64_personality + - [armhf] clk: exynos: use irqsave version of spin_lock to avoid deadlock + with irqs + - [armhf] regulator: axp20x: Fix GPIO LDO enable value for AXP22x + - virtio_balloon: fix race by fill and leak + - virtio_balloon: fix race between migration and ballooning + - virtio_pci: fix use after free on release + - [x86] drm/vmwgfx: Fix an incorrect lock check + - [x86] drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates + - [x86] drm/vmwgfx: respect 'nomodeset' + - [x86] drm/amdgpu: Fix off-by-one errors in amdgpu_vm_bo_map + - [x86] drm/amdgpu: call hpd_irq_event on resume + - [x86] drm/amdgpu: fix lost sync_to if scheduler is enabled. + - [x86] drm/amdgpu: fix tonga smu resume + - [x86] drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2 + - [x86] drm/amdgpu: no need to load MC firmware on fiji + - [x86] drm/amdgpu: move gmc7 support out of CIK dependency + - [x86] drm/amdgpu: iceland use CI based MC IP + - [x86] drm/amdgpu: The VI specific EXE bit should only apply to GMC + v8.0 above + - [x86] drm/amdgpu: pull topaz gmc bits into gmc_v7 + - [x86] drm/amdgpu: drop topaz support from gmc8 module + - [x86] drm/amdgpu: don't load MEC2 on topaz + - [x86] drm/amdgpu: remove exp hardware support from iceland + - [x86] drm/amdgpu: fix s4 resume + - [x86] drm/amdgpu: remove unnecessary forward declaration + - [x86] drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2) + - [x86] drm/amdgpu: fix issue with overlapping userptrs + - [x86] drm/amdgpu: use post-decrement in error handling + - [x86] drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc. + - [x86] drm/amdgpu/pm: adjust display configuration after powerstate + - drm/nouveau/kms: take mode_config mutex in connector hotplug path + - drm/nouveau/display: Enable vblank irqs after display engine is on again. + (regression in 4.4) + - drm/nouveau/disp/dp: ensure sink is powered up before attempting + link training + - drm/nouveau: platform: Fix deferred probe + - drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr + - drm/radeon: Fix "slow" audio over DP on DCE8+ + - drm/radeon: clean up fujitsu quirks + - drm/radeon: properly byte swap vce firmware setup + - drm/radeon: cleaned up VCO output settings for DP audio + - drm/radeon: Add a common function for DFS handling + - drm/radeon: fix DP audio support for APU with DCE4.1 display engine + - drm/radeon: mask out WC from BO on unsupported arches + - drm/radeon: hold reference to fences in radeon_sa_bo_new + - drm: fix missing reference counting decrease + - [x86] drm/i915: Restore inhibiting the load of the default context + - [x86] drm/i915: intel_hpd_init(): Fix suspend/resume reprobing + - [x86] drm/i915: Init power domains early in driver load + - [x86] drm/i915: Make sure DC writes are coherent on flush. + - [x86] drm/i915/dp: fall back to 18 bpp when sink capability is unknown + - [x86] drm/i915: Don't reject primary plane windowing with color keying + enabled on SKL+ + - [x86] drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select() + - [x86] drm/i915/dsi: defend gpio table against out of bounds access + - [x86] drm/i915/dsi: don't pass arbitrary data to sideband + - [x86] drm/i915: fix error path in intel_setup_gmbus() + - drm/qxl: use kmalloc_array to alloc reloc_info in + qxl_process_single_command + - drm/radeon: use post-decrement in error handling + - drm: No-Op redundant calls to drm_vblank_off() (v2) + - drm: Prevent vblank counter bumps > 1 with active vblank clients. (v2) + (regression in 4.4) + - drm: Fix drm_vblank_pre/post_modeset regression from Linux 4.4 + - drm: Fix treatment of drm_vblank_offdelay in drm_vblank_on() (v2) + - drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2) + - drm/radeon/pm: adjust display configuration after powerstate + - make sure that freeing shmem fast symlinks is RCU-delayed + - [x86] toshiba_acpi: Fix blank screen at boot if transflective backlight is + supported + - [x86] ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill + dmi list + - [x86] ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list + - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba + Portege R700 + - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba + Satellite R830 + - [x86] ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist" + - [x86] ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot() + - nfit: fix multi-interface dimm handling, acpi6.1 compatibility + - dmaengine: dw: fix cyclic transfer setup + - dmaengine: dw: fix cyclic transfer callbacks + - dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer + - IB/cm: Fix a recently introduced deadlock + - IB/qib: fix mcast detach when qp not attached + - IB/qib: Support creating qps with GFP_NOIO flag + - IB/mlx5: Expose correct maximum number of CQE capacity + - Thermal: initialize thermal zone device correctly + - Thermal: handle thermal zone device properly during system sleep + - Thermal: do thermal zone update after a cooling device registered + - hwmon: (dell-smm) Blacklist Dell Studio XPS 8000 + - hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook + - hwmon: (ads1015) Handle negative conversion values correctly + - cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype + - cpufreq: Fix NULL reference crash while accessing policy->governor_data + - seccomp: always propagate NO_NEW_PRIVS on tsync + - libceph: fix ceph_msg_revoke() + - libceph: don't bail early from try_read() when skipping a message + - libceph: use the right footer size when skipping a message + - libceph: don't spam dmesg with stray reply warnings + - sd: Optimal I/O size is in bytes, not sectors + - Staging: speakup: Fix getting port information + - cdc-acm:exclude Samsung phone 04e8:685d + - tick/nohz: Set the correct expiry when switching to nohz/lowres mode + - rfkill: fix rfkill_fop_read wait_event usage + - mac80211: Requeue work after scan complete for all VIF types. + - workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup + - Revert "workqueue: make sure delayed work run in local cpu" + - ALSA: hda - Apply clock gate workaround to Skylake, too + - ALSA: hda - Fixing background noise on Dell Inspiron 3162 + - target: Fix LUN_RESET active I/O handling for ACK_KREF + - target: Fix LUN_RESET active TMR descriptor handling + - target: Fix TAS handling for multi-session se_node_acls + - target: Fix remote-port TMR ABORT + se_cmd fabric stop + - target: Fix race with SCF_SEND_DELAYED_TAS handling + - qla2xxx: Fix stale pointer access. + - libata: fix sff host state machine locking while polling + - PCI/AER: Flush workqueue on device remove to avoid use-after-free + - cpuset: make mm migration asynchronous + - cgroup: make sure a parent css isn't offlined before its children + - writeback: keep superblock pinned during cgroup writeback + association switches + - phy: core: fix wrong err handle for phy_power_on + - [x86] i2c: i801: Adding Intel Lewisburg support for iTCO + - bio: return EINTR if copying to user space got interrupted + - block: fix use-after-free in dio_bio_complete + - nfs: fix nfs_size_to_loff_t + - NFSv4: Fix a dentry leak on alias use + - KVM: async_pf: do not warn on page allocation failures + - [armhf,arm64] KVM: vgic: Ensure bitmaps are long enough + - [x86] KVM: fix missed hardware breakpoints + - [x86] KVM: fix conversion of addresses to linear in 32-bit protected mode + - [x86] KVM: MMU: fix ubsan index-out-of-range warning + - [powerpc] eeh: Fix partial hotplug criterion + - tracing: Fix showing function event in available_events + - sunrpc/cache: fix off-by-one in qword_get() + - kernel/resource.c: fix muxed resource handling in __request_region() + - do_last(): don't let a bogus return value from ->open() et.al. to + confuse us + - [armhf] OMAP2+: Fix onenand initialization to avoid filesystem corruption + - [armhf] xen: correctly handle DMA mapping of compound pages + - xen/scsiback: correct frontend counting + - xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY + - xen/pciback: Save the number of MSI-X entries to be copied later. + - xen/pcifront: Fix mysterious crashes when NUMA locality information + was extracted. + - should_follow_link(): validate ->d_seq after having decided to follow + - do_last(): ELOOP failure exit should be done after leaving RCU mode + - [x86] mpx: Fix off-by-one comparison with nr_registers + - [x86] entry/compat: Add missing CLAC to entry_INT80_32 + - [x86] irq: Call chip->irq_set_affinity in proper context + - [x86] irq: Fix a race in x86_vector_free_irqs() + - [x86] irq: Validate that irq descriptor is still active + - [x86] irq: Do not use apic_chip_data.old_domain as temporary buffer + - [x86] irq: Reorganize the return path in assign_irq_vector + - [x86] irq: Reorganize the search in assign_irq_vector + - [x86] irq: Check vector allocation early + - [x86] irq: Copy vectormask instead of an AND operation + - [x86] irq: Remove offline cpus from vector cleanup + - [x86] irq: Clear move_in_progress before sending cleanup IPI + - [x86] irq: Remove the cpumask allocation from send_cleanup_vector() + - [x86] irq: Remove outgoing CPU from vector cleanup mask + - [x86] irq: Call irq_force_move_complete with irq descriptor + - [x86] irq: Plug vector cleanup race + - IB/cma: Fix RDMA port validation for iWarp + - security: let security modules use PTRACE_MODE_* with bitmasks + - iwlwifi: dvm: fix WoWLAN + - iwlwifi: pcie: properly configure the debug buffer size for 8000 + - iwlwifi: update and fix 7265 series PCI IDs + - iwlwifi: mvm: don't allow sched scans without matches to be started + + [ Roger Shimizu ] + * [armhf] dts: imx6dlq-wandboard-revb1: use unique model id + (Closes: #813881). + * [armel] dts: Add various device-tree fixes and improvements for + Buffalo Linkstation devices. + + [ Ben Hutchings ] + * udeb: Include more modules, including those needed on Firefly-RK3288, + thanks to Vagrant Cascadian (Closes: #815476) + - [armhf] core-modules: Include regulator drivers by default + - mmc-modules: Include MMC controller drivers by default + - mmc-modules: Depends on usb-modules + - usb-modules: Include USB PHY drivers by default + * uas: Fix high-order alloc + * Fix/ignore module ABI changes in 4.4.4 as appropriate + * Revert "drm/radeon: call hpd_irq_event on resume", reported to cause + regressions (crash/hang) on some systems + * [powerpc*] Fix module linking to work with binutils 2.26 (Closes: #808043): + - Simplify module TOC handling + - Fix dedotify for binutils >= 2.26 + + [ Ian Campbell ] + * [armhf] dts: Add DTB for Novena, patches from Vagrant Cascadian + (Closes: #815324) + + [ Uwe Kleine-König ] + * [armhf] enable AXP20X_POWER (Closes: #815971) + * [rt] Update to 4.4.3-rt9 + + -- Ben Hutchings Mon, 07 Mar 2016 19:27:18 +0000 + +linux-tools (4.4-4) unstable; urgency=medium + + * hyperv-daemons: Only build the progarams on x86 (fixes FTBFS) + + -- Ben Hutchings Sun, 21 Feb 2016 16:57:55 +0000 + +linux-tools (4.4-3) unstable; urgency=medium + + * hyperv-daemons: Add init scripts + + -- Ben Hutchings Sun, 21 Feb 2016 15:07:55 +0000 + +linux (4.4.2-3) unstable; urgency=medium + + * [x86] efi-bgrt: Fix kernel panic when mapping BGRT data (Closes: #815125) + * [x86] efi-bgrt: Replace early_memremap() with memremap() + + -- Ben Hutchings Sun, 21 Feb 2016 13:11:18 +0000 + +linux-tools (4.4-2) unstable; urgency=medium + + * linux-perf: Include version number in strace groups installation directory + (Closes: #813080) + * [alpha,sh4] Attempt to fix build failures + * Build fixdep under debian/build and clean it up properly + + -- Ben Hutchings Fri, 19 Feb 2016 17:11:29 +0000 + +linux (4.4.2-2) unstable; urgency=medium + + [ Ben Hutchings ] + * udeb: Make DAC960 and cciss optional in scsi-modules again + (fixes FTBFS on armhf, arm64) + * [armel,armhf] net: mv643xx_eth: fix packet corruption with TSO and tiny + unaligned packets. (Closes: #814681) + * [mipsel/loongson-2f] udeb: Add i2c-modules to avoid duplicate modules + + [ Martin Michlmayr ] + * [arm64] Create i2c-modules udeb to avoid duplicate modules. + + -- Ben Hutchings Fri, 19 Feb 2016 14:48:52 +0000 + +linux-tools (4.4-1) unstable; urgency=medium + + * Upload to unstable + + -- Ben Hutchings Thu, 18 Feb 2016 01:30:50 +0000 + +linux (4.4.2-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.2 + - ALSA: usb-audio: avoid freeing umidi object twice (CVE-2016-2384) + + [ Ben Hutchings ] + * Set ABI to 1 + * iw_cxgb3: Fix incorrectly returning error on success (CVE-2015-8812) + * fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list() (CVE-2016-0617) + (regression in 4.3) + * af_unix: Guard against other == sk in unix_dgram_sendmsg + (regression in 4.2.6-2) + * Revert "workqueue: make sure delayed work run in local cpu" + (regression in 4.3) + * af_unix: Don't set err in unix_stream_read_generic unless there was an error + (regression in 4.4, 4.3.4) + * bpf: fix branch offset adjustment on backjumps after patching ctx expansion + (CVE-2016-2383) + * udeb: Combine scsi-{common,extra}-modules with scsi-modules + * udeb: Use wildcards to include entire classes of drivers: + - input-modules: Include HID drivers by default + - nic{,-pcmcia,-usb,-wireless}-modules: Include Ethernet, USB and wireless + drivers by default + - {pata,sata}-modules: Include ATA drivers by default + - sound-modules: Include sound drivers by default + - scsi-modules: Include SCSI drivers by default + - usb-modules: Include USB host drivers by default + - usb-serial-modules: Include USB serial drivers by default + - usb-storage-modules: Include USB storage drivers by default + * udeb: Remove some obsolete drivers: + - nic-modules: Remove FDDI and HIPPI drivers, and inet_lro module + - nic-pcmcia-modules: Remove Arcnet drivers + * udeb: Move most USB wireless drivers from nic-usb-modules to + nic-wireless-modules + * udeb: Really add virtio_input to virtio-modules (not input-modules) + * [x86] Fix issues resulting in W+X pages: + - [amd64] efi: Build our own page table structure + - [i386/686-pae] mm: Fix types used in pgprot cacheability flags + translations + - [i386/686-pae] PCI: Set pci=nobios by default + * IFF_NO_QUEUE: Fix for drivers not calling ether_setup() (regression in 4.3) + * udeb: Fix issues with wildcards that caused FTBFS on armhf, thanks to + Karsten Merker + + [ Roger Shimizu ] + * Enable TTY_PRINTK as module (Closes: #814540). + + [ Uwe Kleine-König ] + * [rt] Update to 4.4.1-rt6 + + -- Ben Hutchings Wed, 17 Feb 2016 21:20:12 +0000 + +linux (4.4.1-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.1 + + [ Ricardo Salveti ] + * Extending ARM64 support: + - config: enabling support for the AMD Seattle platform + - nic-modules: adding amd-xgbe + - sata-modules: adding ahci_platform, required by AMD Overdrive + - config: enabling the cpuidle ARM driver + - config: enable multi-core scheduler support by default + - config: enable PCI generic host bridge by default + - config: enable CRYPTO_CRC32_ARM64 by default + + [ Ian Campbell ] + * [arm64] Enabled support for QCOM platforms, options recommended by Martin + Michlmayr. (Closes: #812386) + * [armel/marvell] Declare breaks against flash-kernel << 3.57~ in order to + force a version which understands about the merge of kirkwood and orion5x + flavours into marvell. + + [ Ben Hutchings ] + * linux-image: Make failure of depmod fatal, rather than asking what to do + * [mips*] linux-image: Remove debconf question for requirement of initramfs + * linux-image: Remove unnecessary debconf initialisations + * linux-{headers,image}: Remove support for version-specific hooks + * linux-headers: Make postinst script less verbose (see: #734266) + * [armel] Replace kirkwood and orion5x flavours with a 'marvell' flavour + * [armel/marvell] Adjust configuration to reduce image size: + - Disable support for DNS-323 as the kernel image was already too large + for this machine + + Disable MACH_DNS323 + + Change MTD_CFI_AMDSTD from built-in to module + - input: Disable KEYBOARD_ATKBD + - mtd: Change JFFS2_FS, MTD_SPI_NOR, and M25P80 from built-in to modules + * [rt] Update to 4.4.1-rt5: + - genirq: Add default affinity mask command line option + - latencyhist: disable jump-labels + - kernel/perf: mark perf_cpu_context's timer as irqsafe + * bnx2x: Enable BNX2X_VXLAN + * cgroups: Enable CGROUP_PIDS + * crypto: Enable CRYPTO_CHACHA20, CRYPTO_POLY1305, CRYPTO_CHACHA20POLY1305, + CRYPTO_USER_API_AEAD as modules + * [x86] crypto: Enable CRYPTO_DEV_QAT_DH895xCC, CRYPTO_DEV_QAT_DH895xCCVF + as modules + * [amd64] crypto: Enable CRYPTO_CHACHA20_X86_64, CRYPTO_DES3_EDE_X86_64, + CRYPTO_POLY1305_X86_64 as modules + * [x86] dmaengine: Enable INTEL_IDMA64 as module + * debug: Enable SCHED_STACK_END_CHECK + * dm-cache: Enable DM_CACHE_SMQ as module + * ethernet: Enable BNXT, QED, QEDE as modules + * hci_uart: Enable BT_HCIUART_QCA + * HID: Enable HID_CORSAIR, HID_GEMBIRD as modules + * [x86] hwmon: Enable SENSORS_I5500 as module + * [x86] IB: Enable INFINIBAND_USNIC as module + * iio/light: Enable ACPI_ALS as module + * [x86] input: Enable SURFACE_PRO3_BUTTON as module + * [x86] iommu: Enable INTEL_IOMMU_SVM + * ipvs: Enable IP_VS_OVF as module + * media: Enable DVB_NETUP_UNIDVB, USB_GSPCA_TOUPTEK,_VIDEO_DT3155 as modules + * [x86] mfd: Enable MFD_INTEL_LPSS_ACPI, MFD_INTEL_LPSS_PCI as modules + * [amd64] mic: Enable INTEL_MIC_X100_DMA, MIC_COSM, SCIF, SCIF_BUS as modules + * [powerpc*/*64*] misc: Enable GENWQE as module + * net: Enable LWTUNNEL, NET_L3_MASTER_DEV; and MPLS_IPTUNNEL, NET_VRF + as modules + * [amd64] net: Enable FUJITSU_ES as module + * netfilter: Really enable NF_TABLES_NETDEV, NFT_REDIR_IPV4, NFT_REDIR_IPV6 + as modules + * net/phy: Enable AQUANTIA_PHY, DP83848_PHY, MICROCHIP_PHY, TERANETICS_PHY + as modules + * net/sched: Really enable NET_CLS_FLOWER as module + * net/usb: Enable USB_LAN78XX, USB_NET_CH9200 as modules + * nfsd: Enable NFSD_PNFS + * [x86] pinctrl: Enable PINCTRL_BROXTON, PINCTRL_SUNRISEPOINT + * [x86] rfkill: Enable DELL_RBTN as module + * serial: Enable SERIAL_OF_PLATFORM as module + * sound/firewire: Enable SND_FIREWIRE_DIGI00X, SND_FIREWIRE_TASCAM as modules + * [x86] thermal: Enable INTEL_PCH_THERMAL, INTEL_SOC_DTS_THERMAL as modules; + disable THERMAL_OF + * [x86] Enable INTEL_PMC_IPC as module + * vfs,nvdimm: Really enable FS_DAX + * [amd64] mm,nvdimm: Disable ZONE_DMA; enable ZONE_DEVICE, NVDIMM_PFN + - This disables drivers for some AC'97 sound cards + + -- Ben Hutchings Wed, 10 Feb 2016 02:02:14 +0000 + +linux (4.4-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.4 + + [ Ben Hutchings ] + * [armhf] Enable EXTCON_USB_GPIO, ENSORS_GPIO_FAN as modules, and + USB_DWC3_DUAL_ROLE instead of USB_DWC3_HOST (Closes: #810048) + * [rt] Update to 4.4-rt2 + + -- Ben Hutchings Tue, 19 Jan 2016 22:25:06 +0000 + +linux-tools (4.4-1~exp2) experimental; urgency=medium + + * linux-perf: Fix FTBFS with gcc 6 (used on hppa, sparc64) + + -- Ben Hutchings Tue, 19 Jan 2016 22:11:13 +0000 + +linux-tools (4.4-1~exp1) experimental; urgency=medium + + * New upstream release + + [ Ben Hutchings ] + * linux-perf: Fix reading of build-id from vDSO + * linux-perf: Leave -rc suffix out of version in package description + * debian.py: Implement stable order of fields not in the predefined order + * genorig.py: Make orig tarballs really reproducible: + - Override umask while extracting/exporting files + - Override user and group names in tarball + + -- Ben Hutchings Tue, 19 Jan 2016 00:31:02 +0000 + +linux (4.4~rc8-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [rt] Update to 4.4-rc6-rt1 and re-enable + * [rt] Fix build error in kernel/time/hrtimer.c + * [rt] latency_hist: Update sched_switch probe + * [armhf] Add support for BCM2836 and Raspberry Pi 2: + - pwm: bcm2835: Calculate scaler in ->config() + - pwm: bcm2835: Prevent division by zero + - drm: Create a driver hook for allocating GEM object structs + - drm/vc4: Add a BO cache + - drm/vc4: Add create and map BO ioctls + - drm/vc4: Add an API for creating GPU shaders in GEM BOs + - drm/vc4: Fix a typo in a V3D debug register + - drm/vc4: Bind and initialize the V3D engine + - drm/vc4: Add support for drawing 3D frames + - drm/vc4: Add support for async pageflips + - drm/vc4: Add an interface for capturing the GPU state after a hang + - drm/vc4: copy_to_user() returns the number of bytes remaining + - drm/vc4: allocate enough memory in vc4_save_hang_state() + - drm/vc4: fix an error code + - bcm2835: Add a compat string for bcm2836 machine probe + - bcm2835: Add Kconfig support for bcm2836 + - bcm2835: Define two new packets from the latest firmware + - bcm2835: add rpi power domain driver + - bcm2835: Split the DT for peripherals from the DT for the CPU + - bcm2835: Move the CPU/peripheral include out of common RPi DT + - bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B + - bcm2835: Add the auxiliary clocks to the device tree + - Enable ARCH_BCM, ARCH_BCM2835, DMA_BCM2835, BCM2835_MBOX, + RASPBERRYPI_FIRMWARE, RASPBERRYPI_POWER + - Enable DRM_VC4, I2C_BCM2835, MMC_SDHCI_BCM2835, PWM_BCM2835, SPI_BCM2835, + SPI_BCM2835AUX, USB_DWC2, BCM2835_WDT, SND_BCM2835_SOC_I2S as modules + - udeb: Add sdhci-bcm2835 to mmc-modules, dwc2 to usb-modules + * [armhf] Enable INPUT_AXP20X_PEK, CAN_SUN4I, SND_SUN4I_CODEC as modules + (Closes: #808623) + * [x86] nvdimm: Change X86_PMEM_LEGACY from built-in to module + * [x86] Enable DEBUG_WX, X86_INTEL_MPX + + [ Ian Campbell ] + * [armel/kirkwood] Updates/clarifications to kernel size limitations from + Martin Michlmayr. (Closes: #809528) + * [armhf] Enable support for Rockchip devices. (Closes: #809083) + * [armhf] Enable basic support for DRA7XX systems, such as Beagle-x15. + (Closes: #807624) + + -- Ben Hutchings Mon, 04 Jan 2016 17:23:28 +0000 + +linux (4.4~rc6-1~exp1) experimental; urgency=medium + + * New upstream release candidate + - include/linux/mmdebug.h: should include linux/bug.h + (fixes FTBFS on arm64) + + [ Ben Hutchings ] + * [sparc64] udeb: Replace mpt2sas with mpt3sas in scsi-common-modules + (fixes FTBFS) + + -- Ben Hutchings Mon, 21 Dec 2015 17:30:10 +0000 + +linux (4.4~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [arm64] Drop now-redundant patches for X-Gene (fixes FTBFS) + * [s390x] udeb: Add crc-modules package (fixes FTBFS) + * cirrus,mgag200: Drop patches for compatibility with wheezy userland + + -- Ben Hutchings Wed, 16 Dec 2015 17:16:09 +0000 + +linux-tools (4.4~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Mon, 14 Dec 2015 01:28:50 +0000 + +linux (4.4~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update support patches to aufs4.x-rcN-20151123 + * udeb: Make md-modules depend on crc-modules (Closes: #807661) + * [armel/kirkwood,armhf] crypto: Enable CRYPTO_DEV_MARVELL_CESA as module + (Closes: #807634) + + -- Ben Hutchings Sun, 13 Dec 2015 16:25:45 +0000 + +linux (4.3.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.4 + - toshiba_acpi: Initialize hotkey_event_type variable (regression in 4.3) + - USB: add quirk for devices with broken LPM + - usb: core : hub: Fix BOS 'NULL pointer' kernel panic + - pppoe: fix memory corruption in padt work structure (regression in 4.1) + - ipv6: keep existing flags when setting IFA_F_OPTIMISTIC + (regression in 4.1) + - vxlan: fix incorrect RCO bit in VXLAN header (regression in 4.0) + - sctp: update the netstamp_needed counter when copying sockets + - sctp: also copy sk_tsflags when copying the socket (regression in 3.17) + - r8152: fix lockup when runtime PM is enabled (regression in 4.2) + - ipv6: sctp: clone options to avoid use after free + - phy: micrel: Fix finding PHY properties in MAC node. (regression in 4.2) + - openvswitch: Fix helper reference leak + - openvswitch: Respect conntrack zone even if invalid + - net: fix IP early demux races + - vlan: Fix untag operations of stacked vlans with REORDER_HEADER off + - skbuff: Fix offset error in skb_reorder_vlan_header + - net: check both type and procotol for tcp sockets + - net_sched: make qdisc_tree_decrease_qlen() work for non mq + (regression in 4.3.3) + - net: fix uninitialized variable issue + - ipv6: automatically enable stable privacy mode if stable_secret set + - inet: tcp: fix inetpeer_set_addr_v4() (regression in 4.3) + - rhashtable: Enforce minimum size on initial hash table (regression in 4.1) + - fou: clean up socket with kfree_rcu + - af_unix: Revert 'lock_interruptible' in stream receive code + - tcp: restore fastopen with no data in SYN packet (regression in 4.0) + - rhashtable: Fix walker list corruption (regression in 4.1) + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.5 + - [x86] mpx: Fix instruction decoder condition + - [x86] signal: Fix restart_syscall number for x32 tasks + - [x86] paravirt: Prevent rtc_cmos platform device init on PV guests + (regression in 4.2) + - [powerpc*] KVM: Book3S HV: Don't dynamically split core when already split + (regression in 4.3) + - [powerpc*] KVM: Book3S HV: Prohibit setting illegal transaction state + in MSR + - [x86] boot: Double BOOT_HEAP_SIZE to 64KB + - [x86] mm: Add barriers and document switch_mm()-vs-flush synchronization + (CVE-2016-2069) + - timers: Use proper base migration in add_timer_on() + - ipmi: move timer init to before irq is setup + - ALSA: hda - Disable 64bit address for Creative HDA controllers + - ALSA: hda - Fix lost 4k BDL boundary workaround (regression in 4.2) + - [x86] ALSA: hda - Fix noise on Dell Latitude E6440 (regression in 4.1) + - ALSA: hda - Skip ELD notification during system suspend + (regression in 4.3) + - ALSA: seq: Fix missing NULL check at remove_events ioctl + - ALSA: usb-audio: Avoid calling usb_autopm_put_interface() at disconnect + - ALSA: seq: Fix race at timer setup and close + - [x86] ALSA: hda - Fix white noise on Dell Latitude E5550 + (regression in 4.1) + - ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices + (regression in 3.19) + - ALSA: timer: Harden slave timer list handling + - ALSA: timer: Fix race among timer ioctls + - ALSA: timer: Fix double unlink of active_list + - [x86] ALSA: hda - Add fixup for Dell Latitidue E6540 (regression in 4.1) + - ALSA: seq: Fix snd_seq_call_port_info_ioctl in compat mode + - ALSA: pcm: Fix snd_pcm_hw_params struct copy in compat mode + - ALSA: control: Avoid kernel warnings from tlv ioctl with numid 0 + - ALSA: timer: Handle disconnection more safely + - ASoC: rt286: Fix run time error while modifying const data + (regression in 4.3) + - airspy: increase USB control message buffer size (regression in 3.17) + - USB: fix invalid memory access in hub_activate() + - openvswitch: correct encoding of set tunnel action attributes + (regression in 4.3) + - veth: don’t modify ip_summed; doing so treats packets with bad checksums + as good. + - ipv6/addrlabel: fix ip6addrlbl_get() + - addrconf: always initialize sysctl table data + - connector: bump skb->users before callback invocation + - af_unix: Fix splice-bind deadlock + - bridge: Only call /sbin/bridge-stp for the initial network namespace + - net: filter: make JITs zero A for SKF_AD_ALU_XOR_X (regression in 3.16) + - net: sched: fix missing free per cpu on qstats (regression in 3.18) + - net: possible use after free in dst_release + - tcp: fix zero cwnd in tcp_cwnd_reduction (CVE-2016-2070) + (regression in 4.3) + - net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory + - ipv6: tcp: add rcu locking in tcp_v6_send_synack() + - tcp_yeah: don't set ssthresh below 2 + - udp: disallow UFO for sockets with SO_NO_CHECK option (regression in 4.0) + - net: preserve IP control block during GSO segmentation + - phonet: properly unshare skbs in phonet_rcv() (regression in 4.0) + - net: bpf: reject invalid shifts + - ipv6: update skb->csum when CE mark is propagated + - batman-adv: Avoid recursive call_rcu for batadv_bla_claim + - batman-adv: Avoid recursive call_rcu for batadv_nc_node + - batman-adv: Drop immediate batadv_orig_ifinfo free function + - batman-adv: Drop immediate batadv_neigh_node free function + - batman-adv: Drop immediate neigh_ifinfo free function + - batman-adv: Drop immediate batadv_hard_iface free function + - batman-adv: Drop immediate orig_node free function + - team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid + - xfrm: dst_entries_init() per-net dst_ops + - [powerpc*] tm: Block signal return setting invalid MSR state + - [powerpc*] tm: Check for already reclaimed tasks + - [ppc64el] opal-irqchip: Fix double endian conversion (regression in 4.2) + - [powerpc*] opal-irqchip: Fix deadlock introduced by "Fix double endian + conversion" + - [powerpc*] powernv: pr_warn_once on unsupported OPAL_MSG type + - [powerpc*] Make value-returning atomics fully ordered + - [powerpc*] Make {cmp}xchg* and their atomic_ versions fully ordered + - [arm64] bpf: fix div-by-zero case + - [arm64] bpf: fix mod-by-zero case + - [arm64] cmpxchg_dbl: fix return value type (regression in 4.3) + - [arm*] KVM: test properly for a PTE's uncachedness + - [arm64] KVM: Fix AArch32 to AArch64 register mapping + - [arm*] KVM: correct PTE uncachedness check + - [arm64] kernel: enforce pmuserenr_el0 initialization and restore + - [arm*] iommu/arm-smmu: Fix error checking for ASID and VMID allocation + - HID: wacom: Tie cached HID_DG_CONTACTCOUNT indices to report ID + (regression in 4.3) + - HID: wacom: Expect 'touch_max' touches if HID_DG_CONTACTCOUNT not present + (regression in 4.3) + - HID: core: Avoid uninitialized buffer access + - staging: lustre: echo_copy.._lsm() dereferences userland pointers directly + - direct-io: Fix negative return from dio read beyond eof + - fix the regression from "direct-io: Fix negative return from dio read + beyond eof" + - [arm64] KVM: Add workaround for Cortex-A57 erratum 834220 + - [arm64] kernel: fix architected PMU registers unconditional access + + [ Ben Hutchings ] + * fuse: break infinite loop in fuse_fill_write_pages() (CVE-2015-8785) + * SCSI: fix crashes in sd and sr runtime PM (Closes: #801925) + * rt2x00: fix monitor mode regression (regression in 4.2) + * pipe: limit the per-user amount of pages allocated in pipes (CVE-2013-4312) + [Original reference is incorrect; should be CVE-2016-2847.] + * [powerpc*] Enable CRYPTO_DEV_VMX and enable CRYPTO_DEV_VMX_ENCRYPT as + module (Closes: #813640) + * debian/copyright: Add licence information for drivers/crypto/vmx/*.pl + * udeb: Add hid-logitech-hidpp to input-modules (Closes: #796096) + * hwrng: n2 - Attach on T5/M5, T7/M7 SPARC CPUs (Closes: #809815) + + [ Salvatore Bonaccorso ] + * netfilter: nf_nat_redirect: add missing NULL pointer check (CVE-2015-8787) + + [ Aurelien Jarno ] + * [mips*] Backport math emulation fix from 4.5. + * [arm64] Enable RTC_DRV_EFI. + + [ Hendrik Brueckner ] + * [s390x] udeb: include modules to mount ISOs (loop device) + (Closes: #812336) + * [s390x] udeb: include btrfs-modules (Closes: #812340) + + [ Martin Michlmayr ] + * Include Device Tree model in reportbug script + + -- Ben Hutchings Sat, 06 Feb 2016 23:25:14 +0000 + +linux (4.3.3-7) unstable; urgency=medium + + * linux-image-dbg: Don't rely on upstream makefile to make .build-id + links to vDSO debuginfo (fixes FTBFS on arm64, s390) + + -- Ben Hutchings Tue, 19 Jan 2016 17:29:21 +0000 + +linux (4.3.3-6) unstable; urgency=medium + + [ Ben Hutchings ] + * debian.py: Implement stable order of fields in debian/tests/control + * debian.py: Implement stable order of fields not in the predefined order + * genorig.py: Make orig tarballs really reproducible: + - Override umask while extracting/exporting files + - Override user and group names in tarball + * xen/gntdev: Grant maps should not be subject to NUMA balancing + (Closes: #810472) + * gpio: Enable GPIO_SYSFS wherever GPIOLIB is enabled (Closes: #810085) + * [armhf] udeb: Include usbhid in input-modules (Closes: #809521) + * linux-image-dbg: Include debugging symbols for VDSOs + * [armel/kirkwood] power/reset: Re-enable POWER_RESET, POWER_RESET_GPIO + (regression in 3.17~rc5-1~exp1) + * usb: serial: visor: fix crash on detecting device without write_urbs + (CVE-2015-7566) + * tty: Fix unsafe ldisc reference via ioctl(TIOCGETD) (CVE-2016-0723) + * [x86] drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates + * bcache: Add upstream fixes marked for stable: + - fix a livelock when we cause a huge number of cache misses + - Add a cond_resched() call to gc + - clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device + - fix a leak in bch_cached_dev_run() + - unregister reboot notifier if bcache fails to unregister device + - allows use of register in udev to avoid "device_busy" error. + - prevent crash on changing writeback_running + - Change refill_dirty() to always scan entire disk if necessary + * KEYS: Fix keyring ref leak in join_session_keyring() (CVE-2016-0728) + + [ Salvatore Bonaccorso ] + * unix: properly account for FDs passed over unix sockets (CVE-2013-4312) + + -- Ben Hutchings Tue, 19 Jan 2016 00:41:31 +0000 + +linux (4.3.3-5) unstable; urgency=medium + + * [armhf] udeb: Fix duplication and circular dependency between core-modules + and usb-modules (really fixes FTBFS) + - Add core-modules as a dependency of usb-modules + - Remove gpio-viperboard from core-modules as it is unlikely to be needed + + -- Ben Hutchings Mon, 04 Jan 2016 00:45:27 +0000 + +linux (4.3.3-4) unstable; urgency=medium + + * [armhf] udeb: Remove pbias-regulator module from mmc-modules as it's now + in core-modules (fixes FTBFS) + + -- Ben Hutchings Sun, 03 Jan 2016 01:50:52 +0000 + +linux (4.3.3-3) unstable; urgency=medium + + [ Ben Hutchings ] + * [ppc64*] drm: Enable DRM_AST as module (Closes: #808338) + * block: ensure to split after potentially bouncing a bio (Closes: #809082) + * pptp: verify sockaddr_len in pptp_bind() and pptp_connect() (CVE-2015-8569) + * bluetooth: Validate socket address length in sco_sock_bind() (CVE-2015-8575) + * [xen] Fix race conditions in back-end drivers (CVE-2015-8550, XSA-155) + * [xen] pciback: Fix state validation in MSI control operations + (CVE-2015-8551, CVE-2015-8852, XSA-157) + * ptrace: being capable wrt a process requires mapped uids/gids + (CVE-2015-8709) + * KEYS: Fix race between read and revoke (CVE-2015-7550) + * [armhf] udeb: Add modular clock, GPIO, PCIe PHY and regulator drivers to + core-modules (Closes: #809521) + * [armhf] udeb: Add more USB PHY drivers to usb-modules + * drm/nouveau/pmu: do not assume a PMU is present (Closes: #809481) + * [x86] drm/i915: Don't compare has_drrs strictly in pipe config + (Closes: #808720) + * [armhf] crypto: sun4i-ss - add missing statesize (Closes: #808625) + * Revert "xhci: don't finish a TD if we get a short transfer event mid TD" + (Closes: #808602, #808953, regression in 4.3-rc7) + * [x86] pinctrl: Enable PINCTRL_CHERRYVIEW (Closes: #808044) + * [s390x] udeb: Add crc-modules package (Closes: #808051) + + [ Salvatore Bonaccorso ] + * ovl: fix permission checking for setattr (CVE-2015-8660) + * [x86] kvm: Reload pit counters for all channels when restoring state + (CVE-2015-7513) + + -- Ben Hutchings Sat, 02 Jan 2016 16:45:46 +0000 + +linux-tools (4.3.1-2) unstable; urgency=medium + + * Upload for Perl 5.22 transition (Closes: #808329) + * debian/rules: Fix check for binNMU, broken since 4.1.4-1 + + -- Ben Hutchings Sat, 19 Dec 2015 03:47:10 +0000 + +linux (4.3.3-2) unstable; urgency=medium + + * [armhf,sparc64] Force ZONE_DMA to be enabled, reversing ABI change in + 4.3.3 (fixes FTBFS) + * [sh4] Disable CC_STACKPROTECTOR_STRONG temporarily (fixes FTBFS) + + -- Ben Hutchings Thu, 17 Dec 2015 18:21:52 +0000 + +linux (4.3.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.2 + - X.509: Fix the time validation [ver #2] + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.3 + - r8169: fix kasan reported skb use-after-free. (regression in 4.3) + - af-unix: fix use-after-free with concurrent readers while splicing + (regression in 4.2) + - af_unix: don't append consumed skbs to sk_receive_queue + (regression in 4.2) + - af_unix: take receive queue lock while appending new skb + (regression in 4.2) + - af-unix: passcred support for sendpage (regression in 4.2) + - ipv6: Avoid creating RTF_CACHE from a rt that is not managed by fib6 tree + (regression in 4.2) + - ipv6: Check expire on DST_NOCACHE route + - ipv6: Check rt->dst.from for the DST_NOCACHE route (regression in 4.3) + - Revert "ipv6: ndisc: inherit metadata dst when creating ndisc requests" + (regression in 4.3) + - packet: only allow extra vlan len on ethernet devices + - packet: infer protocol from ethernet header if unset + - packet: fix tpacket_snd max frame len + - sctp: translate host order to network order when setting a hmacid + - net/mlx5e: Added self loopback prevention (regression in 4.3) + - net/mlx4_core: Fix sleeping while holding spinlock at rem_slave_counters + (regression in 4.2) + - ip_tunnel: disable preemption when updating per-cpu tstats + - net/ip6_tunnel: fix dst leak (regression in 4.3) + - tcp: disable Fast Open on timeouts after handshake + - tcp: fix potential huge kmalloc() calls in TCP_REPAIR + - tcp: initialize tp->copied_seq in case of cross SYN connection + - net, scm: fix PaX detected msg_controllen overflow in scm_detach_fds + - net: ipmr: fix static mfc/dev leaks on table destruction + - net: ip6mr: fix static mfc/dev leaks on table destruction + - vrf: fix double free and memory corruption on register_netdevice failure + - tipc: fix error handling of expanding buffer headroom (regression in 4.3) + - ipv6: distinguish frag queues by device for multicast and link-local + packets + - bpf, array: fix heap out-of-bounds access when updating elements + - ipv6: add complete rcu protection around np->opt + - net/neighbour: fix crash at dumping device-agnostic proxy entries + - ipv6: sctp: implement sctp_v6_destroy_sock() + - openvswitch: fix hangup on vxlan/gre/geneve device deletion + - net_sched: fix qdisc_tree_decrease_qlen() races + - btrfs: fix resending received snapshot with parent (regression in 4.2) + - Btrfs: fix file corruption and data loss after cloning inline extents + - Btrfs: fix regression when running delayed references (regression in 4.2) + - Btrfs: fix race leading to incorrect item deletion when dropping extents + - Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow + - Btrfs: fix race when listing an inode's xattrs + - rbd: don't put snap_context twice in rbd_queue_workfn() + - ext4 crypto: fix memory leak in ext4_bio_write_page() + - ext4 crypto: fix bugs in ext4_encrypted_zeroout() + - ext4: fix potential use after free in __ext4_journal_stop + (regression in 4.2) + - ext4, jbd2: ensure entering into panic after recording an error in + superblock + - nfsd: serialize state seqid morphing operations + - nfsd: eliminate sending duplicate and repeated delegations + - nfs4: start callback_ident at idr 1 + - nfs4: resend LAYOUTGET when there is a race that changes the seqid + - nfs: if we have no valid attrs, then don't declare the attribute cache + valid + - ocfs2: fix umask ignored issue + - block: fix segment split (regression in 4.3) + - ceph: fix message length computation + - Btrfs: fix regression running delayed references when using qgroups + (regression in 4.2) + + [ Ben Hutchings ] + * net: add validation for the socket syscall protocol argument (CVE-2015-8543) + * [armel/kirkwood] udeb: Override inclusion of gpio_keys in input-modules + (fixes FTBFS) + * vrf: Fix broken backport of "vrf: fix double free and memory corruption on + register_netdevice failure" in 4.3.3 + * net: Ignore ABI changes due to "ipv6: add complete rcu protection around + np->opt", which don't appear to affect out-of-tree modules + * tipc: Fix kfree_skb() of uninitialised pointer (regression in 4.3.3) + + -- Ben Hutchings Tue, 15 Dec 2015 21:25:26 +0000 + +linux-tools (4.3.1-1) unstable; urgency=medium + + * New upstream stable update + - [x86] Add #AC to SVM_EXIT_REASONS + + [ Ben Hutchings ] + * debian/bin/genorig.py: Add more files under arch/*/include/asm to file list + (fixes FTBFS on several architectures) + + -- Ben Hutchings Mon, 14 Dec 2015 00:43:39 +0000 + +linux-tools (4.3-1) unstable; urgency=medium + + * New upstream release + + -- Ben Hutchings Sun, 13 Dec 2015 03:47:05 +0000 + +linux (4.3.1-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.3.1 + + [ Ben Hutchings ] + * Set ABI to 1 + * [armhf] rtc: Enable RTC_DRV_DS1307, RTC_DRV_PCF8563, RTC_DRV_ARMADA38X + (Closes: #807632) + * [armhf] Enable MACH_ARMADA_375, MACH_ARMADA_38X, MACH_ARMADA_39X + (Closes: #807633) + * [armhf] net: Enable MVPP2 as module + * [armel/kirkwood] dts: Fix QNAP TS219 power-off (Closes: #807696) + * [armhf] udeb: Add leds-modules package containing leds-gpio driver + (Closes: #807721) + * [x86] drm/i915: Mark uneven memory banks on gen4 desktop as unknown + swizzling (Closes: #780363) + * Enable CC_STACKPROTECTOR_STRONG (Closes: #805652) + * [x86] input: Enable KEYBOARD_GPIO, INPUT_SOC_BUTTON_ARRAY (Closes: #804864) + * [x86] nouveau: bios: return actual size of the buffer retrieved via _ROM + (Closes: #772716) + * [armhf] Add support for Odroid-XU4 (Closes: #804850) + - mfd: s2mps11: Add manual shutdown method for Odroid XU3 + - dts: Fix power off method for exynos5422-odroidxu3-common + - dts: Split audio configuration to separate exynos5422-odroidxu3-audio + - dts: Add support Odroid XU4 board for exynos5422-odroidxu4 + * udeb: Add hid-chicony to input-modules (Closes: #766570) + * sched: Enable CFS_BANDWIDTH (Closes: #802746) + + -- Ben Hutchings Sun, 13 Dec 2015 00:38:54 +0000 + +linux (4.3-1~exp2) experimental; urgency=medium + + [ Ben Hutchings ] + * mv643xx_eth: Re-enable TSO, fixed upstream in 4.3 + * debian/control: Move patchutils from Build-Depends to Build-Depends-Indep, + as we only use filterdiff when building linux-source- + * debian/control,debian/rules: Support a 'stage1' build profile which + builds only linux-libc-dev (Closes: #695243) + * debian/control: Add ':any' to Build-Depends on python3, to support cross- + bootstrap + * [armhf] Enable new drivers for Allwinner chips (Closes: #804856) + - crypto: Enable CRYPTO_DEV_SUN4I_SS as module + - musb: Enable USB_MUSB_SUNXI as module + * aufs: Update support patches to aufs4.3-20151116 + * [armhf] USB: Change USB, USB_GADGET, and various drivers from built-in to + modules + - musb: Enable USB_MUSB_DUAL_ROLE + * [armhf] musb: Disable MUSB_PIO_ONLY and enable USB_INVENTRA_DMA, + USB_TI_CPPI41_DMA, USB_TUSB_OMAP_DMA + + [ Ian Campbell ] + * [armel/orion5x] Enable Device Tree for orion5x. Patch from Roger Shimizu + (Closes: #803159) + * [armel/orion5x] Enable CONFIG_DEBUG_LL_UART_8250. + + -- Ben Hutchings Fri, 04 Dec 2015 19:36:10 +0000 + +linux (4.3-1~exp1) experimental; urgency=medium + + * New upstream release + + [ Ben Hutchings ] + * netfilter: Enable NFT_DUP_IPV4, NFT_DUP_IPV6 as modules (Closes: #803370) + * tests: Add autopkgtest support + * [x86] Compile with gcc-5 + * [x86] Enable PINCTRL_BAYTRAIL (Closes: #797949) + + [ Salvatore Bonaccorso ] + * Fix typo in image.plain.postinst template. + Add missing space in warn message causing typo "dangling linkto". + Thanks to Jakub Wilk (Closes: #803323) + + -- Ben Hutchings Wed, 04 Nov 2015 07:45:13 +0000 + +linux (4.3~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + - [x86] smpboot: Fix CPU #1 boot timeout (Closes: #802464) + + -- Ben Hutchings Wed, 28 Oct 2015 11:04:27 +0900 + +linux-tools (4.3~rc5-1~exp2) experimental; urgency=medium + + * Fix the build-indep and binary-indep targets (fixes FTBFS for arch:all) + + -- Ben Hutchings Wed, 14 Oct 2015 02:08:09 +0100 + +linux-tools (4.3~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + - perf: Fix build on architectures without CONFIG_PERF_REGS + + -- Ben Hutchings Wed, 14 Oct 2015 00:49:38 +0100 + +linux (4.3~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Wed, 14 Oct 2015 00:48:41 +0100 + +linux-tools (4.3~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Wed, 07 Oct 2015 01:15:46 +0100 + +linux (4.3~rc4-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * [armhf] dts: Fix Makefile target for sun4i-a10-itead-iteaduino-plus + (fixes FTBFS) + * [mips*] io: Define ioremap_uc (fixes FTBFS) + + -- Ben Hutchings Tue, 06 Oct 2015 23:27:45 +0100 + +linux (4.3~rc3-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * Disable CRAMFS; it was obsoleted by squashfs and initramfs + * [i386] Replace 586 flavour with 686 + - Enable support for OLPC and other Geode-based systems in the 686 flavour + - udeb: Update kernel-versions + + -- Ben Hutchings Sun, 27 Sep 2015 21:02:54 +0100 + +linux (4.2.6-3) unstable; urgency=medium + + * Ignore some gpiochip ABI changes (fixes FTBFS on i386) + + -- Ben Hutchings Sun, 06 Dec 2015 02:12:41 +0000 + +linux (4.2.6-2) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * [x86] KVM: svm: unconditionally intercept #DB (CVE-2015-8104) + * [x86] KVM: rename update_db_bp_intercept to update_bp_intercept + + [ Ian Campbell ] + * [x86] Xen: expose a more realistic max p2m size in the shared info, fixes + migration (Closes: #797205) + + [ Ben Hutchings ] + * media: usbvision: fix crash on detecting device with invalid configuration + (CVE-2015-7833, partly fixed in 4.2.6-1) + * udeb: Add dm-service-time to multipath-modules (Closes: #806131) + * unix: avoid use-after-free in ep_remove_wait_queue (CVE-2013-7446) + * isdn_ppp: Add checks for allocation failure in isdn_ppp_open() + * ppp, slip: Validate VJ compression slot parameters completely + (CVE-2015-7799) + * Btrfs: fix truncation of compressed and inlined extents (CVE-2015-8374) + * netfilter: Enable NFT_DUP_IPV4, NFT_DUP_IPV6 as modules (Closes: #803370) + * [x86] Enable PINCTRL_BAYTRAIL (Closes: #797949) + * qxl: Enable by default (Closes: #779515) + * [s390*] Update linux-compiler metapackage to gcc-4.9 + * firmware_class: Fix condition in directory search loop (Closes: #804862) + * [x86] input: Enable MOUSE_ELAN_I2C as module, MOUSE_ELAN_I2C_I2C and + MOUSE_ELAN_I2C_SMBUS (Closes: #791631) + * [armhf] hsi: Enable CMT_SPEECH as module (Closes: #791819) + * [armhf] power: Enable BATTERY_RX51 as module (Closes: #791820) + * [x86] psmouse: Enable MOUSE_PS2_VMMOUSE (Closes: #802929) + - linux-image: Add versioned Breaks on xserver-xorg-input-vmmouse to + avoid driver conflicts + * [armhf] udeb: Add stmmac platform modules dwmac-generic, dwmac-socfpga + and dwmac-sunxi to nic-modules (Closes: #805098) + * wireless: Enable WL_MEDIATEK, MT7601U as module + * [x86] drm/i915: shut up gen8+ SDE irq dmesg noise (Closes: #806304) + * [armhf] regulator: Enable REGULATOR_PFUZE100 as module (Closes: #806284) + + -- Ben Hutchings Fri, 04 Dec 2015 02:26:51 +0000 + +linux (4.2.6-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.6 + - mmc: core: Fix init_card in 52Mhz (regression in 4.2) + - rtlwifi: rtl8821ae: Fix system lockups on boot (regression in 4.2) + - iwlwifi: mvm: init card correctly on ctkill exit check + (regression in 3.18) + - iwlwifi: mvm: flush fw_dump_wk when mvm fails to start + (regression in 3.18) + - [x86] iommu/vt-d: fix range computation when making room for large pages + - [x86] iommu/amd: Fix BUG when faulting a PROT_NONE VMA + - [x86] iommu/amd: Don't clear DTE flags when modifying it + - drm: fix mutex leak in drm_dp_get_mst_branch_device + - drm: Correct arguments to list_tail_add in create blob ioctl + - drm: crtc: integer overflow in drm_property_create_blob() + - rtl28xxu: fix control message flaws (regression in 4.0) + - ALSA: hda - Fix deadlock at error in building PCM + - [x86] ioapic: Prevent NULL pointer dereference in setup_ioapic_dest() + (regression in 4.2.4) + - mm: make sendfile(2) killable + - drm/radeon/dpm: don't add pwm attributes if DPM is disabled + (regression in 4.0) + - [x86] drm/i915: Restore lost DPLL register write on gen2-4 + (regression in 3.18) + - [x86] drm/i915: Deny wrapping an userptr into a framebuffer + - drm/radeon: don't try to recreate sysfs entries on resume + (regression in 4.2.5) + - drm/radeon: fix dpms when driver backlight control is disabled + (regression in 4.2.4) + - drm/radeon: move bl encoder assignment into bl init + - rbd: require stable pages if message data CRCs are enabled + - rbd: don't leak parent_spec in rbd_dev_probe_parent() + - rbd: prevent kernel stack blow up on rbd map + - [armhf] EXYNOS: Fix double of_node_put() when parsing child power domains + (regression in 4.2) + - [armhf] dts: Fix audio card detection on Peach boards (regression in 4.1) + - [arm64] Revert "ARM64: unwind: Fix PC calculation" + - block: don't release bdi while request_queue has live references + (regression in 4.2) + - dm btree remove: fix a bug when rebalancing nodes after removal + - dm cache: the CLEAN_SHUTDOWN flag was not being set + - dm btree: fix leak of bufio-backed block in btree_split_beneath error path + - Revert "serial: 8250_dma: don't bother DMA with small transfers" + (regression in 4.0) + - [armel] i2c: mv64xxx: really allow I2C offloading (regression in 3.19) + - clkdev: fix clk_add_alias() with a NULL alias device name + (regression in 4.2) + - fbcon: initialize blink interval before calling fb_set_par + (regression in 4.2) + - PCI: Prevent out of bounds access in numa_node override + - ovl: free stack of paths in ovl_fill_super (regression in 4.0) + - ovl: free lower_mnt array in ovl_put_super (regression in 4.0) + - ovl: fix dentry reference leak + - ovl: fix open in stacked overlay (regression in 4.2) + - [x86] Input: alps - only the Dell Latitude D420/430/620/630 have separate + stick button bits (regression in 4.1) + - crypto: api - Only abort operations on fatal signal + - md/raid1: submit_bio_wait() returns 0 on success (regression in 3.10) + - md/raid10: submit_bio_wait() returns 0 on success (regression in 3.10) + - md/raid5: fix locking in handle_stripe_clean_event() (regression in 3.13) + - Revert "md: allow a partially recovered device to be hot-added to an + array." (regression in 3.14) + - [amd64] EDAC, sb_edac: Fix TAD presence check for sbridge_mci_bind_devs() + (regression in 4.2) + - mvsas: Fix NULL pointer dereference in mvs_slot_task_free + - netfilter: ipset: Fix sleeping memory allocation in atomic context + (regression in 4.2) + - btrfs: fix possible leak in btrfs_ioctl_balance() (regression in 4.2.5) + - kvm: irqchip: fix memory leak (regression in 4.2) + - [armhf] thermal: exynos: Fix register read in TMU (regression in 4.2) + - blk-mq: fix use-after-free in blk_mq_free_tag_set() (regression in 4.2) + - IB/cm: Fix rb-tree duplicate free and use-after-free + - sched/deadline: Fix migration of SCHED_DEADLINE tasks (regression in 4.2) + - [arm64] compat: fix stxr failure case in SWP emulation + - NVMe: Fix memory leak on retried commands + - [x86] drm/vmwgfx: Fix up user_dmabuf refcounting + - thp: use is_zero_pfn() only after pte_present() check (regression in 4.1) + - xen: fix backport of previous kexec patch + + [ Ben Hutchings ] + * usbvision: fix overflow of interfaces array (CVE-2015-7833) + * RDS: fix race condition when sending a message on unbound socket + (CVE-2015-7990) + * media/vivid-osd: fix info leak in ioctl (CVE-2015-7884) + * [x86] KVM: Intercept #AC to avoid guest->host denial-of-service + (CVE-2015-5307) + + -- Ben Hutchings Tue, 10 Nov 2015 14:35:05 +0000 + +linux (4.2.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.4 + - [armhf] KVM: Fix incorrect device to IPA mapping + - [x86] KVM: vmx: fix VPID is 0000H in non-root operation + - kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd + - kvm: fix zero length mmio searching + - kvm: factor out core eventfd assign/deassign logic + - kvm: fix double free for fast mmio eventfd + - [armhf] KVM: Disable virtual timer even if the guest is not using it + - kvm: svm: reset mmu on VCPU reset + - [x86] KVM: trap AMD MSRs for the TSeg base and mask + - [powerpc*] KVM: Book3S: Take the kvm->srcu lock in + kvmppc_h_logical_ci_load/store() + - [powerpc*] KVM: Book3S HV: Pass the correct trap argument to + kvmhv_commence_exit + - [x86] Revert "KVM: x86: apply guest MTRR virtualization on host reserved + pages" + - [x86] Revert "KVM: SVM: use NPT page attributes" + - [x86] Revert "KVM: SVM: Sync g_pat with guest-written PAT value" + - time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of + abs64() + - target/iscsi: Fix np_ip bracket issue by removing np_ip + - scsi: fix scsi_error_handler vs. scsi_host_dev_release race + - target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess + - target: Fix PR registration + APTPL RCU conversion regression + - iser-target: remove command with state ISTATE_REMOVE + - iser-target: Put the reference on commands waiting for unsol data + - toshiba_acpi: Fix hotkeys registration on some toshiba models + - [x86] perf/intel: Fix constraint access + - [x86] locking/qspinlock: Fix performance regression under unaccelerated + VMs + - [x86] locking/qspinlock: Only emit the test-and-set fallback when + building guest support + - [armhf] 8401/1: perf: Set affinity for PPI based PMUs + - perf hists: Update the column width for the "srcline" sort key + - perf stat: Get correct cpu id for print_aggr + - perf tools: Add missing forward declaration of struct map to probe-event.h + - perf tools: Add empty Build files for architectures lacking them + - perf tools: Fix parse_events_add_pmu caller + - perf header: Fixup reading of HEADER_NRCPUS feature + - perf probe: Use existing routine to look for a kernel module by + dso->short_name + - watchdog: sunxi: fix activation of system reset + - watchdog: imgpdc: Unregister restart handler on remove + - sched: access local runqueue directly in single_task_running + - hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most + chips + - [armhf] fix Thumb2 signal handling when ARMv6 is enabled + - [armel,armhf] 8429/1: disable GCC SRA optimization + - [powerpc*] windfarm: decrement client count when unregistering + - [armhf] dts: omap5-uevm.dts: fix i2c5 pinctrl offsets + - [armhf] dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again + - [armhf] EXYNOS: reset Little cores when cpu is up + - [armhf] dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC + specifications + - [armhf] dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420 + - [armhf] dts: fix usb pin control for imx-rex dts + - dax: fix O_DIRECT I/O to the last block of a blockdev + - blockdev: don't set S_DAX for misaligned partitions + - block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg + - dmaengine: at_xdmac: change block increment addressing mode + - dmaengine: at_xdmac: clean used descriptor + - dmaengine: dw: properly read DWC_PARAMS register + - dmaengine: at_xdmac: fix bug in prep_dma_cyclic + - pmem: add proper fencing to pmem_rw_page() + - [x86] apic: Serialize LVTT and TSC_DEADLINE writes + - [x86] alternatives: Make optimize_nops() interrupt safe and synced + - [i386] platform: Fix Geode LX timekeeping in the generic x86 build + - [x86] ioapic: Force affinity setting in setup_ioapic_dest() + - [x86] pci/intel_mid_pci: Work around for IRQ0 assignment + - [x86] paravirt: Replace the paravirt nop with a bona fide empty function + - [amd64] nmi: Fix a paravirt stack-clobbering bug in the NMI code + - [x86] Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS + - [x86] efi: Fix boot crash by mapping EFI memmap entries bottom-up at + runtime, instead of top-down + - [x86] kexec: Fix kexec crash in syscall kexec_file_load() + - [x86] process: Add proper bound checks in 64bit get_wchan() + - [x86] mm: Set NX on gap between __ex_table and rodata + - [x86] xen: Support kexec/kdump in HVM guests by doing a soft reset + - leds:lp55xx: Correct Kconfig dependency for f/w user helper + - leds/led-class: Add missing put_device() + - sched/core: Fix TASK_DEAD race in finish_task_switch() + - [s390x] compat: correct uc_sigmask of the compat signal frame + - [s390x] boot/decompression: disable floating point in decompressor + - Revert "cgroup: simplify threadgroup locking" + - Revert "sched, cgroup: replace signal_struct->group_rwsem with a global + percpu_rwsem" + - memcg: make mem_cgroup_read_stat() unsigned + - spi: Fix documentation of spi_alloc_master() + - spi: bcm2835: BUG: fix wrong use of PAGE_MASK + - spi: spidev: fix possible NULL dereference + - mm: migrate: hugetlb: putback destination hugepage to active list + - lib/iommu-common.c: do not try to deref a null iommu->lazy_flush() + pointer when n < pool->hint + - ocfs2/dlm: fix deadlock when dispatch assert master + - mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a + fault + - memcg: fix dirty page migration + - [armhf] ALSA: hda/tegra - async probe for avoiding module loading deadlock + - ALSA: synth: Fix conflicting OSS device registration on AWE32 + - ALSA: hda: Add dock support for ThinkPad T550 + - ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1 + - ALSA: hda - Disable power_save_node for IDT 92HD73xx chips + - ASoC: pxa: pxa2xx-ac97: fix dma requestor lines + - ASoC: dwc: correct irq clear method + - ASoC: db1200: Fix DAI link format for db1300 and db1550 + - ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe + - ASoC: tas2552: fix dBscale-min declaration + - btrfs: skip waiting on ordered range for special files + - Btrfs: fix read corruption of compressed and shared extents + - Btrfs: update fix for read corruption of compressed and shared extents + - PCI: Fix devfn for VPD access through function 0 + - PCI: Use function 0 VPD for identical functions, regular VPD for others + - PCI: Clear IORESOURCE_UNSET when clipping a bridge window + - dm thin: disable discard support for thin devices if pool's is disabled + - dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE + - ath10k: fix dma_mapping_error() handling + - svcrdma: Fix send_reply() scatter/gather set-up + - md/raid0: update queue parameter in a safer location. + - md/raid0: apply base queue limits *before* disk_stack_limits + - dm raid: fix round up of default region size + - netfilter: nfnetlink: work around wrong endianess in res_id field + - netfilter: nf_tables: Use 32 bit addressing register from + nft_type_to_reg() + - netfilter: ipset: Out of bound access in hash:net* types fixed + - netfilter: ipset: Fixing unnamed union init + - netfilter: nf_log: wait for rcu grace after logger unregistration + - netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC + - netfilter: nf_log: don't zap all loggers on unregister + - regulator: core: Correct return value check in regulator_resolve_supply + - regulator: axp20x: Fix enable bit indexes for DCDC4 and DCDC5 + - regulator: core: Handle probe deferral from DT when resolving supplies + - Bluetooth: Delay check for conn->smp in smp_conn_security() + - nfs: fix v4.2 SEEK on files over 2 gigs + - NFS: Do cleanup before resetting pageio read/write to mds + - NFSv4: Recovery of recalled read delegations is broken + - nfs: fix pg_test page count calculation + - NFS: Fix a write performance regression + - cifs: Fix sec=krb5 on smb3 mounts + - cifs: disabling oplocks/leases via module parm enable_oplocks broken for + SMB3 + - cifs: Do not fall back to SMBWriteX in set_file_size error cases + - drm/qxl: only report first monitor as connected if we have no state + - drm/qxl: recreate the primary surface when the bo is not primary + - drm/amdgpu: fix overflow on 32bit systems + - drm/amdgpu: Disable UVD PG + - drm/amdgpu: fix the UVD suspend sequence order + - drm/amdgpu: make UVD handle checking more strict + - drm/amdgpu: Fix max_vblank_count value for current display engines + - drm/amdgpu: Restore LCD backlight level on resume + - [x86] drm/i915/bios: handle MIPI Sequence Block v3+ gracefully + - drm: Reject DRI1 hw lock ioctl functions for kms drivers + - drm/radeon: Restore LCD backlight level on resume (>= R5xx) + - drm/dp/mst: fixup handling hotplug on port removal. + - drm/dp/mst: drop cancel work sync in the mstb destroy path (v2) + - xhci: give command abortion one more chance before killing xhci + - xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM + - usb: xhci: lock mutex on xhci_stop + - usb: xhci: Clear XHCI_STATE_DYING on start + - usb: xhci: stop everything on the first call to xhci_stop + - usb: xhci: exit early in xhci_setup_device() if we're halted or dying + - xhci: change xhci 1.0 only restrictions to support xhci 1.1 + - xhci: init command timeout timer earlier to avoid deleting it + uninitialized + - usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers + - batman-adv: Make DAT capability changes atomic + - thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock + - thermal: cpu_cooling: free power table on error or when unregistering + - [x86] hv: util: checking the wrong variable + - mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used + - usb: chipidea: imx: fix a typo for imx6sx + - cifs: use server timestamp for ntlmv2 authentication + - [armhf] irqchip/gic-v3-its: Add missing cache flushes + - docs: update HOWTO for 3.x -> 4.x versioning + - extcon: Fix signedness bugs about break error handling + - extcon: Fix attached value returned by is_extcon_changed + - [armhf] mtd: pxa3xx_nand: add a default chunk size + - mtd: nand: sunxi: fix sunxi_nand_chips_cleanup() + - mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions + - hpsa: fix an sprintf() overflow in the reset handler + - PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS + - device property: fix potential NULL pointer dereference + - ath10k: fix per-vif queue locking + - ath10k: reject 11b tx fragmentation configuration + - ath10k: fix peer limit enforcement + - ath10k: wake up offchannel queue properly + - ath10k: wake up queue upon vif creation + - pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers + - ipr: Enable SIS pipe commands for SIS-32 devices. + - regmap: debugfs: Ensure we don't underflow when printing access masks + - regmap: debugfs: Don't bother actually printing when calculating max + length + - security: fix typo in security_task_prctl + - usb: musb: dsps: fix polling in device-only mode + - usb: chipidea: udc: using the correct stall implementation + - usb: Use the USB_SS_MULT() macro to get the burst multiplier. + - usb: phy: phy-generic: Fix reset behaviour on legacy boot + - usb: musb: cppi41: allow it to work again + - USB: chaoskey read offset bug + - usb: Add device quirk for Logitech PTZ cameras + - USB: Add reset-resume quirk for two Plantronics usb headphones. + - [armel,armhf] crypto: marvell - properly handle + CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests + - cpu/cacheinfo: Fix teardown path + - cpufreq: dt: Tolerance applies on both sides of target voltage + - [mips*] Fix console output for Fulong2e system + - [mips*] bootmem: Fix mapstart calculation for contiguous maps + - [mips*] dma-default: Fix 32-bit fall back to GFP_DMA + - [mips*] CPS: Stop dangling delay slot from has_mt. + - [mips*] CPS: Don't include MT code in non-MT kernels. + - [mips*] CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT + - batman-adv: Make NC capability changes atomic + - batman-adv: Make TT capability changes atomic + - batman-adv: Make MCAST capability changes atomic + - batman-adv: Fix potential synchronization issues in mcast tvlv handler + - batman-adv: Fix potentially broken skb network header access + - [powerpc*] MSI: Fix race condition in tearing down MSI interrupts + - rsi: Fix possible leak when loading firmware + - UBIFS: Kill unneeded locking in ubifs_init_security + - UBI: Validate data_size + - UBI: return ENOSPC if no enough space available + - net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected + - iscsi-target: Avoid OFMarker + IFMarker negotiation + - mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset + - mmc: core: fix dead loop of mmc_retune + - [arm64] efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME + regions + - [arm64] ftrace: fix function_graph tracer panic + - [arm64] readahead: fault retry breaks mmap file read random detection + - [m68k] Define asmlinkage_protect + - xen/blkback: free requests on disconnection + - net/xen-netfront: only napi_synchronize() if running + - igb: do not re-init SR-IOV during probe + - genirq: Fix race in register_irq_proc() + - clocksource: Fix abs() usage w/ 64bit values + - md/bitmap: don't pass -1 to bitmap_storage_alloc. + - nfs/filelayout: Fix NULL reference caused by double freeing of fh_array + - cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus + - [armhf] clk: ti: fix dual-registration of uart4_ick + - [armhf] clk: ti: clk-7xx: Remove hardwired ABE clock configuration + - [armhf] clk: samsung: fix cpu clock's flags checking + - namei: results of d_is_negative() should be checked after dentry + revalidation + - dm: fix AB-BA deadlock in __dm_destroy() + - dm cache: fix NULL pointer when switching from cleaner policy + - staging: speakup: fix speakup-r regression + - tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c + - drivers/tty: require read access for controlling terminal + - serial: 8250: add uart_config entry for PORT_RT2880 + - serial: atmel: fix error path of probe function + - mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1) + - blk-mq: avoid setting hctx->tags->cpumask before allocation + - sched/preempt: Fix cond_resched_lock() and cond_resched_softirq() + - 3w-9xxx: don't unmap bounce buffered commands + - sched/preempt, xen: Use need_resched() instead of should_resched() + - sched/preempt, powerpc, kvm: Use need_resched() instead of + should_resched() + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.5 + - [powerpc*] net/ibm/emac: bump version numbers for correct work with + ethtool + - l2tp: protect tunnel->del_work by ref_count + - af_unix: Convert the unix_sk macro to an inline function for type safety + - af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag + - net/unix: fix logic about sk_peek_offset + - skbuff: Fix skb checksum flag on skb pull + - skbuff: Fix skb checksum partial check. + - inet: fix races in reqsk_queue_hash_req() + - net: add pfmemalloc check in sk_add_backlog() + - ppp: don't override sk->sk_state in pppoe_flush_dev() + - inet: fix race in reqsk_queue_unlink() + - bpf: fix panic in SO_GET_FILTER with native ebpf programs + - ovs: do not allocate memory from offline numa node + - act_mirred: clear sender cpu before sending to tx + - bpf: clear sender_cpu before xmit + - ipv6: Don't call with rt6_uncached_list_flush_dev + - ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings + - tipc: move fragment importance field to new header position + - netlink: Trim skb to alloc size to avoid MSG_TRUNC + - drm: Fix locking for sysfs dpms file + - [sparc*] crypto: initialize blkcipher.ivsize + - crypto: ahash - ensure statesize is non-zero + - memcg: convert threshold to bytes + - btrfs: check unsupported filters in balance arguments + - btrfs: fix use after free iterating extrefs + - [arm64] errata: use KBUILD_CFLAGS_MODULE for erratum #843419 + - nfsd/blocklayout: accept any minlength + - [armhf] i2c: s3c2410: enable RuntimePM before registering to the core + - i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 + - i2c: designware-platdrv: enable RuntimePM before registering to the core + - workqueue: make sure delayed work run in local cpu + - [x86] KVM: fix SMI to halted VCPU + - [x86] KVM: fix RSM into 64-bit protected mode + - drm/qxl: fix framebuffer dirty rectangle tracking. + - drm/nouveau/fbcon: take runpm reference when userspace has an open fd + - drm/dp/mst: make mst i2c transfer code more robust. + - drm/radeon: attach tile property to mst connector + - drm/radeon: add pm sysfs files late + - dm thin: fix missing pool reference count decrement in pool_ctr error + path + - rbd: fix double free on rbd_dev->header_name + - timekeeping: Increment clock_was_set_seq in timekeeping_init() + - [arm64] Fix THP protection change logic + - svcrdma: handle rdma read with a non-zero initial page offset + + [ Salvatore Bonaccorso ] + * KEYS: Fix race between key destruction and finding a keyring by name + * KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring + (CVE-2015-7872) + * KEYS: Don't permit request_key() to construct a new keyring + + [ Ben Hutchings ] + * [x86] drm: Enable DRM_AMDGPU and HSA_AMD as modules (Closes: #797752) + * media: Enable DVB_AS102, VIDEO_GO7007, VIDEO_GO7007_USB, + VIDEO_GO7007_LOADER, VIDEO_GO7007_USB_S2250_BOARD as modules + * net: Enable LIQUIDIO and MLX5_CORE as modules; enable MLX5_CORE_EN + * [x86] Enable X86_AMD_PLATFORM_DEVICE + * linux-manual: Fix regression in reproducibility in 4.2~rc8-1~exp1 + * net: Enable GENEVE_CORE as module + - Re-enable GENEVE and OPENVSWITCH_GENEVE + * bpf: Enable BPF_SYSCALL + * ACPI: Enable ACPI_NFIT as module + * tcp: Enable TCP_CONG_CDG as module + * nftables: Enable NF_TABLES_NETDEV, NFT_REDIR_IPV4, NFT_REDIR_IPV6 as + modules + [This change was accidentally omitted] + * net/sched: Enable NET_CLS_FLOWER as module + [This change was accidentally omitted] + * SCSI: Enable SCSI_SNIC as module + * target: Enable TCM_USER2 as module + * net/phy: Enable DP83867_PHY as module + * drm: Enable DRM_VIRTIO_GPU as module + * HID: Enable HID_BETOP_FF, HID_PLANTRONICS as modules + * hwrng: Enable USB_CHAOSKEY as module + * ext4: Enable EXT4_ENCRYPTION + * f2fs: Enable F2FS_FS_ENCRYPTION + * vfs,nvdimm: Enable FS_DAX + [This change was accidentally omitted] + + -- Ben Hutchings Wed, 28 Oct 2015 05:46:49 +0900 + +linux (4.2.3-2) unstable; urgency=medium + + * nbd: Restore request timeout detection (Closes: #770479) + * Ignore ABI changes in all mmc host drivers (fixes FTBFS on armhf) + + -- Ben Hutchings Wed, 14 Oct 2015 19:09:49 +0100 + +linux (4.2.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.2 + - nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA + - nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter + - blk-mq: fix buffer overflow when reading sysfs file of 'pending' + - blk-mq: fix race between timeout and freeing request + - mac80211: enable assoc check for mesh interfaces + - [powerpc*] cxl: Allow release of contexts which have been OPENED but not + STARTED (regression in 4.2) + - ext4: don't manipulate recovery flag when freezing no-journal fs + (regression in 3.18) + - Revert "ext4: remove block_device_ejected" (regression in 4.1) + - [arm64] kconfig: Move LIST_POISON to a safe value + - [arm64] entry: always restore x0 from the stack on syscall return + - [arm64] flush FP/SIMD state correctly after execve() + - [arm64] head.S: initialise mdcr_el2 in el2_setup + - [armhf,arm64] KVM: vgic: Check for !irqchip_in_kernel() when mapping + resources (regression in 4.0) + - [arm64] KVM: add workaround for Cortex-A57 erratum #852523 + - [powerpc*] pseries: Fix corrupted pdn list (regression in 4.1) + - [powerpc*] eeh: Probe after unbalanced kref check (regression in 4.1) + - [powerpc*] eeh: Fix fenced PHB caused by eeh_slot_error_detail() + (regression in 3.18) + - [powerpc*] powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel + (regression in 4.2) + - [powerpc*] powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel= + (regression in 4.2) + - [powerpc*] pseries: Release DRC when configure_connector fails + (regression in 4.1) + - [powerpc*] mm: Recompute hash value after a failed update + - CIFS: fix type confusion in copy offload ioctl + - mm: check if section present during memory block registering + (regression in 3.19) + - [i386] mm: Initialize pmd_idx in page_table_range_init_count() + - [x86] i915: Set ddi_pll_sel in DP MST path (regression in 4.2) + - Btrfs: check if previous transaction aborted to avoid fs corruption + - nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug + - nfsd: ensure that the ol stateid hash reference is only put once + - nfsd: ensure that delegation stateid hash references are only put once + - NFSv4.1/pnfs: Fix atomicity of commit list updates (regression in 4.0) + - NFSv4: don't set SETATTR for O_RDONLY|O_EXCL + - NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked() + - NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2 + client + - NFS: nfs_set_pgio_error sometimes misses errors + - NFS41/flexfiles: update inode after write finishes + - NFSv4: Force a post-op attribute update when holding a delegation + - NFS41/flexfiles: zero out DS write wcc + - NFSv4.1/flexfiles: Fix a protocol error in layoutreturn + - NFSv4.1: Fix a protocol issue with CLOSE stateids + - nfs: Fix truncated client owner id without proto type (regression in 4.2) + - Revert "NFSv4: Remove incorrect check in can_open_delegated()" + (regression in 3.19) + - svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD + (regression in 4.2) + - SUNRPC: Ensure that we wait for connections to complete before retrying + (regression in 4.0) + - SUNRPC: Lock the transport layer on shutdown + - [hppa] PCI: Enable 64-bit bus addresses on PA-RISC (regression in 4.2) + - [hppa] Use double word condition in 64bit CAS operation + - fs: if a coredump already exists, unlink and recreate with O_EXCL + - fs: Don't dump core if the corefile would become world-readable. + - mmc: sdhci-of-esdhc: add workaround for pre divider initial value + (regression in 4.2) + - mmc: sdhci: also get preset value and driver type for MMC_DDR52 + (regression in 3.16) + - mmc: sdhci: fix dma memory leak in sdhci_pre_req() (regression in 4.0) + - mmc: core: fix race condition in mmc_wait_data_done + - [armhf] iommu/fsl: Really fix init section(s) content (regression in 4.0) + - [armhf] iommu/io-pgtable-arm: Unmap and free table when overwriting with + block + - [x86] iommu/vt-d: Really use upper context table when necessary + (regression in 4.1) + - eCryptfs: Invalidate dcache entries when lower i_nlink is zero + - hfs: fix B-tree corruption after insertion at position 0 + - IB/srp: Handle partial connection success correctly + - IB/srp: Stop the scsi_eh_ and scsi_tmf_ threads if login fails + (regression in 4.2) + - IB/uverbs: reject invalid or unknown opcodes + - IB/uverbs: Fix race between ib_uverbs_open and remove_one + - IB/iser: Fix missing return status check in iser_send_data_out + (regression in 3.19) + - IB/iser: Fix possible bogus DMA unmapping (regression in 3.19) + - IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow + (regression in 3.19) + - IB/mlx4: Fix incorrect cq flushing in error state (regression in 4.0) + - hfs,hfsplus: cache pages correctly between bnode_create and bnode_free + - jbd2: avoid infinite loop when destroying aborted journal + (regression in 4.2) + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.3 + - phylib: fix device deletion order in mdiobus_unregister() + (regression in 4.2) + - sock, diag: fix panic in sock_diag_put_filterinfo + (regression in 3.19) + - net/ipv6: Correct PIM6 mrt_lock handling + - ipv6: fix multipath route replace error recovery (regression in 4.1) + - netlink, mmap: transform mmap skb into full skb on taps + - bridge: fix igmpv3 / mldv2 report parsing (regression in 4.2) + - [armhf] net: mvneta: fix DMA buffer unmapping in mvneta_rx() + (regression in 4.2) + - rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink + (regression in 4.2) + - macvtap: fix TUNSETSNDBUF values > 64k (regression in 3.19) + - netlink: Fix autobind race condition that leads to zero port ID + (regression in 4.1) + - netlink: Replace rhash_portid with bound + - openvswitch: Zero flows on allocation. + - tcp: add proper TS val into RST packets (regression in 3.18) + - packet: Fix AF_PACKET ABI breakage in 4.2 + - net: revert "net_sched: move tp->root allocation into fw_init()" + (regression in 4.1) + - fib_rules: fix fib rule dumps across multiple skbs + - ppp: fix lockdep splat in ppp_dev_uninit() (regression in 4.2) + - [armhf] mvneta: use inband status only when explicitly enabled + (regression in 4.1) + - net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX + - zram: fix possible use after free in zcomp_create() + - [x86] hp-wmi: limit hotkey enable + + [ Ben Hutchings ] + * ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724) + * [x86] ALSA: hda - Disable power_save_node for Thinkpads (Closes: #800694) + * i2c: Enable I2C_CHARDEV as a module in all configurations with I2C + support (Closes: #800597) + * [mips*/octeon] Enable CAVIUM_CN63XXP1 (Closes: #800595) + * [mips*/octeon] Enable MMC, MMC_BLOCK, OCTEON_MMC and other drivers as + modules (Closes: #800594) + * ath10k: add qca6164 support (Closes: #800703) + * [!x86] net: Disable VMXNET3, only useful in VMware x86 virtual machines + * netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths + (Closes: #800445) + * [arm64] Defer workaround for erratum #843419 + * [x86] crypto camellia_aesni_avx: Fix CPU feature checks (Closes: #800934) + + [ Salvatore Bonaccorso ] + * ipc: Initialize msg/shm IPC objects before doing ipc_addid() + (CVE-2015-7613) + + [ Ian Campbell ] + * [armel] Update breaks on flash-kernel to anything earlier than 3.37 since + that version adds the knowledge that various additional kirkwood systems + need a DTB appending as of v3.17-rc1. (Closes: #797878) + + -- Ben Hutchings Tue, 06 Oct 2015 17:44:55 +0100 + +linux-tools (4.2-2) unstable; urgency=medium + + * [x32] Don't attempt to build linux-perf (fixes FTBFS) + * [x32] Build hyperv-daemons package + * [alpha] uapi: Add support for __SANE_USERSPACE_TYPES__(fixes FTBFS) + + -- Ben Hutchings Fri, 02 Oct 2015 18:41:22 +0100 + +linux (4.2.1-2) unstable; urgency=medium + + * media: uvcvideo: Disable hardware timestamps by default (Closes: #794327) + * [mips*] udeb: Remove 'Provides: ata-modules' from kernel-image + * [hppa/parisc64-smp,mips*el/loongson-3] udeb: Remove i2c-modules again, as + the drivers that belong in it are actually built-in (fixes FTBFS) + * sctp: fix race on protocol/netns initialization (CVE-2015-5283) + * [mips*] pgtable-bits.h: Correct _PAGE_GLOBAL_SHIFT build failure + (regression in 4.0, but not a build failure for us) + + -- Ben Hutchings Sun, 27 Sep 2015 14:17:34 +0100 + +linux-tools (4.2-1) unstable; urgency=medium + + * New upstream release + + [ Ben Hutchings ] + * debian/bin,debian/control,debian/lib/python,debian/rules: Use Python 3 + - debian/lib/python: Sync with linux package + * debian/bin/genorig.py: Make orig tarballs reproducible + * linux-perf: Fix installation directory for bash completions + * linux-perf: Remove shebang lines from perf scripts + * Set compiler flags according to dpkg-buildflags + * hyperv-daemons: Fix fortify format warning + * debian/rules: Add support for DEB_BUILD_OPTIONS=parallel=N + * debian/control: Update policy version to 3.9.6; no changes required + * linux-perf: Revert "perf build: Fix libunwind feature detection on 32-bit + x86", which was a regression for us + + -- Ben Hutchings Fri, 25 Sep 2015 22:55:41 +0100 + +linux (4.2.1-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.1 + + [ Ben Hutchings ] + * [mips*el/loongson-3] udeb: Add fb-modules containing radeon driver + (Closes: #776274) + * [hppa/parisc64-smp,[mips*el/loongson-3] udeb: Add i2c-modules and + make fb-modules depend on it rather than including I2C modules + directly + * workqueue: Make flush_workqueue() available again to non GPL modules + (Closes: #798311) + * vfs: Fix possible escape from mount namespace (CVE-2015-2925): + - dcache: Handle escaped paths in prepend_path + - dcache: Reduce the scope of i_lock in d_splice_alias + - vfs: Test for and handle paths that are unreachable from their mnt_root + * aufs: Update support patches to aufs4.x-rcN-20150921 + - mmap: Fix races in madvise_remove() and sys_msync() (Closes: #796036) + * RDS: verify the underlying transport exists before creating a connection + (CVE-2015-6937) + * Set ABI to 1 + * e1000e: Fix tight loop implementation of systime read algorithm + * mmc: Drop "eMMC: Don't initialize partitions on RPMB flagged areas", as + upstream commit 4e93b9a6abc0 ("mmc: card: Don't access RPMB partitions for + normal read/write") looks like a cleaner solution + * mm: Change ZBUD back to built-in, as it's not really useful as a module + * USB: whiteheat: fix potential null-deref at probe (CVE-2015-5257) + + [ Aurelien Jarno ] + * [mips*el] Fix BPF assembly code for pre-R2 CPUs. (fixes FTBFS) + + -- Ben Hutchings Fri, 25 Sep 2015 18:18:01 +0100 + +linux (4.2-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.2 + + [ Ben Hutchings ] + * Remove all support for ia64 (Closes: #679545, #691576, #728706) + * [s390x] Compile with gcc-4.9 (Closes: #796845) + * linux-source: Depend on xz-utils, not bzip2 (Closes: #796940) + * gfs2: Make statistics unsigned, suitable for use with do_div() + (fixes FTBFS on mipsel,m68k) + * [amd64] Enable KALLSYMS_ALL (Closes: #660288), LIVEPATCH + * Re-enable various config options disabled by name changes in 4.2: + - SUNRPC_XPRT_RDMA replaced SUNRPC_XPRT_RDMA_{CLIENT,SERVER} + - [mips*el/loongson*] LOONGSON64 replaced LOONGSON + - [x86] COMEDI_8255_SA replaced COMEDI_8255 + * [sparc] Remove linux-image, linux-header and udeb packages, as they + are redundant with sparc64 and neither is an official port + * Fix last issue that prevents a reproducible build (Closes: #769844): + - DocBook: Use a fixed encoding for output + * debian/bin,debian/control,debian/lib/python,debian/rules.real, + linux-support: Use Python 3 + * debian/bin/genorig.py: Make orig tarballs reproducible + + -- Ben Hutchings Mon, 31 Aug 2015 02:08:19 +0100 + +linux (4.2~rc8-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Aurelien Jarno ] + * [mips*] Build ext4 as module. Add core-modules and ext4-modules udeb. + Fixes FTBFS. + * [mips,mips64] Remove r4k-ip22, r5k-ip32 and sb1-bcm91250a flavours. + * [mipsel,mips64el] Remove sb1-bcm91250a flavour. + + [ Ben Hutchings ] + * debian/control: Correct build-dependency on xz-utils, needed on all arches + * Fix more issues that prevent a reproducible build: + - Set LC_ALL=C.UTF-8 + - Avoid creating man pages in source tree + + -- Ben Hutchings Mon, 24 Aug 2015 12:00:54 +0100 + +linux-tools (4.2~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * genorig: Include more mips makefiles (fixes FTBFS) + + -- Ben Hutchings Mon, 17 Aug 2015 10:42:08 +0200 + +linux-tools (4.2~rc6-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * Adjust for migration to git: + - Update .gitignore files + - debian/control: Update Vcs-* fields + - debian/rules: Exclude .git from maintainerclean rule + * Add packages of liblockdep (lockdep, liblockdep, liblockdep-dev) + + -- Ben Hutchings Fri, 14 Aug 2015 14:58:57 +0200 + +linux (4.2~rc6-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * Adjust for migration to git: + - Update .gitignore files + - debian/control: Update Vcs-* fields + - README.Debian, README.source: Update references to svn + * [rt] Disable until it is updated for 4.2 or later + * debian/control: Drop Frederik Schüler from Uploaders + + -- Ben Hutchings Wed, 12 Aug 2015 20:48:00 +0200 + +linux (4.1.6-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.6 + - [mips*/*-malta] Don't reinitialise RTC (regression in 3.14) + - [mips*] Make set_pte() SMP safe. + - fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() + - [x86] drm/i915: Declare the swizzling unknown for L-shaped configurations + - [x86] drm/i915: Replace WARN inside I915_READ64_2x32 with retry loop + - drm/radeon: rework audio detect (v4) (regression in 4.0) + - drm/radeon/combios: add some validation of lvds values + (regression in 4.0) + - ipr: Fix incorrect trace indexing + - ipr: Fix invalid array indexing for HRRQ + - Bluetooth: Fix NULL pointer dereference in smp_conn_security + - [armhf] dmaengine: pl330: Fix overflow when reporting residue in memcpy + (regression in 4.0) + - [armhf] dmaengine: pl330: Really fix choppy sound because of wrong residue + calculation (regression in 4.0) + - xhci: fix off by one error in TRB DMA address boundary check + - ath10k: fix qca61x4 hw2.1 support + - [sparc*] Fix userspace FPU register corruptions. (Closes: #789180) + - ASoC: dapm: Lock during userspace access + - ASoC: dapm: Don't add prefix to widget stream name (regression in 4.1) + - [x86] xen: Probe target addresses in set_aliased_prot() before the + hypercall + - xen/gntdevt: Fix race condition in gntdev_release() + - hwrng: core - correct error check of kthread_run call + - [x86] crypto: qat - Fix invalid synchronization between + register/unregister sym algs + - rbd: fix copyup completion race + - [armhf] OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc + - [x86] hwmon: (dell-smm) Blacklist Dell Studio XPS 8100 + - ocfs2: fix BUG in ocfs2_downconvert_thread_do_work() + - ocfs2: fix shift left overflow + - nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem + - md/raid1: extend spinlock to protect raid1_end_read_request against + inconsistencies + - dm: fix dm_merge_bvec regression on 32 bit systems (regression in 3.19 + - [x86] Input: alps - only Dell laptops have separate button bits for v2 + dualpoint sticks (regression in 4.1) + - mm, vmscan: Do not wait for page writeback for GFP_NOFS allocations + - signalfd: fix information leak in signalfd_copyinfo + - signal: fix information leak in copy_siginfo_to_user + - signal: fix information leak in copy_siginfo_from_user32 + - nfsd: do nfs4_check_fh in nfs4_check_file instead of nfs4_check_olstateid + + [ Aurelien Jarno ] + * [mips*] Build ext4 as module. Add core-modules and ext4-modules udeb. + Fixes FTBFS. + + [ Ben Hutchings ] + * [i386] udeb: Make gpio_keys_polled and leds-gpio optional in input-modules + as they are not built for the 686-pae flavour (fixes FTBFS) + * perf: Fix AUX buffer refcounting + * ovl: Revert changes in 4.1.5-1 due to regression (Reopens: #786925) + + -- Ben Hutchings Sun, 23 Aug 2015 12:19:22 +0200 + +linux (4.1.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.4 + - Bluetooth: btbcm: allow btbcm_read_verbose_config to fail on Apple + (regression in 4.1) + - ath9k_htc: memory corruption calling set_bit() + - ieee802154: Fix sockaddr_ieee802154 implicit padding information leak. + - staging: vt6656: check ieee80211_bss_conf bssid not NULL + - staging: vt6655: check ieee80211_bss_conf bssid not NULL + - staging: vt6655: device_rx_srv check sk_buff is NULL + - staging: rtl8712: prevent buffer overrun in recvbuf2recvframe + - hid-sensor: Fix suspend/resume delay (regression in 4.0) + - ext4: fix race between truncate and __ext4_journalled_writepage() + - ext4: call sync_blockdev() before invalidate_bdev() in put_super() + - ext4: don't retry file block mapping on bigalloc fs with non-extent file + - ext4: fix fencepost error in lazytime optimization + - ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp + - ext4: fix reservation release on invalidatepage for delalloc fs + - ext4: be more strict when migrating to non-extent based file + - ext4: correctly migrate a file with a hole at the beginning + - jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail() + - jbd2: fix ocfs2 corrupt when updating journal superblock fails + - [armhf] rtc: snvs: fix wakealarm by call enable_irq_wake earlier + (regression in 3.19) + - i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer() + (regression in 4.1) + - i2c: use parent adapter quirks in mux (regression in 4.1) + - vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers + (regression in 4.1) + - media: Fix regression in some more dib0700 based devices + (regression in 3.17) + - rc-core: fix dib0700 scancode generation for RC5 (regression in 3.17) + - cx24117: fix a buffer overflow when checking userspace params + - af9013: Don't accept invalid bandwidth + - s5h1420: fix a buffer overflow when checking userspace params + - cx24116: fix a buffer overflow when checking userspace params + - libata: Fall back to unqueued READ LOG EXT if the DMA variant fails + (regression in 4.1) + - libata: Expose TRIM capability in sysfs + - libata: add ATA_HORKAGE_NOTRIM + - libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous + max_sectors limit (regression in 3.19) + - libata: force disable trim for SuperSSpeed S238 + - [armhf] usb: dwc3: gadget: don't clear EP_BUSY too early + (regression in 3.15) + - USB: devio: fix a condition in async_completed() + - [armhf] phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in + probe function. (regression in 3.17) + - usb: gadget: composite: Fix NULL pointer dereference (regression in 4.1) + - usb: gadget: f_fs: do not set cancel function on synchronous {read,write} + (regression in 4.0) + - USB: OHCI: Fix race between ED unlink and URB submission + (regression in 3.17) + - usb: core: lpm: set lpm_capable for root hub device (regression in 3.15) + - usb: xhci: Bugfix for NULL pointer deference in xhci_endpoint_init() + function + - dm cache: fix race when issuing a POLICY_REPLACE operation + - dm btree remove: fix bug in redistribute3 + - block: loop: convert to per-device workqueue (regression in 4.0) + - block: loop: avoiding too many pending per work I/O (regression in 4.0) + - block: Do a full clone when splitting discard bios (Closes: #793326) + (regression in 3.14) + - [armhf] drm/tegra: dpaux: Fix transfers larger than 4 bytes + (regression in 3.15) + - drm/qxl: Do not cause spice-server to clean our objects + - drm/atomic: fix out of bounds read in for_each_*_in_state helpers + (regression in 4.1) + - drm/radeon: take the mode_config mutex when dealing with hpds (v2) + - [x86] drm/i915/ppgtt: Break loop in gen8_ppgtt_clear_range failure path + (regression in 4.1) + - [x86] drm/i915: fix backlight after resume on 855gm (regression in 3.19) + - [x86] drm/i915: Snapshot seqno of most recently submitted request. + (regression in 4.0) + - Revert "drm/radeon: dont switch vt on suspend" (regression in 4.1) + - drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2) + (regression in 4.1) + - drm/radeon: fix user ptr race condition + - drm/radeon/ci: silence a harmless PCC warning + - drm: add a check for x/y in drm_mode_setcrtc + - drm: Stop resetting connector state to unknown (regression in 4.1) + - libata: Fix regression when the NCQ Send and Receive log page is absent + - xfs: fix remote symlinks on V5/CRC filesystems + - xfs: don't truncate attribute extents if no extents exist + (regression in 4.1) + - tpm: Fix initialization of the cdev (regression in 4.0) + - tpm, tpm_crb: fail when TPM2 ACPI table contents look corrupted + (regression in 4.1) + - [armel,armhf] dmaengine: mv_xor: bug fix for racing condition in + descriptors cleanup + - md: clear mddev->private when it has been freed. (regression in 4.0) + - md: unlock mddev_lock on an error path. (regression in 4.0) + - md: Skip cluster setup for dm-raid (regression in 4.1) + - Btrfs: don't invalidate root dentry when subvolume deletion fails + (regression in 3.18) + - Btrfs: use kmem_cache_free when freeing entry in inode cache + - Btrfs: fix race between caching kthread and returning inode to inode + cache (regression in 3.15) + - Btrfs: fix fsync data loss after append write + - Btrfs: fix list transaction->pending_ordered corruption + (regression in 3.19) + - Btrfs: fix file corruption after cloning inline extents + - selinux: fix mprotect PROT_EXEC regression caused by mm change + (regression in 4.1) + - ceph/crush: fix a bug in tree bucket decode + - ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage + (regression in 4.1) + - ACPI / LPSS: Fix up acpi_lpss_create_device() (regression in 4.0) + - ACPICA: Tables: Enable both 32-bit and 64-bit FACS (regression in 3.14) + - ACPICA: Tables: Enable default 64-bit FADT addresses favor + - ACPI / PCI: Fix regressions caused by resource_size_t overflow with + 32-bit kernel (regression in 4.0) + - mmc: sdhci: Restore behavior while creating OCR mask (regression in 3.17) + - PM / clk: Fix clock error check in __pm_clk_add() (regression in 3.19) + - RDMA/ocrdma: fix double free on pd (regression in 4.0) + - mm/hugetlb: introduce minimum hugepage order (regression in 3.12) + - PM / sleep: Increase default DPM watchdog timeout to 60 + (regression in 3.13) + - firmware: dmi_scan: Only honor end-of-table for 64-bit tables + (regression in 3.19) + - mac80211: fix the beacon csa counter for mesh and ibss + (regression in 3.17) + - iwlwifi: mvm: fix ROC reference accounting (regression in 3.17) + - cfg80211: ignore netif running state when changing iftype + - e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size + (regression in 3.15) + - ovl: lookup whiteouts outside iterate_dir() (regression in 4.0) + - pNFS: Fix a memory leak when attempted pnfs fails + - pNFS/flexfiles: Fix the reset of struct pgio_header when resending + - nfs: fixing infinite OPEN loop in 4.0 stateid recovery + - NFS: Ensure we set NFS_CONTEXT_RESEND_WRITES when requeuing writes + - nfs: fix potential credential leak in ff_layout_update_mirror_cred + - nfs: always update creds in mirror, even when we have an already + connected ds + - 9p: forgetting to cancel request on interrupted zero-copy RPC + - 9p: don't leave a half-initialized inode sitting around + - p9_client_write(): avoid double p9_free_req() + - [arm64] bpf: fix out-of-bounds read in bpf2a64_offset() + - [arm64] bpf: fix endianness conversion bugs + - [arm64] Don't report clear pmds and puds as huge + - mm: avoid setting up anonymous pages into file mapping + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.5 + - [powerpc*] powernv: Fix race in updating core_idle_state + (regression in 3.19) + - Revert "Input: synaptics - allocate 3 slots to keep stability in image + sensors" (regression in 4.1) + - [hppa] Fix some PTE/TLB race conditions and optimize __flush_tlb_range + based on timing results + - [hppa] mm: Fix a memory leak related to pmd not attached to the pgd + (regression in 4.0) + - [armel,armhf] 8404/1: dma-mapping: fix off-by-one error in bitmap size + check (regression in 3.15) + - [mips*] c-r4k: Fix cache flushing for MT cores + - can: replace timestamp as unique skb attribute (regression in 4.1) + - vfs: freeing unlinked file indefinitely delayed + - [armhf] crypto: omap-des - Fix unmapping of dma channels + - [s390x] nmi: fix vector register corruption + - [s390x] bpf: clear correct BPF accumulator register + - genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD + - [x86] perf: Fix static_key bug in load_mm_cr4() (regression in 4.0) + - Revert "dm: only run the queue on completion if congested or no requests + pending" (regression in 4.1) + - scsi: fix host max depth checking for the 'queue_depth' sysfs interface + (regression in 3.19) + - scsi: fix memory leak with scsi-mq (regression in 3.17) + - mnt: Clarify and correct the disconnect logic in umount_tree + (regressions in 4.0.2, 4.1) + - mnt: In detach_mounts detach the appropriate unmounted mount + (regression in 4.1) + - ftrace: Fix breakage of set_ftrace_pid (regression in 3.16) + - [x86] iommu/vt-d: Fix VM domain ID leak (regression in 3.17) + - mmc: sdhci check parameters before call dma_free_coherent + (regression in 3.16) + - iwlwifi: mvm: fix antenna selection when BT is active + (regression in 3.17) + - md/raid1: fix test for 'was read error from last working device'. + - [armhf] spi: imx: Fix small DMA transfers (regression in 3.18) + - [armhf] regulator: s2mps11: Fix GPIO suspend enable shift wrapping bug + - usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 + - [armhf] Revert "serial: imx: initialized DMA w/o HW flow enabled" + (regression in 4.0) + - serial: core: Fix crashes while echoing when closing (regression in 3.19) + - efi: Handle memory error structures produced based on old versions of + standard (regression in 3.13) + - [x86] efi: Use all 64 bit of efi_memmap in setup_e820() + - rds: rds_ib_device.refcount overflow + - n_tty: signal and flush atomically (regression in 4.0) + - [x86] perf/intel/cqm: Return cached counter value from IRQ context + (regression in 4.1)f + - NFS: Don't revalidate the mapping if both size and change attr are up to + date (regression in 3.16) + - NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked + (regression in 4.0) + - NFS: Fix a memory leak in nfs_do_recoalesce (regression in 4.0) + - iscsi-target: Fix use-after-free during TPG session shutdown + - iscsi-target: Fix iscsit_start_kthreads failure OOPs (regression in 4.0) + - iscsi-target: Fix iser explicit logout TX kthread leak + (regression in 4.0) + - qla2xxx: Fix hardware lock/unlock issue causing kernel panic. + (regression in 3.18) + - qla2xxx: release request queue reservation. (regression in 3.18) + - qla2xxx: Remove msleep in qlt_send_term_exchange (regression in 3.18) + - qla2xxx: fix command initialization in target mode. (regression in 3.18) + - qla2xxx: kill sessions/log out initiator on RSCN and port down efvents + (regression in 3.18) + - drm/nouveau/fbcon/nv11-: correctly account for ring space usage + - drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads + - drm/nouveau: hold mutex when calling nouveau_abi16_fini() + - drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex + - xfs: remote attribute headers contain an invalid LSN + - xfs: remote attributes need to be considered data + + [ Ian Campbell ] + * [armhf] Enable cpufreq on some sunxi platforms (Closes: #793185) + - Enable autoloading of the cpufreq-dt driver. + - Enable autoloading of AXP20x regulator driver. + + [ Ben Hutchings ] + * [x86] iio: Enable drivers for ACPI-discoverable devices as modules: + AK8975, BMC150_ACCEL, BMG160, BMP280, INV_MPU6050_IIO, JSA1212, KMX61, + KXCJK1013, MMA9551, MMA9553, SX9500 + * Adjust for migration to git: + - Update .gitignore files + - debian/control: Update Vcs-* fields + - README.Debian, README.source: Update references to svn + * Bump ABI to 2 + * virtio-net: drop NETIF_F_FRAGLIST (CVE-2015-5156) + * ovl: Add support for NFS as lower filesystem (Closes: #786925) + * perf: Fix double-free of the AUX buffer + * linux-source: Fix compression of the source tarball (Closes: #795199) + * udeb: Add newly enabled drivers: + - [i386] Add gpio_keys_polled, leds-gpio to input-modules + - Add virtio-input to input-modules + - Add toshsd to mmc-modules + - Add wd719x to scsi-extra-modules + - Move eeprom_93cx6 to core-modules; make scsi-extra-modules depend on it + + -- Ben Hutchings Sat, 15 Aug 2015 23:37:20 +0200 + +linux-tools (4.1.4-2) unstable; urgency=medium + + * [mips*,alpha,hppa] linux-perf: Add empty Build files for these architectures + (fixes FTBFS) + + -- Ben Hutchings Tue, 04 Aug 2015 17:11:46 +0100 + +linux-tools (4.1.4-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.4 + - perf bench numa: Fix to show proper convergence stats + + [ Ben Hutchings ] + * linux-tools: Set $KBUILD_BUILD_TIMESTAMP from changelog and use it as man + page date + * hyperv-daemons: Only attempt to build package on i386, amd64 + (fixes FTBFS on other architectures) + * linux-tools: Rename to linux-perf-, since other tools are + in other binary packages + + -- Ben Hutchings Tue, 04 Aug 2015 00:47:58 +0100 + +linux (4.1.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.3 + + [ Ben Hutchings ] + * [armel/kirkwood] ubi: Change UBIFS_FS and MTD_UBI from built-in to + modules, to reduce kernel image size (fixes FTBFS) + * debian/rules.real: Use dpkg-parsechangelog -S + * [rt] Update to 4.1.3-rt3 and re-enable + * KEYS: ensure we free the assoc array edit if edit is valid (CVE-2015-1333) + * [armel,sh4] linux-image: Recommend u-boot-tools rather than the obsolete + uboot-mkimage package (Closes: #793608) + * [i386/586] Enable KEYBOARD_GPIO_POLLED and LEDS_GPIO as modules, and + ALIX, NET5501, GEOS (Closes: #734204) + * [s390x] cachinfo: add missing facility check to init_cache_level() + (Closes: #793929) + * md: use kzalloc() when bitmap is disabled (CVE-2015-5697) + * inet: Enable IPVLAN, NET_FOU as modules; enable NET_FOU_IP_TUNNELS + * netfilter: Enable NFT_REDIR as module + * net/sched: Enable NET_ACT_VLAN, NET_ACT_BPF, NET_ACT_CONNMARK as modules + * mpls: Enable MPLS_ROUTING as module + * hci_uart: Enable BT_HCIUART_INTEL, BT_HCIUART_BCM + * SCSI: Enable SCSI_WD719X as module + * dm: Enable DM_LOG_WRITES as module + * cxgb4: Enable CHELSIO_T4_DCB + * ixgbe: Enable IXGBE_VXLAN + * i40e: Enable I40E_FCOE + * drm: Enable DRM_VGEM as module + * virtio: Enable VIRTIO_INPUT as module + * mmc: Enable MMC_TOSHIBA_PCI as module + * [x86] block: Enable BLK_DEV_PMEM as module; enable X86_PMEM_LEGACY + * [x86] tpm: Enable TCG_CRB as module + * debug: Enable DEBUG_LIST + * security: Apply and enable GRKERNSEC_PERF_HARDEN feature from Grsecurity, + disabling use of perf_event_open() by unprivileged users by default + (sysctl: kernel.perf_event_paranoid) + * Set ABI to 1 + + [ Ian Campbell ] + * [armhf] Set CONFIG_ARM_TEGRA_CPUFREQ as builtin. + * [armhf] Enable new drivers for sunxi platforms (Closes: #792388) + + -- Ben Hutchings Mon, 03 Aug 2015 22:17:15 +0100 + +linux-tools (4.1.2-1~exp1) experimental; urgency=medium + + * New upstream release + + [ Bastian Blank ] + * Add hyperv-daemons package, thanks to Hideki Yamane (closes: #782761) + + [ Ben Hutchings ] + * hyperv-daemons: Rewrite description + + -- Ben Hutchings Mon, 13 Jul 2015 01:33:27 +0100 + +linux (4.1.2-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.2 + + [ Ben Hutchings ] + * Fix more issues that prevent a reproducible build: + - linux-doc: DocBook: generate consistent IDs + - linux-manual: DocBook: Fix duplicate man pages + - linux-manual: kernel-doc: Use $KBUILD_BUILD_TIMESTAMP as man page date + * [i386] Disable VM86 (Closes: #792003) + + -- Ben Hutchings Sat, 11 Jul 2015 18:01:42 +0100 + +linux (4.1.1-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.1 + - i40e: start up in VEPA mode by default (Closes: #790953) + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.1 + + [ Ben Hutchings ] + * Fix some issues that prevent a reproducible build (thanks to + Jérémy Bobbio): + - linux-image: Fix timestamps in the built-in initramfs + - linux-source: Fix timestamps and sort files in the tarball + - linux-doc,linux-manual: Drop original timestamp (and name) when + compressing + - linux-doc: Parse kernel-doc deterministically + * aufs: Apply patches to enable building aufs out-of-tree + * [x86] Enable MMIOTRACE (Closes: #790808) + + [ maximilian attems ] + * [x86] Enable SND_SOC_INTEL_BROADWELL_MACH. (closes: #785422) + + [ Ian Campbell ] + * [arm64+armhf] Enable SYSCON poweroff driver. + + -- Ben Hutchings Tue, 07 Jul 2015 09:15:45 +0100 + +linux (4.0.8-2) unstable; urgency=high + + [ Uwe Kleine-König ] + * [rt] Update to 4.0.8-rt6 + + [ Ben Hutchings ] + * [amd64] Fix nested NMI handling (CVE-2015-3290, CVE-2015-3291, + CVE-2015-5157) + - Enable nested do_nmi handling for 64-bit kernels + - Remove asm code that saves cr2 + - Switch stacks on userspace NMI entry + - Reorder nested NMI checks + - Use DF to avoid userspace RSP confusing nested NMI detection + + -- Ben Hutchings Wed, 22 Jul 2015 21:45:07 +0100 + +linux (4.0.8-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.8 + - netfilter: nft_rbtree: fix locking + - [armhf] clk-imx6q: refine sata's parent + - KVM: nSVM: Check for NRIPS support before updating control field + - [sparc*] Use GFP_ATOMIC in ldc_alloc_exp_dring() as it can be called in + softirq context + - bridge: fix multicast router rlist endless loop + - net: igb: fix the start time for periodic output signals + - net: don't wait for order-3 page allocation + - sctp: fix ASCONF list handling (CVE-2015-3212) + - bridge: fix br_stp_set_bridge_priority race conditions + - packet: read num_members once in packet_rcv_fanout() + - packet: avoid out of bounds read in round robin fanout + - neigh: do not modify unlinked entries + - tcp: Do not call tcp_fastopen_reset_cipher from interrupt context + - ip: report the original address of ICMP messages + - net/mlx4_en: Release TX QP when destroying TX ring + - net/mlx4_en: Wake TX queues only when there's enough room + - net/mlx4_en: Fix wrong csum complete report when rxvlan offload is + disabled + - mlx4: Disable HA for SRIOV PF RoCE devices + - net: phy: fix phy link up when limiting speed via device tree + - bnx2x: fix lockdep splat + - sctp: Fix race between OOTB responce and route removal + - [armhf] net: mvneta: introduce compatible string "marvell, armada-xp-neta" + - [armhf] mvebu: update Ethernet compatible string for Armada XP + - [armhf] net: mvneta: disable IP checksum with jumbo frames for Armada 370 + - usb: gadget: f_fs: fix check in read operation + - usb: gadget: f_fs: add extra check before unregister_gadget_item + - crypto: talitos - avoid memleak in talitos_alg_alloc() + - Revert "crypto: talitos - convert to use be16_add_cpu()" + - [armhf/armmp-lpae] iommu/arm-smmu: Fix broken ATOS check + - [x86] iommu/amd: Handle large pages correctly in free_pagetable + - mmc: sdhci: fix low memory corruption + - [x86] intel_pstate: set BYT MSR with wrmsrl_on_cpu() + - selinux: fix setting of security labels on NFS + - [armhf] KVM: force execution of HCPTR access on VM exit + - [armhf] kvm: psci: fix handling of unimplemented functions + - [armhf] tegra20: Store CPU "resettable" status in IRAM + - [powerpc*] tick/idle: Do not register idle states with + CPUIDLE_FLAG_TIMER_STOP set in periodic mode + - [powerpc*] perf: Fix book3s kernel to userspace backtraces + - [x86] PCI: Use host bridge _CRS info on systems with >32 bit addressing + - [x86] PCI: Use host bridge _CRS info on Foxconn K8M890-8237A + - [s390x] KVM: fix external call injection without sigp interpretation + - [s390x] kdump: fix REGSET_VX_LOW vector register ELF notes + - [s390x] KVM: virtio-ccw: don't overwrite config space values + - [x86] KVM: properly restore LVT0 + - [x86] KVM: make vapics_in_nmi_mode atomic + - fs: Fix S_NOSEC handling + - fs/ufs: revert "ufs: fix deadlocks introduced by sb mutex merge" + - fs/ufs: restore s_lock mutex + - vfs: Remove incorrect debugging WARN in prepend_path + - vfs: Ignore unlocked mounts in fs_fully_visible + - ufs: Fix warning from unlock_new_inode() + - ufs: Fix possible deadlock when looking up directories + - fs/ufs: restore s_lock mutex_init() + + [ Ben Hutchings ] + * [ppc64el] Ignore ABI changes due to disabling HIBERNATION (fixes FTBFS) + * [x86] kvm: fix kvm_apic_has_events to check for NULL pointer (CVE-2015-4692) + + -- Ben Hutchings Sat, 11 Jul 2015 04:58:05 +0100 + +linux (4.0.7-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.6 + - crush: ensuring at most num-rep osds are selected + - aio: fix serial draining in exit_aio() + - net: core: Correct an over-stringent device loop detection. + - [x86] bpf_jit: fix FROM_BE16 and FROM_LE16/32 instructions + - [x86] bpf_jit: fix compilation of large bpf programs + - net: phy: Allow EEE for all RGMII variants + - netlink: Reset portid after netlink_insert failure + - rtnl/bond: don't send rtnl msg for unregistered iface + - tcp/ipv6: fix flow label setting in TIME_WAIT state + - net/ipv6/udp: Fix ipv6 multicast socket filter regression + - net: sched: fix call_rcu() race on classifier module unloads + - ipv4: Avoid crashing in ip_error + - cdc_ncm: Fix tx_bytes statistics + - bridge: fix parsing of MLDv2 reports + - net: dp83640: fix broken calibration routine. + - net: dp83640: reinforce locking rules. + - net: dp83640: fix improper double spin locking. + - unix/caif: sk_socket can disappear when state is unlocked + - xen/netback: Properly initialize credit_bytes + - net_sched: invoke ->attach() after setting dev->qdisc + - sctp: Fix mangled IPv4 addresses on a IPv6 listening socket + - bridge: fix br_multicast_query_expired() bug + - udp: fix behavior of wrong checksums (CVE-2015-5364) + - tcp: fix child sockets to use system default congestion control if not set + - xen: netback: read hotplug script once at start of day. + - ipv4/udp: Verify multicast group is ours in upd_v4_early_demux() + - be2net: Replace dma/pci_alloc_coherent() calls with dma_zalloc_coherent() + - bridge: disable softirqs around br_fdb_update to avoid lockup + - netlink: Disable insertions/removals during rehash + - drivers/base: cacheinfo: handle absence of caches + - n_tty: Fix auditing support for cannonical mode + - [x86] iommu/vt-d: Allow RMRR on graphics devices too + - [x86] iommu/vt-d: Fix passthrough mode with translation-disabled devices + - ALSA: hda/realtek - Add a fixup for another Acer Aspire 9420 + - ALSA: usb-audio: Add mic volume fix quirk for Logitech Quickcam Fusion + - ALSA: usb-audio: don't try to get Outlaw RR2150 sample rate + - ALSA: usb-audio: add MAYA44 USB+ mixer control names + - ALSA: usb-audio: fix missing input volume controls in MAYA44 USB(+) + - ALSA: usb-audio: add native DSD support for JLsounds I2SoverUSB + - [armhf] dmaengine: pl330: Fix hang on dmaengine_terminate_all on certain + boards + - dmaengine: Fix choppy sound because of unimplemented resume + - Input: alps - do not reduce trackpoint speed by half + - Input: synaptics - add min/max quirk for Lenovo S540 + - Input: elantech - fix detection of touchpads where the revision matches + a known rate + - Input: elantech - add new icbody type + - block: fix ext_dev_lock lockdep report + - block: discard bdi_unregister() in favour of bdi_destroy() + - USB: cp210x: add ID for HubZ dual ZigBee and Z-Wave dongle + - USB: serial: ftdi_sio: Add support for a Motion Tracker Development Board + - usb: host: xhci: add mutex for non-thread-safe data + - usb: make module xhci_hcd removable + - [x86] asm/irq: Stop relying on magic JMP behavior for early_idt_handlers + - [armhf] dts: am335x-boneblack: disable RTC-only sleep to avoid hardware + damage + - [x86] drm/amdkfd: fix topology bug with capability attr. + - drm/radeon: use proper ACR regisiter for DCE3.2 + - [x86] drm/i915/hsw: Fix workaround for server AUX channel clock divisor + - [x86] drm/i915: Don't skip request retirement if the active list is empty + - [x86] drm/i915: Fix DDC probe for passive adapters + - drm/radeon: fix freeze for laptop with Turks/Thames GPU. + - Revert "drm/radeon: don't share plls if monitors differ in audio support" + - Revert "drm/radeon: adjust pll when audio is not enabled" + - drm/radeon: Make sure radeon_vm_bo_set_addr always unreserves the BO + - serial: imx: Fix DMA handling for IDLE condition aborts + - [powerpc*] of/dynamic: Fix test for PPC_PSERIES + - virtio_pci: Clear stale cpumask when setting irq affinity + - [armel,armhf] bus: mvebu-mbus: do not set WIN_CTRL_SYNCBARRIER on non + io-coherent platforms. + - [armel,armhf] Revert "bus: mvebu-mbus: make sure SDRAM CS for DMA don't + overlap the MBus bridge window" + - [arm64] dts: mt8173-evb: fix model name + - mm/memory_hotplug.c: set zone->wait_table to null after freeing it + - md: Close race when setting 'action' to 'idle'. + - md: don't return 0 from array_state_store + - sched, numa: do not hint for NUMA balancing on VM_MIXEDMAP mappings + - blk-mq: free hctx->ctxs in queue's release handler + - cfg80211: wext: clear sinfo struct before calling driver + - [armhf] irqchip: sunxi-nmi: Fix off-by-one error in irq iterator + - Btrfs: send, add missing check for dead clone root + - Btrfs: send, don't leave without decrementing clone root's send_progress + - btrfs: incorrect handling for fiemap_fill_next_extent return + - btrfs: cleanup orphans while looking up default subvolume + - Btrfs: fix range cloning when same inode used as source and destination + - Btrfs: fix uninit variable in clone ioctl + - Btrfs: fix regression in raid level conversion + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.7 + - crypto: caam - improve initalization for context state saves + - crypto: caam - fix RNG buffer cache alignment + - [x86] KVM: fix lapic.timer_mode on restore + - ALSA: hda - adding a DAC/pin preference map for a HP Envy TS machine + - tracing: Have filter check for balanced ops + - iser-target: Fix variable-length response error completion + - iser-target: Fix possible use-after-free + - drm/mgag200: Reject non-character-cell-aligned mode widths + - [x86] drm/i915: Always reset vma->ggtt_view.pages cache on unbinding + - [x86] Revert "drm/i915: Don't skip request retirement if the active list + is empty" + - drm/radeon: Add RADEON_INFO_VA_UNMAP_WORKING query + - ath3k: Add support of 0489:e076 AR3012 device + - ath3k: add support of 13d3:3474 AR3012 device + - b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset + - cdc-acm: Add support of ATOL FPrint fiscal printers + - [armhf] EXYNOS: Fix failed second suspend on Exynos4 + - [x86] kprobes: Return correct length in __copy_instruction() + - dm: fix NULL pointer when clone_and_map_rq returns !DM_MAPIO_REMAPPED + - [x86] drm/i915: Avoid GPU hang when coming out of s3 or s4 + - [powerpc*] powernv: Restore non-volatile CRs after nap + + [ Ben Hutchings ] + * mm: Re-enable ZBUD as module (Closes: #789094) + * mm: Change ZSMALLOC from built-in to module + * Revert "tcp: fix child sockets to use system default congestion control if + not set" to avoid ABI change + * [ppc64el] Disable HIBERNATION (Closes: #789070) + * [mips*] Correct FP ISA requirements (Closes: #781892) + * udeb: Add more drivers to sound-modules, thanks to Samuel Thibault + (Closes: #782495) + + -- Ben Hutchings Mon, 06 Jul 2015 02:57:42 +0100 + +linux (4.0.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.5 + - [x86] iommu/amd: Fix bug in put_pasid_state_wait (regression in 4.0) + - [x86] fpu: Disable XSAVES* support for now (regression in 3.17) + - [x86] KVM: MMU: fix smap permission check + - [x86] kvm: fix crash in kvm_vcpu_reload_apic_access_page + - [x86] KVM: MMU: fix SMAP virtualization + - ktime: Fix ktime_divns to do signed division (regression in 3.17) + - omfs: fix sign confusion for bitmap loop counter (regression in 3.18) + - xfs: xfs_attr_inactive leaves inconsistent attr fork state behind + - xfs: xfs_iozero can return positive errno (regression in 3.17) + - ovl: don't remove non-empty opaque directory (regression in 4.0) + - [armhf] mfd: da9052: Fix broken regulator probe (regression in 3.19) + - libceph: request a new osdmap if lingering request maps to no osd + - Revert "libceph: clear r_req_lru_item in __unregister_linger_request()" + (regression in 3.18) + - Btrfs: fix racy system chunk allocation when setting block group ro + (regression in 4.0) + - xen/events: don't bind non-percpu VIRQs with percpu chip + - hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37 + - clk: add missing lock when call clk_core_enable in clk_set_parent + (regression in 4.0) + - brcmfmac: avoid null pointer access when brcmf_msgbuf_get_pktid() fails + - lib: Fix strnlen_user() to not touch memory after specified maximum + - vfs: d_walk() might skip too much + - module: Call module notifier on failure after complete_formation() + (regression in 3.16) + - Revert "ALSA: hda - Add mute-LED mode control to Thinkpad" + (regression in 4.0.3) + - xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256 + - [powerpc*] mce: fix off by one errors in mce event handling + (regression in 3.19) + - pty: Fix input race when closing (regression in 3.19) + - ext4: fix lazytime optimization + - ext4: fix NULL pointer dereference when journal restart fails + - ext4: check for zero length extent explicitly + - jbd2: fix r_count overflows leading to buffer overflow in journal recovery + - libata: Ignore spurious PHY event on LPM policy change + - libata: Blacklist queued TRIM on all Samsung 800-series + - [arm64] bpf: fix signedness bug in loading 64-bit immediate + (regression in 3.18) + - [x86] gpio: gpio-kempld: Fix get_direction return value + - [s390x] crypto: ghash - Fix incorrect ghash icv buffer handling. + - mac80211: move WEP tailroom size check + - mac80211: don't use napi_gro_receive() outside NAPI context + - [s390x] mm: correct return value of pmd_pfn (regression in 3.17) + - [armhf] EXYNOS: Fix dereference of ERR_PTR returned by + of_genpd_get_from_provider (regression in 4.0) + - [arm*] fix missing syscall trace exit + - [hppa] Fix crashes due to stack randomization on stack-grows-upwards + architectures + - kernfs: do not account ino_ida allocations to memcg + - nfsd: fix the check for confirmed openowner in nfs4_preprocess_stateid_op + - md/raid5: don't record new size if resize_stripes fails. + - Revert "HID: logitech-hidpp: support combo keyboard touchpad TK820" + (regression in 3.19) + - [mips*] fix FP mode selection in lieu of .MIPS.abiflags data + (regression in 4.0) + - ACPI / init: Fix the ordering of acpi_reserve_resources() + - iwlwifi: mvm: Free fw_status after use to avoid memory leak + (regression in 3.19) + - iwlwifi: pcie: prevent using unmapped memory in fw monitor + - drm/plane-helper: Adapt cursor hack to transitional helpers + (regression in 4.0) + - drm/radeon/audio: make sure connector is valid in hotplug case + - Revert "drm/radeon: only mark audio as connected if the monitor supports + it (v3)" (regression in 4.0.3) + - dm: fix casting bug in dm_merge_bvec() (regression in 3.19) + - dm: fix reload failure of 0 path multipath mapping on blk-mq devices + (regression in 4.0) + - UBI: block: Add missing cache flushes + - md: fix race when unfreezing sync_action (regression in 4.0) + - fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings + (regression in 4.0.2) + + [ Ben Hutchings ] + * udeb: Remove i2o modules (fixes FTBFS on amd64) (Closes: #787004) + * Revert "libata: Ignore spurious PHY event on LPM policy change" to avoid + ABI change + + [ Ian Campbell ] + * [armhf] Enable PCIe support for IMX6 boards. Patch from Vagrant + Cascadian (Closes: #787029) + * [armhf] Add stmmac-platform module to nic-modules udeb. (Closes: #786716) + * [arm] Fix mvebu-mbus for non-io-coherent platforms. In particular + armel/{orion5x,kirkwood}. + * [armel/kirkwood]: Enable CONFIG_ARM_KIRKWOOD_CPUIDLE. (Closes: #787716) + + [ Uwe Kleine-König ] + * [rt] Update to 4.0.5-rt3 + + -- Ben Hutchings Tue, 16 Jun 2015 15:40:49 +0100 + +linux (4.0.4-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.3 + - bpf: fix 64-bit divide + - route: Use ipv4_mtu instead of raw rt_pmtu (regression in 3.19) + - cxgb4: Fix MC1 memory offset calculation (regression in 3.19) + - [mips*] Revert "MIPS: Remove race window in page fault handling" + (regression in 3.17) + - [mips*] Fix race condition in lazy cache flushing. + - [mips*/octeon] Remove udelay() causing huge IRQ latency + - [mips*] Fix cpu_has_mips_r2_exec_hazard. + - [mips*] asm: elf: Set O32 default FPU flags (regression in 4.0) + - ALSA: emux: Fix mutex deadlock in OSS emulation + - cdc-acm: prevent infinite loop when parsing CDC headers. + (regression in 4.0) + - [arm64] dma-mapping: always clear allocated buffers + - [arm64] add missing PAGE_ALIGN() to __dma_free() + - [armhf] usb: chipidea: otg: remove mutex unlock and lock while stop and + start role (regression in 3.16) + - btrfs: unlock i_mutex after attempting to delete subvolume during send + (regression in 3.16) + - [x86] ACPI / SBS: Enable battery manager when present (regression in 3.18) + - rbd: end I/O the entire obj_request on error + - ext4: fix data corruption caused by unwritten and delayed extents + (Closes: #785672) + - ext4: move check under lock scope to close a race. + - SCSI: add 1024 max sectors black list flag (regression in 3.19) + - 3w-xxxx: fix command completion race + - 3w-9xxx: fix command completion race + - 3w-sas: fix command completion race + - drm/radeon: fix lockup when BOs aren't part of the VM on release + - drm/radeon: reset BOs address after clearing it. + - drm/radeon: check new address before removing old one + - hfsplus: don't store special "osx" xattr prefix on-disk + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.4 + - [x86] spinlocks: Fix regression in spinlock contention detection + (regression in 4.0) + - [x86] ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook + (regression in 3.18) + - [x86] PCI/ACPI: Make all resources except [io 0xcf8-0xcff] available on + PCI bus (regression in 4.0) + - ACPI / PNP: add two IDs to list for PNPACPI device enumeration + (regression in 3.16) + - ocfs2: dlm: fix race between purge and get lock resource + - nilfs2: fix sanity check of btree level in nilfs_btree_root_broken() + - mnt: Fix fs_fully_visible to verify the root directory is visible + - mm/memory-failure: call shake_page() when error hits thp tail page + - vfio: Fix runaway interruptible timeout (regression in 4.0) + - Revert "dm crypt: fix deadlock when async crypto algorithm returns -EBUSY" + (regression in 4.0.2) + - block: destroy bdi before blockdev is unregistered. (regression in 4.0) + - blk-mq: fix race between timeout and CPU hotplug + - blk-mq: fix CPU hotplug handling + - [armhf] dts: imx6: phyFLEX: USB VBUS control is active-high + (regression in 3.16) + - [armhf] mvebu: armada-xp-openblocks-ax3-4: Disable internal RTC + - [armhf] OMAP2+: Fix omap off idle power consumption creeping up + (regression in 3.16) + - [armel,armhf] net fix emit_udiv() for BPF_ALU | BPF_DIV | BPF_K + intruction. + - drm: Zero out invalid vblank timestamp in drm_update_vblank_count. + (regression in 3.17) + - [x86] drm/i915/dp: there is no audio on port A + - [x86] drm/amdkfd: allow unregister process with queues + - drm/radeon: disable semaphores for UVD V1 (v2) + - drm/radeon: don't setup audio on asics that don't support it + - drm/radeon: fix userptr BO unpin bug v3 + - drm/radeon: make VCE handle check more strict + - drm/radeon: make UVD handle checking more strict + - drm/radeon: more strictly validate the UVD codec + - pinctrl: Don't just pretend to protect pinctrl_maps, do it for real + - mmc: card: Don't access RPMB partitions for normal read/write + + [ Ben Hutchings ] + * Fix error messages at boot on systems without an RTC (Closes: #784146): + - rtc: hctosys: do not treat lack of RTC device as error + - rtc: hctosys: use function name in the error log + * [rt] Update to 4.0.4-rt1 and re-enable + * linux-image: Depend on kmod without an alternative of module-init-tools + * linux-image: Add versioned Breaks on udev (<< 208-8~) due to #752742 and + #756312 + * [i386] pnp: Disable PNPBIOS_PROC_FS + * [arm64] USB: Add support for XHCI on APM Mustang (Closes: #785707) + - Change USB_XHCI_HCD to built-in and enable USB_XHCI_PLATFORM as built-in + - Make xhci platform driver use 64 bit or 32 bit DMA + - Add support for ACPI identification to xhci-platform + * md/raid0: fix restore to sector variable in raid0_make_request + (Closes: #786372) (regression in 4.0.2) + * [x86] e1000e: Add support for Sunrise Point (i219) (Closes: #784546) + * [x86] config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected + (Closes: #786551) + * cdc_ncm: Fix tx_bytes statistics (regression in 4.0) + * [armhf] USB: musb: Fix order of conditions for assigning end point + operations (regression in 3.19) + * [armel/{kirkwood,orion5x}] Disable PM again to reduce kernel image size + * [armel/kirkwood] Enable DEBUG_MVEBU_UART0_ALTERNATE, replacing + DEBUG_MVEBU_UART_ALTERNATE + * i2o: Disable I2O + * [x86] vmwgfx: Enable DRM_VMWGFX_FBCON (Closes: #714929) + * media: Enable DVB_SMIPCIE as module (Closes: #785153) + * Bump ABI to 2 + * [x86] i2c: Change I2C to built-in and enable ACPI_I2C_OPREGION + (Closes: #778896) + * usb-storage: Enable USB_UAS for the third time, hoping that it's finally + robust enough (Closes: #749014) + * zram: Enable ZRAM_LZ4_COMPRESS (Closes: #770958) + * HID: Enable HID_BATTERY_STRENGTH (Closes: #783214) + * [x86] ALSA: Enable SND_SOC_INTEL_BROADWELL_MACH as module (Closes: #785422) + + [ Ian Campbell ] + * [armhf+arm64] Enabled generic SYSCON regmap reset driver + * [arm64] Enable PCI support and related modules, adjusting udeb module lists + for new modules. + * [arm64] Build XHCI platform drivers as a module. + + -- Ben Hutchings Tue, 26 May 2015 02:30:06 +0100 + +linux (4.0.2-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.1 + - udptunnels: Call handle_offloads after inserting vlan tag. + - tcp: tcp_make_synack() should clear skb->tstamp + - bnx2x: Fix busy_poll vs netpoll + - bpf: fix verifier memory corruption + - Revert "net: Reset secmark when scrubbing packet" + - skbuff: Do not scrub skb mark within the same name space + - fs: take i_mutex during prepare_binprm for set[ug]id executables + (CVE-2015-3339) + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.0.2 + - tcp: fix possible deadlock in tcp_send_fin() + - tcp: avoid looping in tcp_send_fin() (regression in 4.0) + - net: do not deplete pfmemalloc reserve + - net: fix crash in build_skb() + - net: rfs: fix crash in get_rps_cpus() (regression in 4.0) + - md: fix md io stats accounting broken (regression in 3.19) + - [x86] perf/intel: Fix Core2,Atom,NHM,WSM cycles:pp events + (regression in 3.19) + - [x86] fix special __probe_kernel_write() tail zeroing case + (regression in 4.0) + - Btrfs: fix log tree corruption when fs mounted with -o discard + - btrfs: don't accept bare namespace as a valid xattr + - Btrfs: fix inode eviction infinite loop after cloning into it + - Btrfs: fix inode eviction infinite loop after extent_same ioctl + - mm/hugetlb: use pmd_page() in follow_huge_pmd() (regression in 4.0) + - [powerpc] hugetlb: Call mm_dec_nr_pmds() in hugetlb_free_pmd_range() + (regression in 4.0) + - [s390x] KVM: fix handling of write errors in the tpi handler + - [s390x] KVM: reinjection of irqs can fail in the tpi handler + - [s390x] KVM: fix get_all_floating_irqs (regression in 3.15) + - [s390x] hibernate: fix save and restore of kernel text section + - KVM: use slowpath for cross page cached accesses + - [arm*] KVM: check IRQ number on userland injection + - [x86] KVM: VMX: Preserve host CR4.MCE value while in guest mode. + - [mips*el] Loongson-3: Add IRQF_NO_SUSPEND to Cascade irqaction + (regression in 3.19) + - [mips*] Hibernate: flush TLB entries earlier + - md/raid0: fix bug with chunksize not a power of 2. + - [armhf] spi: imx: read back the RX/TX watermark levels earlier + (regression in 3.18) + - ring-buffer: Replace this_cpu_*() with __this_cpu_*() + - NFS: fix BUG() crash in notify_change() with patch to chown_common() + - [armhf] fix broken hibernation (regression in 3.16) + - [armel,armhf] 8320/1: fix integer overflow in ELF_ET_DYN_BASE + - ALSA: emu10k1: don't deadlock in proc-functions + - Input: alps - fix touchpad buttons getting stuck when used with trackpoint + (regression in 4.0) + - mfd: core: Fix platform-device name collisions (regression in 3.19) + - fs/binfmt_elf.c: fix bug in loading of PIE binaries + - ptrace: fix race between ptrace_resume() and wait_task_stopped() + - ext4: make fsync to sync parent dir in no-journal for real this time + - mnt: Prevent circumvention of locked mounts using umount(MNT_DETACH) + (CVE-2014-9717) + - tpm: fix: sanitized code paths in tpm_chip_register() (regression in 4.0) + - [powerpc/powerpc64,ppc64*] perf: Cap 64bit userspace backtraces to + PERF_MAX_STACK_DEPTH (Closes: #784278) + - UBI: account for bitflips in both the VID header and data + - UBI: fix out of bounds write + - UBI: fix check for "too many bytes" + - target: Fix COMPARE_AND_WRITE with SG_TO_MEM_NOALLOC handling + - target/file: Fix SG table for prot_buf initialization + - [arm64] head.S: ensure visibility of page tables (regression in 3.15) + - [arm64] errata: add workaround for cortex-a53 erratum #845719 + - [powerpc/powerpc64,ppc64*] powernv: Don't map M64 segments using M32DT + (regression in 3.17) + - [powerpc/powerpc64,ppc64] cell: Fix crash in iic_setup_cpu() after per_cpu + changes (regression in 3.19) + - [powerpc/powerpc64,ppc64] cell: Fix cell iommu after it_page_shift changes + - [i386/686-pae] ACPICA: Utilities: split IO address types from data type + models. + - ACPICA: Store GPE register enable masks upfront (regression in 3.19) + - [armhf] clk: samsung: exynos4: Disable ARMCLK down feature on Exynos4210 + SoC (regression in 3.17) + - [armhf] clk: tegra: Use the proper parent for plld_dsi (regression in 4.0) + - [armhf] serial: imx: Fix clearing of receiver overrun flag + - serial: 8250: Check UART_SCR is writable (regression in 4.0) + - sd: Unregister integrity profile (regression in 3.18) + - sd: Fix missing ATO tag check (regression in 3.18) + - [x86] Drivers: hv: vmbus: Fix a bug in the error path in vmbus_open() + - IB/core: disallow registering 0-sized memory region + - IB/iser: Fix wrong calculation of protection buffer length + (regression in 3.16) + - i2c: Mark adapter devices with pm_runtime_no_callbacks (regression in 4.0) + - [armhf] drm/exynos: Enable DP clock to fix display on Exynos5250 and other + (regression in 4.0) + - [x86] drm/i915: vlv: fix save/restore of GFX_MAX_REQ_COUNT reg + (regression in 3.16) + - [x86] drm/i915: cope with large i2c transfers + - vfs: RCU pathwalk breakage when running into a symlink overmounting + something + - Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one" + (regression in 3.19) + - nfsd4: disallow ALLOCATE with special stateids (regression in 3.19) + - nfsd4: fix READ permission checking (regression in 3.16) + - nfsd4: disallow SEEK with special stateids (regression in 3.18) + - nfsd: eliminate NFSD_DEBUG (regression of linux-libc-dev in 3.19) + - nfs: fix high load average due to callback thread sleeping + (regression in 4.0) + - nfs: fix DIO good bytes calculation (regression in 4.0) + - nfs: remove WARN_ON_ONCE from nfs_direct_good_bytes + - NFS: Add a stub for GETDEVICELIST (regression in 3.18) + - sched/deadline: Always enqueue on previous rq when dl_task_timer() fires + (regression in 4.0) + - mac80211: send AP probe as unicast again (regression in 3.19) + - lib: memzero_explicit: use barrier instead of OPTIMIZER_HIDE_VAR + - [armhf] crypto: omap-aes - Fix support for unequal lengths + - memstick: mspro_block: add missing curly braces + - drivers: platform: parse IRQ flags from resources (regression in 3.18) + + [ Ben Hutchings ] + * debian.py,gencontrol.py: Fix the version sanity checks for backports and + security/LTS uploads + * ipv4: Missing sk_nulls_node_init() in ping_unhash() (CVE-2015-3636) + * [armel/orion5x] Increase maximum kernel image size to ~2 MB, removing + support for DNS-323 (fixes FTBFS) + - Re-enable BLK_DEV_INTEGRITY, SCSI_UFSHCD, TCM_IBLOCK, AUDIT, USER_NS, + PCI_QUIRKS, FTRACE, DEBUG_BUGVERBOSE, SECURITY + - Enable DYNAMIC_DEBUG, FRONTSWAP + * [arm64,armhf,powerpcspe,x86] gpio: Explicitly enable GPIOLIB, as some + drivers now depend on rather than selecting it (fixes FTBFS on i386) + * [x86] thermal: Enable INT340X_THERMAL as module, replacing + ACPI_INT3403_THERMAL + * [x86] Re-enable IOSF_MBI and INTEL_RAPL as modules + * sound: Enable SND_USB_POD, SND_USB_PODHD, SND_USB_TONEPORT, + SND_USB_VARIAX as modules, replacing LINE6_USB + * media/rc: Enable IR_IGORPLUGUSB as module, replacing LIRC_IGORPLUGUSB + * [amd64] misc: Enable INTEL_MIC_BUS and re-enable INTEL_MIC_HOST as modules + * sound/firewire: Enable SND_OXFW as module, replacing SND_FIREWIRE_SPEAKERS + * [x86] Enable DW_DMAC and re-enable SND_SOC_INTEL_HASWELL_MACH, + SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules + * [x86] tpm: Enable TCG_TIS_I2C_ST33 as module, replacing TCG_ST33_I2C + * [armel/kirkwood] regulator: Re-enable REGULATOR, REGULATOR_FIXED_VOLTAGE + * [armel/kirkwood] sound: Enable SND_SIMPLE_CARD as module, replacing + SND_KIRKWOOD_SOC_OPENRD, SND_KIRKWOOD_SOC_T5325; re-enable + SND_SOC_ALC5623, SND_SOC_CS42L51_I2C as modules + * [alpha,armel/kirkwood,hppa,ia64,mips*/{octeon,sb1-bcm91250a}] Re-enable PM + * [armel/orion5x] Enable PM + * [armhf] sound: Enable SND_SIMPLE_CARD as module + * path_openat(): fix double fput() + * [x86] serial: Enable SERIAL_8250_DW as built-in + * [armhf] Enable ARM_ERRATA_430973 (Closes: #768890), ARM_ERRATA_643719, + ARM_ERRATA_754327, ARM_ERRATA_773022 + * [x86] nfc: Enable NFC_HCI, NFC_MEI_PHY, NFC_PN544, NFC_PN544_MEI as + modules (Closes: #770323) + * Set ABI to 1 + * mnt: Add missing pieces of fix for CVE-2014-9717: + - mnt: Fail collect_mounts when applied to unmounted mounts + - fs_pin: Allow for the possibility that m_list or s_list go unused. + + [ Ian Campbell ] + * [armhf] Enable support for Freescale SNVS RTC. (Closes: #782364) + * [armhf] Add ehci-orion module to usb-modules udeb. (Closes: #783324) + * [armhf] imx-hdmi module is now called dw_hdmi-imx, so update fb-modules + udeb. Patches from both Vagrant Cascadian and Wookey. (Closes: #783275) + * [arm*] Install DTBS using dtbs_install target. (Closes: #784761) + + -- Ben Hutchings Mon, 11 May 2015 04:29:06 +0100 + +linux-tools (4.0.2-1) unstable; urgency=medium + + * New upstream release + * Thanks to Luca Boccassi and Lukas Wunner for some hints on upgrading + to 4.0 (Closes: #778588) + * debian/control: Add gcc-multilib to Build-Depends in order to build + perf-read-vdso{,x}32 + * linux-tools: Install perf-read-vdso{,x}32 in versioned directory + under /usr/lib + * linux-tools: Set ARCH=x86 when building perf for amd64, i386 or x32 + * linux-kbuild: Include Makefile.kasan (Closes: #783681) + * linux-kbuild: Enable Large File Support (Closes: #778942) + + -- Ben Hutchings Mon, 11 May 2015 03:53:12 +0100 + +linux (4.0-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_4.0 + + [ Ben Hutchings ] + * [i386,s390] Remove 64-bit kernel flavours, which are also available + through multiarch + * [x86] Enable PARAVIRT_SPINLOCKS + + -- maximilian attems Tue, 21 Apr 2015 21:46:47 +0200 + +linux (3.19.3-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.2 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.3 + + -- maximilian attems Sun, 29 Mar 2015 20:14:33 +0200 + +linux (3.19.1-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.19.1 + - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller + (Closes: #778463) + - random: Fix fast_mix() function (regression in 3.17) + - xfs: inode unlink does not set AGI buffer type + - xfs: set buf types when converting extent formats + - xfs: set superblock buffer type correctly + - iwlwifi: mvm: validate tid and sta_id in ba_notif + - iwlwifi: mvm: fix failure path when power_update fails in add_interface + (regression in 3.15) + - HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events + (regression in 3.19) + - cpufreq: Set cpufreq_cpu_data to NULL before putting kobject + - [xen] manage: Fix USB interaction issues when resuming (regression in + 3.17) + - [xen] xen-scsiback: mark pvscsi frontend request consumed only after last + read + - megaraid_sas: endianness related bug fixes and code optimization + - rc-main: Re-apply filter for no-op protocol change (regression in 3.17) + - proc/pagemap: walk page tables under pte lock + - NFS: struct nfs_commit_info.lock must always point to inode->i_lock + (regression in 3.17) + - [mips*] asm: asmmacro: Replace "add" instructions with "addu" + - mm/hugetlb: pmd_huge() returns true for non-present hugepage + - blk-mq: fix double-free in error path + - nfs41: .init_read and .init_write can be called with valid pg_lseg + (regression in 3.15) + - SUNRPC: NULL utsname dereference on NFS umount during namespace cleanup + - NFSv4: Ensure we reference the inode for return-on-close in delegreturn + - NFSv4.1: Fix a kfree() of uninitialised pointers in + decode_cb_sequence_args + - sg: fix unkillable I/O wait deadlock with scsi-mq + - sg: fix EWOULDBLOCK errors with scsi-mq + - iscsi-target: Drop problematic active_ts_list usage + - cipso: don't use IPCB() to locate the CIPSO IP option (regression in 3.18) + - ring-buffer: Do not wake up a splice waiter when page is not full + (regression in 3.18) + - tty: Remove warning in tty_lock_slave() (regression in 3.19) + - tty: Prevent untrappable signals from malicious program + - USB: fix use-after-free bug in usb_hcd_unlink_urb() + - [armhf] usb: dwc3: gadget: add missing spin_lock() (regression in 3.19) + - usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN + - cdc-acm: add sanity checks + - ntp: Fixup adjtimex freq validation on 32-bit systems (regression in 3.19) + - udf: Check length of extended attributes and allocation descriptors + - [s390*] KVM: forward hrtimer if guest ckc not pending yet + (regression in 3.17) + - [s390*] KVM: base hrtimer on a monotonic clock + - [s390*] KVM: floating irqs: fix user triggerable endless loop + - [s390*] KVM: avoid memory leaks if __inject_vm() fails + - gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip + per node (regression in 3.19) + - sb_edac: Fix detection on SNB machines (regression in 3.18) + - jffs2: fix handling of corrupted summary length + - samsung-laptop: Add use_native_backlight quirk, and enable it on some + models (regression in 3.16) + - libceph: fix double __remove_osd() problem + - btrfs: fix leak of path in btrfs_find_item + - Btrfs: fix fsync data loss after adding hard link to inode + - blk-throttle: check stats_cpu before reading it from sysfs + - [x86] efi: Avoid triple faults during EFI mixed mode calls + - [x86][xen] irq: Fix regression in 3.19 + - Replace ACCESS_ONCE of non-scalar types with READ_ONCE + - kernel: tighten rules for ACCESS_ONCE + - [x86] spinlocks/paravirt: Fix memory corruption on unlock + - quota: Store maximum space limit in bytes + + [ Ben Hutchings ] + * [armhf] Drop sun7i device tree patches which are included in 3.19 + (fixes FTBFS) (Closes: #779799) + * nfsd: Enable NFSD_V4_SECURITY_LABEL + + [ Helge Deller ] + * [hppa] Add virtio udeb modules + * [alpha] Add debian-installer udeb packages + * [alpha] Drop alpha-legacy kernel image + + -- Ben Hutchings Sun, 08 Mar 2015 15:29:45 +0000 + +linux (3.19-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.19 + * Enable SCSI_AM53C974 where tmscim was enabled. + + -- maximilian attems Thu, 12 Feb 2015 23:41:05 +0100 + +linux (3.18.6-1~exp1) experimental; urgency=medium + + [ Ben Hutchings ] + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.6 + + -- maximilian attems Sat, 07 Feb 2015 22:38:37 +0100 + +linux-tools (3.18.5-1~exp1) experimental; urgency=medium + + * New upstream release + * linux-tools: Fix build configuration to avoid linking perf with libbfd + (Closes: #763002) + * linux-tools: Add a check that perf is not linked with libbfd + * [arm64] Enable building linux-tools, thanks to Steve Capper + (Closes: #771340) + * [armel,armhf] linux-tools: Enable use of libunwind + * [hppa,sparc] linux-tools: Enable use of libnuma + * [mips*,powerpcspe,x32] Enable building linux-tools + + -- Ben Hutchings Sun, 01 Feb 2015 02:53:07 +0100 + +linux (3.18.5-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.4 + - [hppa] fix out-of-register compiler error in ldcw inline assembler + function + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.5 + + [ Helge Deller ] + * [hppa] Enable CONFIG_PPDEV to avoid CUPS complaining with systemd + + -- maximilian attems Sat, 31 Jan 2015 22:20:40 +0100 + +linux (3.18.3-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.1 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.2 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.3 + + [ Ian Campbell ] + * [armel/kirkwood]: Enable DEBUG_MVEBU_UART_ALTERNATE to match the behaviour + of previous boardfile based kirkwood kernels. Otherwise the kernel silently + crashes during boot. + * [armel/kirkwood]: Add versioned breaks on flash-kernel << 3.30~, versions + before this do not append a DTB on all platforms. This is required now that + board file support is removed. + * Add xhci-pci and xhci-plat-hcd to usb-modules udeb. (Inspired by #770912). + * [armhf/armmp]: Enable support for Tegra124 based platforms. + + [ Helge Deller ] + * [hppa] udeb: Fix duplicate modules in ata-modules, pata-modules + (Closes: #770102) + * [hppa] Create build-dependencies on binutils-hppa64 and gcc-4.9-hppa64 + + [ Ben Hutchings ] + * [sh4] ftrace: Remove -m32 option from recordmcount.pl (Closes: #775611) + + -- Ben Hutchings Sun, 18 Jan 2015 20:48:06 +0000 + +linux (3.18-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.18 + + [ Ben Hutchings ] + * Remove aufs + * vfs: Enable OVERLAY_FS as module + * drivers/base: Disable UEVENT_HELPER, only needed for compatibility + with wheezy's udev package + * net: Enable 6LOWPAN as module; re-enable BT_6LOWPAN and + IEEE802154_6LOWPAN as modules + * net: Enable GENEVE as module; enable OPENVSWITCH_GENEVE + * ipv4: Enable TCP_CONG_DCTCP as module + * netfilter: Enable IP6_NF_NAT, IP_SET_HASH_MAC, IP_VS_FO, NF_LOG_ARP, + NF_LOG_BRIDGE, NFT_BRIDGE_REJECT, NFT_MASQ, NFT_MASQ_IPV4, NFT_MASQ_IPV6 + as modules + * SCSI,xen: Enable XEN_SCSI_FRONTEND, XEN_SCSI_BACKEND as modules + * SCSI: Re-enable LIBFCOE, FCOE, FCOE_FNIC, SCSI_BNX2X_FCOE as modules + * drivers/net: Enable ET131X as module for all architectures + * wireless: Enable BRCMFMAC as module for all architectures; + enable BRCMFMAC_USB and BRCMFMAC_PCIE + * wireless: Enable RTL8192EE, RTL8821AE as modules for all architectures + (replacing R8192EE, R8821AE for x86 only) + * media: Enable VIDEO_VIVID as module (replacing VIDEO_VIVI) + * [armel/kirkwood] Enable ARCH_MULTI_V5, ARCH_MVEBU, MACH_KIRKWOOD and + MACH_NETXBIG, replacing ARCH_KIRKWOOD etc. + * [powerpc/powerpc64,ppc64*] Enable SCSI_IBMVFC as module, replacing + SCSI_IBMVSCSIS + * input/tablet: Enable TABLET_SERIAL_WACOM4 as module + * media: Enable MEDIA_SDR_SUPPORT; enable DVB_PT3, DVB_USB_DVBSKY, + USB_AIRSPY, USB_HACKRF, VIDEO_TW68 as modules; enable VIDEO_SOLO6X10 as + module on all architectures (replacing SOLO6X10 on x86); + enable USB_MSI2500 on all architectures (replacing USB_MSI3101 on x86) + * au0828: Enable VIDEO_AU0828_RC + * HID,gpio,i2c: Enable HID_CP2112 as module + * HID: Enable HID_PENMOUNT as module + * USB,leds: Enable USB_LED_TRIG + * leds: Disable LEDS_PCA9532, apparently only needed on armel/iop32x + * [x86] platform: Enable TOSHIBA_HAPS as module + * [x86] serial: Enable SERIAL_8250_FINTEK as module + * [x86] Enable MFD_MENF21BMC, LEDS_MENF21BMC, SENSORS_MENF21BMC_HWMON, + MENF21BMC_WATCHDOG as modules + * [x86] edac: Enable EDAC_IE31200 as module + * [x86] drivers/crypto: Enable CRYPTO_DEV_QAT_DH895xCC as module + * [x86] comedi: Enable COMEDI_NI_USB6501 as module + * [armel] Change configuration to reduce kernel image size (fixes FTBFS) + - [/kirkwood] netlink: Disable NETLINK_MMAP + - [/kirkwood] cgroups: Disable MEMCG + - [/kirkwood] Disable CHECKPOINT_RESTORE + - [/kirkwood] mm: Disable COMPACTION, KSM + - [/kirkwood] crypto: Disable CRYPTO_FIPS + - [/kirkwood] power: Disable HIBERNATION, PM_RUNTIME + - [/orion5x] mm: Disable COMPACTION, MIGRATION + - [/orion5x] block: Disable BLK_DEV_INTEGRITY + - [/orion5x] SCSI: Disable SCSI_UFSHCD + - [/orion5x] target: Disable TCM_IBLOCK + - [/orion5x] Disable AUDIT, DEBUG_BUGVERBOSE, PROFILING, OPROFILE, RD_LZO + * [armel] Include size of appended DTBs in image size check + + -- Ben Hutchings Thu, 11 Dec 2014 00:43:21 +0000 + +linux (3.17.4-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.1 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.2 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.3 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.17.4 + + [ Ben Hutchings ] + * Set ABI to trunk + * aufs: Update to aufs3.17-20141020: + - support for AT_EMPTY_PATH/LOOKUP_EMPTY + - Show union filesystem paths in /proc/*/map_files/* + - bugfix, fix the returning size of the branch attr + * Compile with gcc-4.9 (except for ia64,m68k,s390*,sh4) + + -- maximilian attems Mon, 24 Nov 2014 00:00:27 +0100 + +linux-tools (3.17-1~exp1) experimental; urgency=medium + + * New upstream release + - usbip userspace moved to tools/usb/usbip + + -- Ben Hutchings Fri, 17 Oct 2014 14:58:51 +0200 + +linux (3.17-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.17 + + * armel: Drop ixp4xx image. + * topconfig: Reenable renamed IP_NF_NAT. (closes #762458) + * udeb: refix renamed i2c-core. + + -- maximilian attems Tue, 14 Oct 2014 23:01:39 +0200 + +linux (3.17~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20140908 + + [ maximilian attems ] + * udeb: fix renamed i2ccore. + + -- maximilian attems Thu, 18 Sep 2014 23:50:00 +0200 + +linux (3.16.7-ckt9-3) unstable; urgency=high + + [ Ben Hutchings ] + * [x86] crypto: aesni - fix memory usage in GCM decryption (Closes: #782561) + (CVE-2015-3331) + * tcp: Fix crash in TCP Fast Open (Closes: #782515) (CVE-2015-3332) + * kernel: Provide READ_ONCE and ASSIGN_ONCE + * Replace use of ACCESS_ONCE on non-scalar types with READ_ONCE or barriers + as appropriate + * kernel: tighten rules for ACCESS ONCE + * kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val) + * fs: take i_mutex during prepare_binprm for set[ug]id executables + (CVE-2015-3339) + + [ Ian Campbell ] + * [xen] release per-queue Tx and Rx resource when disconnecting, fixing + network after save/restore or migration. (Closes: #782698) + + -- Ben Hutchings Thu, 23 Apr 2015 16:41:27 +0100 + +linux (3.16.7-ckt9-2) unstable; urgency=medium + + * btrfs: simplify insert_orphan_item (Closes: #782362) + + -- Ben Hutchings Mon, 13 Apr 2015 02:01:54 +0100 + +linux (3.16.7-ckt9-1) unstable; urgency=medium + + * New upstream stable update: + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt8 + - usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN + - btrfs: fix leak of path in btrfs_find_item + - tpm_tis: verify interrupt during init + - xfs: ensure buffer types are set correctly + - xfs: inode unlink does not set AGI buffer type + - xfs: set buf types when converting extent formats + - xfs: set superblock buffer type correctly + - [s390*] KVM: avoid memory leaks if __inject_vm() fails + - samsung-laptop: Add use_native_backlight quirk, and enable it on some + models (regression in 3.14) + - staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back + - nfs: don't call blocking operations while !TASK_RUNNING + - cdc-acm: add sanity checks + - USB: fix use-after-free bug in usb_hcd_unlink_urb() + - iwlwifi: mvm: fix failure path when power_update fails in add_interface + - tty: Prevent untrappable signals from malicious program + - cpufreq: Set cpufreq_cpu_data to NULL before putting kobject + - nfs41: .init_read and .init_write can be called with valid pg_lseg + (regression in 3.15) + - mei: mask interrupt set bit on clean reset bit (regression in + 3.16.7-ckt5) + - [s390*] KVM: floating irqs: fix user triggerable endless loop + - cfq-iosched: handle failure of cfq group allocation + - tracing: Fix unmapping loop in tracing_mark_write + - fsnotify: fix handling of renames in audit + - blk-mq: fix double-free in error path + - NFSv4.1: Fix a kfree() of uninitialised pointers in + decode_cb_sequence_args + - mm/hugetlb: pmd_huge() returns true for non-present hugepage + - mm/hugetlb: take page table lock in follow_huge_pmd() + - mm/hugetlb: fix getting refcount 0 page in hugetlb_fault() + - mm/hugetlb: add migration/hwpoisoned entry check in + hugetlb_change_protection + - mm/hugetlb: add migration entry check in __unmap_hugepage_range + - iscsi-target: Drop problematic active_ts_list usage + - mm/memory.c: actually remap enough memory + - mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page() + (regression in 3.11) + - jffs2: fix handling of corrupted summary length + - dm mirror: do not degrade the mirror on discard error + - dm io: reject unsupported DISCARD requests with EOPNOTSUPP + - NFS: struct nfs_commit_info.lock must always point to inode->i_lock + (regression in 3.16.4) + - target: Add missing WRITE_SAME end-of-device sanity check + - target: Check for LBA + sectors wrap-around in sbc_parse_cdb + - Btrfs: fix fsync data loss after adding hard link to inode + - sg: fix read() error reporting + - IB/qib: Do not write EEPROM + - [amd64] EDAC, amd64_edac: Prevent OOPS with >16 memory controllers + (regression in 3.11) + - md/raid5: Fix livelock when array is both resyncing and degraded. + - locking/rtmutex: Avoid a NULL pointer dereference on deadlock + (regression in 3.16) + - time: adjtimex: Validate the ADJ_FREQUENCY values + - ntp: Fixup adjtimex freq validation on 32-bit systems + - dm: fix a race condition in dm_get_md + - dm snapshot: fix a possible invalid memory access on unload + - libceph: fix double __remove_osd() problem + - blk-throttle: check stats_cpu before reading it from sysfs + - debugfs: leave freeing a symlink body until inode eviction + - procfs: fix race between symlink removals and traversals + - autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for + allocation + - clk-gate: fix bit # check in clk_register_gate() (regression in 3.11) + - [powerpc*] kernel: Avoid memory corruption at early stage + (regression in 3.14) + - GFS2: Fix crash during ACL deletion in acl max entry check in + gfs2_set_acl() (regression in 3.14) + - net: llc: use correct size for sysctl timeout entries (CVE-2015-2041) + - net: rds: use correct size for max unacked packets and bytes + (CVE-2015-2042) + - HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events + (regression in 3.16.7-ckt4) + - net: sctp: fix race for one-to-many sockets in sendmsg's auto associate + - ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs + - IB/core: When marshaling ucma path from user-space, clear unused fields + (regression in 3.14) + - IB/core: Fix deadlock on uverbs modify_qp error flow (regression in 3.14) + - IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach + (regression in 3.14) + - IB/iser: Use correct dma direction when unmapping SGs + (regression in 3.15) + - staging: comedi: cb_pcidas64: fix incorrect AI range code handling + - target: Fix R_HOLDER bit usage for AllRegistrants + - target: Avoid dropping AllRegistrants reservation during unregister + - target: Allow AllRegistrants to re-RESERVE existing reservation + - target: Allow Write Exclusive non-reservation holders to READ + - vhost/scsi: potential memory corruption + - mm: softdirty: unmapped addresses between VMAs are clean + - proc/pagemap: walk page tables under pte lock + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt9 + - netfilter: nft_compat: fix module refcount underflow + - netfilter: xt_socket: fix a stack corruption bug + - ipvs: add missing ip_vs_pe_put in sync code + - flowcache: Fix kernel panic in flow_cache_flush_task (regression in 3.15) + - tcp: make sure skb is not shared before using skb_get() + (regression in 3.16) + - gen_stats.c: Duplicate xstats buffer for later use + - ematch: Fix auto-loading of ematch modules. + - openvswitch: Fix net exit. + - net: reject creation of netdev names with colons + - macvtap: make sure neighbour code can push ethernet header + - udp: only allow UFO for packets from SOCK_DGRAM sockets + - gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip + per node (regression in 3.16.7-ckt6) + - [x86] drm/i915: Check obj->vma_list under the struct_mutex + (regression in 3.15) + - ALSA: hda - Disable runtime PM for Panther Point again + (regression in 3.14) + - nilfs2: fix potential memory overrun on inode + - [armhf] usb: dwc3: dwc3-omap: Fix disable IRQ + - [i386] KVM: emulate: fix CMPXCHG8B on 32-bit hosts + - xhci: Allocate correct amount of scratchpad buffers + - USB: usbfs: don't leak kernel data in siginfo + - efi/libstub: Fix boundary checking in efi_high_alloc() + - USB: serial: fix potential use-after-free after failed probe + - USB: serial: fix tty-device error handling at probe + - staging: comedi: adv_pci1710: fix AI INSN_READ for non-zero channel + - mei: make device disabled on stop unconditionally + - NFSv4: Don't call put_rpccred() under the rcu_read_lock() + - btrfs: fix lost return value due to variable shadowing + - eCryptfs: don't pass fs-specific ioctl commands through + - drm/radeon: fix DRM_IOCTL_RADEON_CS oops + - [armhf] ASoC: omap-pcm: Correct dma mask + - [amd64] x86/asm/entry/64: Remove a bogus 'ret_from_fork' optimization + (CVE-2015-2830) + - Btrfs: fix data loss in the fast fsync path + - Btrfs:__add_inode_ref: out of bounds memory read when looking for + extended ref. + - svcrpc: fix memory leak in gssp_accept_sec_context_upcall + (regression in 3.12) + - SUNRPC: Always manipulate rpc_rqst::rq_bc_pa_list under xprt->bc_pa_lock + (regression in 3.15) + - net: cls_bpf: fix size mismatch on filter preparation + - net: cls_bpf: fix auto generation of per list handles + - qlge: Fix qlge_update_hw_vlan_features to handle if interface is down + (regression in 3.13) + - libsas: Fix Kernel Crash in smp_execute_task + - ALSA: hda - Fix regression of HD-audio controller fallback modes + (regression in 3.11) + - can: add missing initialisations in CAN related skbuffs + - ftrace: Fix en(dis)able graph caller when en(dis)abling record via sysctl + - ftrace: Fix ftrace enable ordering of sysctl ftrace_enabled + - [armhf] imx6qdl-sabresd: set swbst_reg as vbus's parent reg + - [armhf] imx6sl-evk: set swbst_reg as vbus's parent reg + - xen-pciback: limit guest control of command register (CVE-2015-2150) + - drm/vmwgfx: Reorder device takedown somewhat + - ALSA: control: Add sanity checks for user ctl id name string + - Revert "i2c: core: Dispose OF IRQ mapping at client removal time" + (regression in 3.16.7-ckt2) + - nilfs2: fix deadlock of segment constructor during recovery + (regression in 3.16.7-ckt7) + - clk: divider: fix calculation of maximal parent rate for a given divider + (regression in 3.15) + - [sparc*] Fix several bugs in memmove(). + - net: sysctl_net_core: check SNDBUF and RCVBUF for min length + - inet_diag: fix possible overflow in inet_diag_dump_one_icsk() + - caif: fix MSG_OOB test in caif_seqpkt_recvmsg() + - rxrpc: bogus MSG_PEEK test in rxrpc_recvmsg() + - tcp: fix tcp fin memory accounting + - net: compat: Update get_compat_msghdr() to match copy_msghdr_from_user() + behaviour (regression in 3.13) + - tcp: make connect() mem charging friendly + + [ Ian Campbell ] + * Initialise framebuffer console earlier. (Closes: #779935) + * [xen] Enable Xen MCE log support. (Closes: #779698) + * [armhf] mvebu: do not register custom DMA operations when coherency is + disabled (Closes: #780858) + * [armhf] Enable power control on various sunxi platforms, enable MFD_AXP20X + and REGULATOR_AXP20X and adding the necessary DTB nodes. (Closes: #781576) + + [ Ben Hutchings ] + * [armel/kirkwood] linux-image: Add versioned Breaks against flash-kernel, + to ensure that an FDT is appended to the image if needed (Closes: #781193) + * Revert "quota: Store maximum space limit in bytes" to avoid ABI change + * IB/core: Prevent integer overflow in ib_umem_get address arithmetic + (CVE-2014-8159) + * Btrfs: make xattr replace operations atomic (CVE-2014-9710) + * ext4: fix ZERO_RANGE bug hidden by flag aliasing + * ext4: fix accidental flag aliasing in ext4_map_blocks flags + * ext4: allocate entire range in zero range (CVE-2015-0275) + * [x86] microcode/intel: Guard against stack overflow in the loader + (CVE-2015-2666) + * ipv6: Don't reduce hop limit for an interface (CVE-2015-2922) + * [powerpc/powerpc64,ppc64] Disable THERM_PM72 and enable its replacements + WINDFARM_PM72 and WINDFARM_RM31 as modules. Update the udeb config + accordingly. Thanks to Milan Kupcevic. (Closes: #781934) + * psmouse: Add support for FocalTech touchpads, thanks to Rafal Ramocki + (Closes: #780971) + * [x86] drm/i915: Add limited color range readout for HDMI/DP ports on + g4x/vlv/chv (Closes: #775217) + * HID: thingm: fix workqueue race on remove (Closes: #780055) + * [x86] Disable X86_VERBOSE_BOOTUP (Closes: #781953) + * eMMC: Don't initialize partitions on RPMB flagged areas (Closes: #782038) + * [x86] powercap / RAPL: change domain detection message (Closes: #781418) + * procfs: Avoid ABI change in 3.16.7-ckt8 + * [powerpc/powerpc] udeb: Add fb-modules package containing radeonfb driver + (Closes: #782058) + + -- Ben Hutchings Wed, 08 Apr 2015 01:03:08 +0100 + +linux (3.16.7-ckt7-1) unstable; urgency=medium + + * New upstream stable update: + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt5 + - [x86] vdso: Use asm volatile in __getcpu + - SCSI: fix regression in scsi_send_eh_cmnd() (regression in 3.16) + - Btrfs: don't delay inode ref updates during log replay + (regression in 3.16.7) + - mm: propagate error from stack expansion even for guard page + - vfio-pci: Fix the check on pci device type in vfio_pci_probe() + - rpc: fix xdr_truncate_encode to handle buffer ending on page boundary + (regression in 3.16) + - [arm64] efi: add missing call to early_ioremap_reset() + (regression in 3.16) + - exit: fix race between wait_consider_task() and wait_task_zombie() + (regression in 3.15) + - mm: prevent endless growth of anon_vma hierarchy + - mm: protect set_page_dirty() from ongoing truncation + - mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process + being killed + - sched/deadline: Fix migration of SCHED_DEADLINE tasks + - HID: roccat: potential out of bounds in pyra_sysfs_write_settings() + - mm: Don't count the stack guard page towards RLIMIT_STACK + - mm: fix corner case in anon_vma endless growing prevention + - [arm*][xen] introduce xen_arch_need_swiotlb + - fsnotify: next_i is freed during fsnotify_unmount_inodes. + - [armhf] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized + object (regression in 3.15) + - HID: i2c-hid: Do not free buffers in i2c_hid_stop() (regression in 3.15) + - ALSA: fireworks: fix an endianness bug for transaction length + (regression in 3.16) + - [armhf] mtd: nand: omap: Fix NAND enumeration on 3430 LDP + (regression in 3.13) + - ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name() + when link file (regression in 3.14) + - [powerpc*] Fix bad NULL pointer check in udbg_uart_getc_poll() + (regression in 3.12) + - nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races + - [armhf] OMAP4: PM: Only do static dependency configuration in + omap4_init_static_deps (regression in 3.11) + - [armel,armhf] Revert "ARM: 7830/1: delay: don't bother reporting bogomips + in /proc/cpuinfo" (regression in 3.12) + - gre: fix the inner mac header in nbma tunnel xmit path + (regression in 3.16.7-ckt3) + - netlink: Always copy on mmap TX. + - netlink: Don't reorder loads/stores before marking mmap netlink frame as + available + - batman-adv: Unify fragment size calculation (regression in 3.13) + - batman-adv: avoid NULL dereferences and fix if check (regression in 3.13) + - net: Fix stacked vlan offload features computation + - net: Reset secmark when scrubbing packet + - xen-netback: fixing the propagation of the transmit shaper timeout + (regression in 3.16) + - team: avoid possible underflow of count_pending value for notify_peers + and mcast_rejoin (regression in 3.12) + - usb: gadget: gadgetfs: Free memory allocated by memdup_user() + (regression in 3.15) + - iwlwifi: mvm: fix Rx with both chains (regression in 3.16) + - LOCKD: Fix a race when initialising nlmsvc_timeout (regression in 3.11) + - NFSv4.1: Fix client id trunking on Linux + - vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion + - xhci: Check if slot is already in default state before moving it there + (regression in 3.14) + - USB: console: fix uninitialised ldisc semaphore (regression in 3.12) + - USB: console: fix potential use after free + - [armhf] usb: dwc3: gadget: Fix TRB preparation during SG + - [x86] ftrace/jprobes: Fix conflict between jprobes and function graph + tracing + - clk: Don't try to use a struct clk* after it could have been freed + - [x86] drm/i915: Evict CS TLBs between batches + - [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single" + (regression in 3.16.7-ckt4) + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt6 + - ipvs: uninitialized data with IP_VS_IPV6 + - netfilter: nfnetlink: validate nfnetlink header from batch + - time: settimeofday: Validate the values of tv from user + - drm/radeon: fix VM flush on cayman/aruba (v3) + - drm/radeon: fix VM flush on SI (v3) + - drm/radeon: fix VM flush on CIK (v3) + - drm/radeon: add a dpm quirk list (regression around 3.14) + - can: dev: fix crtlmode_supported check + - can: kvaser_usb: Don't free packets when tight on URBs + - drm/radeon: use rv515_ring_start on r5xx (regression in 3.12) + - PCI: Mark Atheros AR93xx to avoid bus reset (regression in 3.14) + - [x86] PCI: Clip bridge windows to fit in upstream windows + (regression in 3.16) + - [armhf] mvebu: completely disable hardware I/O coherency + - cifs: fix deadlock in cifs_ioctl_clone() + - ipr: wait for aborted command responses + - libata: allow sata_sil24 to opt-out of tag ordered submission + (regression in 3.14.4, 3.15) + - [media] vb2: fix vb2_thread_stop race conditions + - [i386/586] apic: Re-enable PCI_MSI support for non-SMP X86_32 + (regression in 3.12) + - dm cache: share cache-metadata object across inactive and active DM + tables + - dm cache: fix problematic dual use of a single migration count variable + - Input: evdev - fix EVIOCG{type} ioctl + - tty: Fix pty master poll() after slave closes v2 (regression in 3.12) + - [armhf] bus: omap_l3_noc: Add resume hook to restore context + (regression in 3.16) + - decompress_bunzip2: off by one in get_next_block() + - kbuild: Fix removal of the debian/ directory (regression in 3.16) + - mm: get rid of radix tree gfp mask for pagecache_get_page + (regression in 3.16) + - regulator: core: fix race condition in regulator_put() + - ASoC: simple-card: Fix crash in asoc_simple_card_unref() + (regression in 3.15) + - [ppc64el] xmon: Fix another endiannes issue in RTAS call from xmon + - nfs: fix dio deadlock when O_DIRECT flag is flipped + - mac80211: properly set CCK flag in radiotap (regression in 3.12) + - [x86] drm/i915: Only fence tiled region of object. + - can: kvaser_usb: Do not sleep in atomic context + - can: kvaser_usb: Send correct context to URB completion + - rbd: fix rbd_dev_parent_get() when parent_overlap == 0 + - rbd: drop parent_ref in rbd_dev_unprobe() unconditionally + - dm cache: fix missing ERR_PTR returns and handling + - dm thin: don't allow messages to be sent to a pool target in READ_ONLY + or FAIL mode + - [armhf] mvebu: don't set the PL310 in I/O coherency mode when I/O + coherency is disabled + - vm: add VM_FAULT_SIGSEGV handling support + - vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than + SIGBUS + - perf: Tighten (and fix) the grouping condition + - iwlwifi: mvm: drop non VO frames when flushing (regression in 3.16) + - memcg: remove extra newlines from memcg oom kill log (regression in 3.15) + - ipv4: try to cache dst_entries which would cause a redirect + (regression in 3.16) (CVE-2015-1465) + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt7 + - [ppc64el] powerpc: add little endian flag to syscall_get_arch() + - [arm64] Fix up /proc/cpuinfo + - cifs: Complete oplock break jobs before closing file handle + (regression in 3.15) + - [arm64,or1k] lib/checksum.c: fix carry in csum_tcpudp_nofold + - [mips*] Fix kernel lockup or crash after CPU offline/online + - md/raid5: fix another livelock caused by non-aligned writes. + (regression in 3.16) + - drm/radeon: fix PLLs on RS880 and older v2 (regression in 3.15) + (Closes: #770790) + - [armhf/armmp-lpae] 8299/1: mm: ensure local active ASID is marked as + allocated on rollover + - PCI: Handle read-only BARs on AMD CS553x devices + (regression in 3.16.7-ckt4) + - mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range + - nilfs2: fix deadlock of segment constructor over I_SYNC flag + - ip: zero sockaddr returned on error queue + - net: rps: fix cpu unplug + - ipv6: stop sending PTB packets for MTU < 1280 + - udp_diag: Fix socket skipping within chain + - ping: Fix race in free in receive path + - net: don't OOPS on socket aio + - ipv4: tcp: get rid of ugly unicast_sock + - ppp: deflate: never return len larger than output buffer + - [x86] hyperv: Fix the error processing in netvsc_send() + - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller + - ceph: introduce global empty snap context + - drm/vmwgfx: Don't use memory accounting for kernel-side fence objects + - net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr + struct from userland. + - virtio_pci: defer kfree until release callback + + [ Ian Campbell ] + * [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455) + * [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783) + * [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS + entries. + + [ Ben Hutchings ] + * shm: add memfd.h to UAPI export list, so kdbus will build + * [x86] HPET force enable for e6xx based systems (Closes: #772951) + * vfs: read file_handle only once in handle_to_path (CVE-2015-1420) + * ASLR: fix stack randomization on 64-bit systems (CVE-2015-1593) + * Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as + space units" to avoid ABI change + * rmap: Fix ABI change in 3.16.7-ckt5 + * perf: Fix ABI change in 3.16.7-ckt6 + * mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6 + * tcp: Fix ABI change in 3.16.7-ckt7 + * [x86] ACPI / video: Add disable_native_backlight quirk for various + Samsung models and Dell XPS15 L521X (Closes: #772440) + * [x86] ALSA: Enable SND_SOC, SND_SOC_INTEL_SST, SND_SOC_INTEL_HASWELL_MACH, + SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules + (Closes: #773835) + * arcmsr: Backport changes up to Linux 3.18 (Closes: #698821) + * [x86] drm/i915: Quietly reject attempts to create non-pagealigned stolen + objects (Closes: #763155) + * KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED + (Closes: #758870) + * drm: Enable DRM_BOCHS, DRM_QXL as modules + - qxl: Disable by default, as it is incompatible with wheezy's + xserver-xorg-video-qxl. It can be forced to load with module + parameter modeset=1. + * of.h: Keep extern declaration of of_* variables when !CONFIG_OF + (for simplefb) + + [ Helge Deller ] + * [alpha] build debian-installer udeb packages + * [hppa] build virtio udeb packages + + [ Uwe Kleine-König ] + * Add support for Bananapro board, thanks Karsten Merker for the patch. + (Closes: 779311) + + -- Ben Hutchings Sun, 01 Mar 2015 15:13:40 +0000 + +linux (3.16.7-ckt4-3) unstable; urgency=medium + + [ Ben Hutchings ] + * [sh4] ftrace: Remove -m32 option from recordmcount.pl (Closes: #775611) + * [x86] Revert "KVM: Fix of previously incomplete fix for CVE-2014-8480" + as that issue does not affect 3.16 + * [amd64] tls, ldt: Stop checking lm in LDT_empty (regression in 3.16.7-ckt4) + * [x86] tls: Interpret an all-zero struct user_desc as "no segment" + (regression in 3.16.7-ckt4) + * net: sctp: fix slab corruption from use after free on INIT collisions + (CVE-2015-1421) + + [ Ian Campbell ] + * [xen] cancel ballooning if adding new memory failed (Closes: #776448) + * [arm64] Only use the virtual counter (CNTVCT) on arm64. (Closes: #776957) + + -- Ben Hutchings Tue, 03 Feb 2015 20:07:06 +0000 + +linux-tools (3.16-3) unstable; urgency=medium + + * linux-tools: Fix build configuration to avoid linking perf with libbfd + (Closes: #763002) + * linux-tools: Add a check that perf is not linked with libbfd + * [arm64] Enable building linux-tools, thanks to Steve Capper + (Closes: #771340) + + -- Ben Hutchings Mon, 02 Feb 2015 22:05:59 +0000 + +linux (3.16.7-ckt4-2) unstable; urgency=medium + + [ Ian Campbell ] + * [arm64] udeb: Remove zlib-modules, as ZLIB_DEFLATE is now + built-in (fixes FTBFS) + * [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single" + (Closes: #776237) + + [ Helge Deller ] + * [hppa] udeb: Fix duplicate modules in ata-modules, pata-modules + (Closes: #770102) + * [hppa] Enable CONFIG_PPDEV to avoid CUPS complaining with systemd + + [ Ben Hutchings ] + * crypto: Fix unprivileged arbitrary module loading (CVE-2013-7421, + CVE-2014-9644) + - prefix module autoloading with "crypto-" + - include crypto- module prefix in template + - add missing crypto module aliases + * [x86] KVM: Fix of previously incomplete fix for CVE-2014-8480 + * [x86] KVM: SYSENTER emulation is broken (CVE-2015-0239) + + -- Ben Hutchings Tue, 27 Jan 2015 03:57:26 +0000 + +linux (3.16.7-ckt4-1) unstable; urgency=medium + + * New upstream stable update: + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt3 + - [x86] kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is + read-only + - [sparc*] Fix constraints on swab helpers. + - inetdevice: fixed signed integer overflow + - ieee802154: fix error handling in ieee802154fake_probe() + - bonding: fix curr_active_slave/carrier with loadbalance arp monitoring + (regression in 3.14) + - pptp: fix stack info leak in pptp_getname() + - ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg + - net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too + (regression in 3.15) + - net/mlx4_en: Advertize encapsulation offloads features only when VXLAN + tunnel is set (regression in 3.15) + - target: Don't call TFO->write_pending if data_length == 0 + - vhost-scsi: Take configfs group dependency during VHOST_SCSI_SET_ENDPOINT + - iser-target: Handle DEVICE_REMOVAL event on network portal listener + correctly + - ASoC: dpcm: Fix race between FE/BE updates and trigger + - mac80211: Fix regression that triggers a kernel BUG with CCMP + (regression in 3.13) + - rt2x00: do not align payload on modern H/W + - bitops: Fix shift overflow in GENMASK macros + - [x86] Require exact match for 'noxsave' command line option + - [x86] drm/i915: Kick fbdev before vgacon (regression in 3.16) + - can: dev: avoid calling kfree_skb() from interrupt context + - [x86] mm: Set NX across entire PMD at boot + - of: Fix crash if an earlycon driver is not found + - btrfs: fix lockups from btrfs_clear_path_blocking + - [i386/686-pae,armhf/armmp-lpae] PCI: Support 64-bit bridge windows if we + have 64-bit dma_addr_t (regression in 3.14) + - ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up + (regression in 3.13) + - drm/radeon: fix endian swapping in vbios fetch for tdp table + - Bluetooth: Fix endian and alignment issue with ath3k version handling + - nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait + - [armhf] 8109/1: mm: Modify pte_write and pmd_write logic for LPAE + - aio: fix incorrect dirty pages accouting when truncating AIO ring buffer + (regression in 3.12) + - [armel,armhf] mvebu: add missing of_node_put() call in coherency.c + (regression in 3.16) + - iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask + - spi: Fix mapping from vmalloc-ed buffer to scatter list + - SUNRPC: Fix locking around callback channel reply receive + - nfsd: Fix slot wake up race in the nfsv4.1 callback code + - bnx2fc: do not add shared skbs to the fcoe_rx_list + - Revert "xhci: clear root port wake on bits if controller isn't wake-up + capable" (regression in 3.16) + - usb: xhci: rework root port wake bits if controller isn't allowed to + wakeup + - ixgbe: Correctly disable VLAN filter in promiscuous mode + (regression in 3.16) + - ixgbe: fix use after free adapter->state test in ixgbe_remove/ixgbe_probe + (regression in 3.15) + - ALSA: hda - Limit 40bit DMA for AMD HDMI controllers + - PCI/MSI: Add device flag indicating that 64-bit MSIs don't work + - gpu/radeon: Set flag to indicate broken 64-bit MSI + - sound/radeon: Move 64-bit MSI quirk from arch to driver + - [powerpc*] pseries: Honor the generic "no_64bit_msi" flag + - [mips*] fix EVA & non-SMP non-FPU FP context signal handling + (regression in 3.15) + - [x86] drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset + (regression in 3.16) + - [powerpc*] 32 bit getcpu VDSO function uses 64 bit instructions + - [armhf] 8222/1: mvebu: enable strex backoff delay + - [armel,armhf] 8226/1: cacheflush: get rid of restarting block + - btrfs: zero out left over bytes after processing compression streams + - [armhf] net: sun4i-emac: fix memory leak on bad packet + - [armhf] i2c: omap: fix NACK and Arbitration Lost irq handling + - [media] s2255drv: fix payload size for JPG, MJPEG (regression in 3.15) + - nouveau: move the hotplug ignore to correct place. (regression in 3.16.4) + - mm: frontswap: invalidate expired data on a dup-store failure + - mm/vmpressure.c: fix race in vmpressure_work_fn() + - xen-netfront: Remove BUGs on paged skb data which crosses a page boundary + - drivers/input/evdev.c: don't kfree() a vmalloc address + (regression in 3.13) + - mm: fix anon_vma_clone() error treatment (regression in 3.12) + - ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic + - vxlan: Fix race condition between vxlan_sock_add and vxlan_sock_release + - bond: Check length of IFLA_BOND_ARP_IP_TARGET attributes + - gre: Set inner mac header in gro complete (regression in 3.16.7-ckt1) + - [mips*] bpf: Fix broken BPF_MOD + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt4 + - [x86] drm/i915: don't warn if backlight unexpectedly enabled + (Closes: #757805) + - [x86] drm/i915/dp: only use training pattern 3 on platforms that + support it (regression in 3.15) + - btrfs: don't go readonly on existing qgroup items + - writeback: fix a subtle race condition in I_DIRTY clearing + - [s390*] KVM: flush CPU on load control + - UBI: Fix double free after do_sync_erase() + - [x86] Drivers: hv: util: make struct hv_do_fcopy match Hyper-V host + messages (regression for amd64 in 3.16.7) + - Drivers: hv: vmbus: Fix a race condition when unregistering a device + - misc: genwqe: check for error from get_user_pages_fast() + - drbd: merge_bvec_fn: properly remap bvm->bi_bdev + - PCI: Restore detection of read-only BARs + - scsi: correct return values for .eh_abort_handler implementations + - genhd: check for int overflow in disk_expand_part_tbl() + - Btrfs: make sure we wait on logged extents when fsycning two subvols + - Btrfs: make sure logged extents complete in the current transaction V3 + - Btrfs: do not move em to modified list when unpinning + - [armhf] mvebu: disable I/O coherency on non-SMP situations on + Armada 370/375/38x/XP + - nfs41: fix nfs4_proc_layoutget error handling + - USB: cdc-acm: check for valid interfaces + - HID: i2c-hid: fix race condition reading reports + - [armhf] mfd: twl4030-power: Fix regression with missing compatible flag + (regression in 3.16) + - [armhf] serial: samsung: wait for transfer completion before clock + disable + - n_tty: Fix read_buf race condition, increment read_head after pushing + data (regression in 3.12) + - dm cache: only use overwrite optimisation for promotion when in + writeback mode + - dm cache: dirty flag was mistakenly being cleared when promoting via + overwrite + - dm bufio: fix memleak when using a dm_buffer's inline bio + - iwlwifi: dvm: fix flush support for old firmware (regression in + 3.16.7-ckt1) + - iwlwifi: mvm: update values for Smart Fifo (regression in 3.14) + - iommu/vt-d: Fix an off-by-one bug in __domain_mapping() + - dm crypt: use memzero_explicit for on-stack buffer + - mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by + mount (regression in 3.16.3) + - umount: Disallow unprivileged mount force + - md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying + wants. + - [x86] drm/i915: Only warn the first time we attempt to mmio whilst + suspended (regression in 3.15) + - drm/vmwgfx: Fix error printout on signals pending + - drm/radeon: check the right ring in radeon_evict_flags() + - swiotlb-xen: pass dev_addr to xen_dma_unmap_page and + xen_dma_sync_single_for_cpu + - [armhf/armmp] swiotlb-xen: remove BUG_ON in xen_bus_to_phys + - swiotlb-xen: call xen_dma_sync_single_for_device when appropriate + - swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single + - [powerpc] book3s: Fix partial invalidation of TLBs in MCE code. + - [armhf] clocksource: arch_timer: Fix code to use physical timers when + requested (regression in 3.11) + - userns: Prevent evasion of group negative permissions through a userns + (CVE-2014-8989): + + Don't allow setgroups until a gid mapping has been setablished + + Don't allow unprivileged creation of gid mappings + + Add a knob to disable setgroups on a per user namespace basis + + Allow setting gid_maps without privilege when setgroups is disabled + - KEYS: Fix stale key registration at error path + - blk-mq: Fix a use-after-free + - blk-mq: Fix a race between bt_clear_tag() and bt_get() + - nfsd4: fix xdr4 count of server in fs_location4 (regression in 3.16) + - [x86] drm/i915: Don't complain about stolen conflicts on gen3 + (regression in 3.12) + - [x86] kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit + (CVE-2014-8134) + - blk-mq: Fix uninitialized kobject at CPU hotplugging + - ncpfs: return proper error from NCP_IOC_SETROOT ioctl + - [armhf] rtc: omap: fix clock-source configuration (regression in 3.16) + - exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting + - [amd64] switch_to(): Load TLS descriptors before switching DS and ES + (CVE-2014-9419) + - [x86] KVM: nVMX: Disable unrestricted mode if ept=0 (regression in 3.13) + - [x86] KVM: em_ret_far overrides cpl (follow-up to CVE-2014-3647 fix) + - pstore-ram: Fix hangs by using write-combine mappings + - HID: i2c-hid: prevent buffer overflow in early IRQ + - mac80211: fix multicast LED blinking and counter (regression in + 3.16.7-ckt2) + - cfg80211: avoid mem leak on driver hint set + - nl80211: check matches array length before acessing it + - cfg80211: don't WARN about two consecutive Country IE hint + (regression in 3.14) + - tracing/sched: Check preempt_count() for current when reading task->state + (regression in 3.13) + - [x86] tls: Validate TLS entries to protect espfix (CVE-2014-8133) + - [x86] tls: Disallow unusual TLS segments + - isofs: Fix infinite looping over CE entries (CVE-2014-9420) + - mac80211: free management frame keys when removing station + - ceph: do_sync is never initialized (regression in 3.12) + - mnt: Fix a memory stomp in umount (regression in 3.14) + - ocfs2: fix journal commit deadlock + - md/bitmap: always wait for writes on unplug. + - [armhf] mmc: omap_hsmmc: Fix UHS card with DDR50 support (regression in + 3.16) + - [x86] mmc: sdhci-pci-o2micro: Fix Dell E5440 issue (regression in 3.14) + - dm space map metadata: fix sm_bootstrap_get_nr_blocks() + - dm thin: fix a race in thin_dtr + - eCryptfs: Force RO mount when encrypted view is enabled + - eCryptfs: Remove buggy and unnecessary write in file name decode routine + - tcm_loop: Fix wrong I_T nexus association + - Btrfs: fix fs corruption on transaction abort if device supports discard + - [x86] perf/intel/uncore: Make sure only uncore events are collected + - perf: Fix events installation during moving group + - iscsi,iser-target: Initiate termination only once (regression in 3.16.4) + - iser-target: Fix flush + disconnect completion handling + - iser-target: Parallelize CM connection establishment + - iser-target: Fix connected_handler + teardown flow race + - iser-target: Handle ADDR_CHANGE event for listener cm_id + - iser-target: Fix implicit termination of connections + - iser-target: Allocate PI contexts dynamically + - iser-target: Fix NULL dereference in SW mode DIF + - iscsi,iser-target: Expose supported protection ops according to t10_pi + - genirq: Prevent proc race against freeing of irq descriptors + - [powerpc] powernv: Switch off MMU before entering nap/sleep/rvwinkle mode + - [x86] storvsc: ring buffer failures may result in I/O freeze + - iscsi-target: Fail connection on short sendmsg writes + - [x86] drm/i915: Invalidate media caches on gen7 + - [x86] drm/i915: Force the CS stall for invalidate flushes + - dm thin: fix inability to discard blocks when in out-of-data-space mode + - dm thin: fix missing out-of-data-space to write mode transition if blocks + are released + - dm: fix missed error code if .end_io isn't implemented by target_type + - [armhf] i2c: mv64xxx: rework offload support to fix several problems + (regression in 3.12) + - [x86] tls: Don't validate lm in set_thread_area() after all + - ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC + - tick/powerclamp: Remove tick_nohz_idle abuse + - audit: don't attempt to lookup PIDs when changing PID filtering audit + rules (regression in 3.15) + - audit: use supplied gfp_mask from audit_buffer in + kauditd_send_multicast_skb (regression in 3.16) + - [arm64] kernel: fix __cpu_suspend mm switch on warm-boot + - audit: restore AUDIT_LOGINUID unset ABI (regression in 3.10) + - Btrfs: fix loop writing of async reclaim + - isofs: Fix unchecked printing of ER records (CVE-2014-9584) + - crypto: af_alg - fix backlog handling + - udf: Check path length when reading symlink + - udf: Verify i_size when loading inode + - udf: Verify symlink size before loading it + - udf: Check component length before reading it + - [x86] platform/chrome: chromeos_laptop - Add support for Acer C720 + (Closes: #774209) + - batman-adv: Calculate extra tail size based on queued fragments + (Closes: #774155) (CVE-2014-9428) + - vfs: move d_rcu from overlapping d_child to overlapping d_alias + - vfs: deal with deadlock in d_walk() (CVE-2014-8559) + - KEYS: close race between key lookup and freeing (CVE-2014-9529) + + [ Ben Hutchings ] + * [sh4] Build with gcc-4.8 (Closes: #772602) + * Fix inconsistent ABI name generation in + debian/bin/{abiupdate,buildcheck,gencontrol}.py (Closes: #773233) + * iov: Revert unwanted ABI 'fix' in 3.16.7-ckt2-1 + * [armel,armhf] thread_info: Fix ABI change in 3.16.7-ckt3 + * PCI: Fix ABI change in 3.16.7-ckt3 + * Ignore some ABI changes that don't appear to affect OOT modules: + - Removal of __add_pages(), __remove_pages(), of_device_is_stdout_path(), + clk_divider_ro_ops, tick_nohz_idle_enter, tick_nohz_idle_exit + - Changes to ASoC functions + * [arm64] Enable PSTORE as built-in and EFI_VARS_PSTORE as module; + ensure efivars and efi-pstore are loaded on EFI systems (Closes: #773309) + * hwmon: Enable SENSORS_NCT6683 as module (Closes: #774372) + * udeb: Add i2c-designware-{core,platform} to i2c-modules and i2c-hid to + input-modules (Closes: #772578) + * [x86] ACPI / video: Run _BCL before deciding registering backlight + (regression in 3.16) (Closes: #762285) + * [amd64] Enable EFI_MIXED to support Bay Trail systems + * efi: Expose underlying UEFI firmware platform size to userland, to + support installation on Bay Trail systems (Closes: #775191) + * vfs: Changes for compatibility with CVE-2014-8559 fix: + - aufs: move d_rcu from overlapping d_child to overlapping d_alias + - vfs: Avoid ABI change for dentry union changes + * [powerpc/powerpc{,-smp}] video/fb: Change FB_RADEON back to module + (Closes: #748398) (thanks to John Paul Adrian Glaubitz for thoroughly + testing this change) + * userns: Fix ABI change in 3.16.7-ckt4 + * netfilter: conntrack: disable generic tracking for known protocols + (CVE-2014-8160) + * [amd64] vdso: Fix the vdso address randomization algorithm (CVE-2014-9585) + + [ Ian Campbell ] + * [armhf] Enable support for support OMAP5432 uEVM by enabling: + TI_SOC_THERMAL, MFD_PALMAS, REGULATOR_PALMAS, REGULATOR_PBIAS, + REGULATOR_TI_ABB, PINCTRL_PALMAS, GPIO_PALMAS, RTC_DRV_PALMAS, + OMAP5_DSS_HDMI, DISPLAY_ENCODER_TPD12S015, DISPLAY_CONNECTOR_HDMI, + USB_DWC3_OMAP, EXTCON_PALMAS, TI_EMIF and DDR. + Based on a patch from Chen Baozi (Closes: #772953) + * [armel] Change configuration to reduce kernel image size + - Warn if image size leaves less than 1% spare capacity in the flash. This + allows some slack for growth over the lifetime of a stable release. + - [/kirkwood] Disable RD_LZO and RD_LZ4 + - [/kirkwood] mm: Disable KSM + - [/kirkwood] Disable CHECKPOINT_RESTORE + - [/kirkwood] Disable ZSMALLOC + - [/kirkwood] Disable CRYPTO_FIPS + - [/kirkwood] Disable NET_MPLS_GSO + - [/kirkwood] Disable NETLINK_MMAP + - [/kirkwood] Disable PROFILING + - [/kirkwood] Disable BPF_JIT + - [/kirkwood] Disable KPROBES + - [/ixp4xx,orion5x]: Disable RD_LZO + - [/ixp4xx,orion5x]: Disable PROFILING + - [/orion5x]: Make SERIO and dependants modular + * [arhmf] Add device-tree for LinkSprite pcDuino V3. Patch from Karsten + Merker (Closes: #774067) + * [xen] More netback fixes (including reintroducing support for + feature-rx-notify, which was regressed by the fix to #767261). + * Disable TSO in mv643xx_eth driver by default again, since previous fix + appears to not work on all platforms (Closes: #764162). + + -- Ben Hutchings Fri, 16 Jan 2015 00:15:12 +0000 + +linux (3.16.7-ckt2-1) unstable; urgency=high + + * New upstream stable update: + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt1 + - drm/tilcdc: Fix the error path in tilcdc_load() + - usb: phy: return -ENODEV on failure of try_module_get + - PM / clk: Fix crash in clocks management code if !CONFIG_PM_RUNTIME + - rt2x00: support Ralink 5362. + - wireless: rt2x00: add new rt2800usb devices + - NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes + - nfs: fix duplicate proc entries + - mm: page_alloc: fix zone allocation fairness on UP + - ext4: check EA value offset when loading + - jbd2: free bh when descriptor block checksum fails + - ext4: don't check quota format when there are no quota files + - target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE + - vfs: fix data corruption when blocksize < pagesize for mmaped data + - ext4: fix mmap data corruption when blocksize < pagesize + - ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT + - qla_target: don't delete changed nacls + - target: Fix APTPL metadata handling for dynamic MappedLUNs + - iser-target: Disable TX completion interrupt coalescing + - ext4: don't orphan or truncate the boot loader inode + - ext4: add ext4_iget_normal() which is to be used for dir tree lookups + - ext4: fix reservation overflow in ext4_da_write_begin + - ext4: Replace open coded mdata csum feature to helper function + - ext4: move error report out of atomic context in ext4_init_block_bitmap() + - ext4: check s_chksum_driver when looking for bg csum presence + - drm/radeon: fix speaker allocation setup + - drm/radeon: use gart memory for DMA ring tests + - random: add and use memzero_explicit() for clearing data + - freezer: Do not freeze tasks killed by OOM killer + - OOM, PM: OOM killed task shouldn't escape PM suspend + - [mips*/loongson-2f] loongson2_cpufreq: Fix CPU clock rate setting mismerge + - drm/cirrus: bind also to qemu-xen-traditional + - cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy + - cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers + - cpufreq: intel_pstate: Reflect current no_turbo state correctly + - [x86] intel_pstate: Don't lose sysfs settings during cpu offline + - [x86] intel_pstate: Fix BYT frequency reporting + - [x86] intel_pstate: Correct BYT VID values. + - [x86] kvm: don't kill guest on unknown exit reason + - kvm: fix excessive pages un-pinning in kvm_iommu_map error path. + (CVE-2014-8369) + - vfs: be careful with nd->inode in path_init() and follow_dotdot_rcu() + - pstore: Fix duplicate {console,ftrace}-efi entries + - [x86] bpf_jit: fix two bugs in eBPF JIT compiler (regression in 3.16) + - vxlan: fix a use after free in vxlan_encap_bypass + - vxlan: using pskb_may_pull as early as possible + - vxlan: fix a free after use + - ipv4: dst_entry leak in ip_send_unicast_reply() + - ipv4: fix a potential use after free in ip_tunnel_core.c + (regression in 3.11) + - net: tso: fix unaligned access to crafted TCP header in helper API + - [x86] hyperv: Fix the total_data_buflen in send path + - tcp: md5: do not use alloc_percpu() + - macvlan: fix a race on port dismantle and possible skb leaks + (regression in 3.16) + - net/mlx4_en: Don't attempt to TX offload the outer UDP checksum for VXLAN + (regression in 3.14) + - gre: Use inner mac length when computing tunnel length + (regression in 3.14) + - [armhf] spi: pl022: Fix incorrect dma_unmap_sg + - mac80211: fix typo in starting baserate for rts_cts_rate_idx + - staging: comedi: (regression) channel list must be set for COMEDI_CMD + ioctl (regression in 3.15) + - nfsd4: fix response size estimation for OP_SEQUENCE (regression in 3.16) + - quota: Properly return errors from dquot_writeback_dquots() + - i3200_edac: Report CE events properly + - i82860_edac: Report CE events properly + - cpc925_edac: Report UE events properly + - e7xxx_edac: Report CE events properly + - scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND + - usb: serial: ftdi_sio: add "bricked" FTDI device PID + - [armhf] Revert "usb: dwc3: dwc3-omap: Disable/Enable only wrapper + interrupts in prepare/complete" (regression in 3.16) + - usb: gadget: f_fs: remove redundant ffs_data_get() (regression in 3.14) + - [armhf] usb: ffs: fix regression when quirk_ep_out_aligned_size flag is + set (regression in 3.15) + - [armhf] usb: musb: dsps: start OTG timer on resume again + (regression in 3.16.6) + - usb: gadget: udc: core: fix kernel oops with soft-connect + - nfsd4: fix crash on unknown operation number + - Revert "iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate" + (regression in 3.16.4) + - [armhf] usb: dwc3: gadget: Properly initialize LINK TRB + - posix-timers: Fix stack info leak in timer_create() + - futex: Fix a race condition between REQUEUE_PI and task death + - ALSA: bebob: Uninitialized id returned by saffirepro_both_clk_src_get + - PM / Sleep: fix async suspend_late/freeze_late error handling + (regression in 3.15) + - Revert "block: all blk-mq requests are tagged" (regression in 3.16) + - ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode + - zap_pte_range: update addr when forcing flush after TLB batching faiure + - staging: comedi: fix memory leak / bad pointer freeing for chanlist + (regression in 3.15) + - [x86] drm/i915: Ignore VBT backlight check on Macbook 2, 1 + (regression in 3.15) + - [i386/686-pae] pageattr: Prevent overflow in slow_virt_to_phys() for + X86_PAE + - [x86] ACPI / EC: Fix regression due to conflicting firmware behavior + between Samsung and Acer. (regression in 3.16.3) + - mm: free compound page with correct order + - lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}() + - ext4: fix overflow when updating superblock backups after resize + - ext4: fix oops when loading block bitmap failed + - ext4: enable journal checksum when metadata checksum feature enabled + - ext4: prevent bugon on race between write/fcntl + - ext4: bail out from make_indexed_dir() on first error + - PCI: Rename sysfs 'enabled' file back to 'enable' (regression in 3.13) + - fs: allow open(dir, O_TMPFILE|..., 0) with mode 0 + - [arm*] tracing/syscalls: Ignore numbers outside NR_syscalls' range + - nfs: fix kernel warning when removing proc entry + http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt2 + - rbd: Fix error recovery in rbd_obj_read_sync() + - regulator: max77693: Fix use of uninitialized regulator config + - xhci: no switching back on non-ULT Haswell (regression in 3.12) + - Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup + - ocfs2: fix breakage in o2net_send_tcp_msg() (regression in 3.15) + - [armhf] phy: omap-usb2: Enable runtime PM of omap-usb2 phy properly + (regression in 3.16) + - USB: cdc-acm: add quirk for control-line state requests + (regression in 3.16) + - sysfs: driver core: Fix glue dir race condition by gdp_mutex + - drm/nouveau: make sure display hardware is reinitialised on runtime + resume (regression in 3.15) + - drm/nv50/disp: fix dpms regression on certain boards + - drm/nouveau/bios: memset dcb struct to zero before parsing + - GFS2: Make rename not save dirent location (regression in 3.14) + - netfilter: ipset: off by one in ip_set_nfnl_get_byindex() + - netfilter: nf_tables: check for NULL in nf_tables_newchain pcpu stats + allocation (regression in 3.16) + - netfilter: nfnetlink_log: fix maximum packet length logged to userspace + - netfilter: nft_compat: fix wrong target lookup in nft_target_select_ops() + - mmc: core: sdio: Fix unconditional wake_up_process() on sdio thread + (regression in 3.16) + - mmc: don't request CD IRQ until mmc_start_host() + - fs: make cont_expand_zero interruptible + - UBIFS: fix a race condition + - [x86] fpu: __restore_xstate_sig()->math_state_restore() needs + preempt_disable() + - [x86] fpu: shift drop_init_fpu() from save_xstate_sig() to + handle_signal() + - perf: Fix unclone_ctx() vs. locking + - evm: properly handle INTEGRITY_NOXATTRS EVM status + - [alpha] vfs: missing data dependency barrier in prepend_name() + - jffs2: kill wbuf_queued/wbuf_dwork_lock + - fix misuses of f_count() in ppp and netlink + - sched: Use dl_bw_of() under RCU read lock + - [s390*] topology: call set_sched_topology early + - [armhf] mfd: ti_am335x_tscadc: Fix TSC operation after ADC continouous + mode (regression in 3.14) + - [armhf] mfd: ti_am335x_tscadc: Fix TSC resume (regression in 3.14) + - selinux: fix inode security list corruption + - blk-mq: fix potential hang if rolling wakeup depth is too high + (regression in 3.16) + - block: fix alignment_offset math that assumes io_min is a power-of-2 + - drm/nouveau/gpio: rename g92 class to g94 (regression in 3.16) + - [x86] drm/i915: Do not leak pages when freeing userptr objects + - media: v4l2-common: fix overflow in v4l_bound_align_image() + - sched: Use rq->rd in sched_setaffinity() under RCU read lock + - [powerpc*] use device_online/offline() instead of cpu_up/down() + (regression in 3.11) + - xen-blkback: fix leak on grant map error path + - net: skb_fclone_busy() needs to detect orphaned skb (regression in 3.16) + - rbd: avoid format-security warning inside alloc_workqueue() + - rbd: fix error return code in rbd_dev_device_setup() + - media: ttusb-dec: buffer overflow in ioctl (CVE-2014-8884) + - dm raid: ensure superblock's size matches device's logical block size + - ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks + (Closes: #772435) + - mac80211: properly flush delayed scan work on interface removal + - [i386] microcode, AMD: Fix early ucode loading on 32-bit + (regression in 3.14) + - [armhf] mvebu: armada xp: Generalize use of i2c quirk + (regression in 3.12) + - mac80211: fix use-after-free in defragmentation + - iwlwifi: fix RFkill while calibrating (regression in 3.16) + - tun: Fix csum_start with VLAN acceleration (regression in 3.12) + - macvtap: Fix csum_start when VLAN tags are present + - dm thin: grab a virtual cell before looking up the mapping + - [x86] KVM: Fix uninitialized op->type for some immediate values + - [powerpc*] hwrng: pseries - port to new read API and fix stack corruption + - drm/radeon: set correct CE ram size for CIK + - drm/radeon: make sure mode init is complete in bandwidth_update + - cpufreq: Avoid crash in resume on SMP without OPP (regresion in 3.12) + - [i386] microcode, AMD: Fix ucode patch stashing on 32-bit + (regression in 3.14) + - [armhf] mfd: twl4030-power: Fix poweroff with PM configuration enabled + (regression in 3.16) + - [hppa] Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls + - tracing: Do not busy wait in buffer splice (regresion in 3.16) + - param: fix crash on bad kernel arguments (regression in 3.16) + - audit: keep inode pinned + - drm/radeon: add locking around atombios scratch space usage + - nfs: fix pnfs direct write memory leak + - nfs: Fix use of uninitialized variable in nfs_getattr() + - NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired + - NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust + NFS_DELEGATED_STATE + - NFSv4: Fix races between nfs_remove_bad_delegation() and delegation + return + - NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked + - NFS: Don't try to reclaim delegation open state if recovery failed + - [arm64] efi: Fix stub cache maintenance + - [arm64] __clear_user: handle exceptions on strb (CVE-2014-7843) + - [arm64] Correct the race condition in aarch64_insn_patch_text_sync() + - Fix thinko in iov_iter_single_seg_count + - libceph: do not crash on large auth tickets + - [armel,armhf] 8191/1: decompressor: ensure I-side picks up relocated code + - zram: avoid kunmap_atomic() of a NULL pointer + - firewire: cdev: prevent kernel stack leaking into ioctl arguments + - md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN + (regression in 3.13) + - vxlan: Do not reuse sockets for a different address family + - net: sctp: fix NULL pointer dereference in af->from_addr_param on + malformed packet (CVE-2014-7841) + - net: sctp: fix memory leak in auth key management + - [armel,m68k] ipv6: fix IPV6_PKTINFO with v4 mapped (regression in 3.15) + - netlink: Properly unbind in error conditions. (regression in 3.16) + - smsc911x: power-up phydev before doing a software reset. + (regression in 3.14) + - [sparc*] sunvdc: limit each sg segment to a page + - [sparc*] vio: fix reuse of vio_dring slot + - drm/radeon: initialize sadb to NULL in the audio code + - [x86] KVM: Don't report guest userspace emulation error to userspace + - crypto: caam - remove duplicated sg copy functions + - audit: correct AUDIT_GET_FEATURE return message type + - memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration + (regression in 3.14) + - [s390*] vmcore: Remove "weak" from function declarations + - [s390*] clocksource: Remove "weak" from clocksource_default_clock() + declaration + - IB/core: Clear AH attr variable to prevent garbage data + - [amd64] x32, audit: Fix x32's AUDIT_ARCH wrt audit + - [armhf] dts: am335x-evm: Fix 5th NAND partition's name + (regression in 3.15) + - dell-wmi: Fix access out of memory + + [ Ben Hutchings ] + * [x86] Complete Thunderbolt support on Apple computers (Closes: #768653) + - PCI: Add pci_fixup_suspend_late quirk pass + - PCI: Suspend/resume quirks for Apple thunderbolt + - Enable THUNDERBOLT as module + * [amd64] traps: Stop using IST for #SS (CVE-2014-9090) + * [amd64] traps: Fix the espfix64 #DF fixup and rewrite it in C + * [amd64] traps: Rework bad_iret + * [amd64] asm/traps: Disable tracing and kprobes in fixup_bad_iret and + sync_regs + * Fix ABI changes in iovec, of, perf and truncate + * Ignore ABI changes in iwlwifi, KVM and spi-nor + * Revert "drivers/net: Disable UFO through virtio" in macvtap and tun. + This removes the need to shut down VMs if migrating to a patched + host. + + [ Ian Campbell ] + * [xen] Backport various netback fixes (Closes: #767261). + * Backport fix for TSO with mv643xx_eth driver, replacing previous workaround + (#764162) + * [armhf] Increase Ethernet phy startup delay on Banana-Pi. Patch from + Karsten Merker (Closes: #767042) + * [armhf] Enable FB_SIMPLE, used on some Exynos platforms and elsewhere. + * [arm64] Backport various upstream fixes and improvements to the APM X-gene + Ethernet driver. + * Honour stdout-path from Device Tree, along with supporting any supplied + options. (Closes: #770212) + * [armhf] Add udeb modules to support video and keyboard for imx6. Patch from + Vagrant Cascadian (Closes: #770635) + * [device-tree] Reserve memreserve regions even if they partially overlap + with an existing reservation. Fixes boot on Midway. + * [arm64] Enable reboot on the Xgene platform. + + -- Ben Hutchings Mon, 08 Dec 2014 20:03:18 +0000 + +linux (3.16.7-2) unstable; urgency=medium + + [ Ian Campbell ] + * Disable TSO in mv643xx_eth driver by default (Closes: #764162). + + [ Aurelien Jarno ] + * [i386] Rename 486 flavour to 586 for udebs. (Closes: #768288) + + [ Ben Hutchings ] + * [hppa] udeb: Fix modules in multiple packages (Closes: 768297) + + -- Ben Hutchings Thu, 06 Nov 2014 17:42:26 +0000 + +linux (3.16.7-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.6 + - rtnetlink: fix VF info size (regression in 3.11) + - myri10ge: check for DMA mapping errors + - Revert "macvlan: simplify the structure port" (regression in 3.16) + - tcp: don't use timestamp from repaired skb-s to calculate RTT (v2) + (regression in 3.15) + - tcp: fix tcp_release_cb() to dispatch via address family for + mtu_reduced() + - tipc: fix message importance range check (regression in 3.15) + - packet: handle too big packets for PACKET_V3 + - bnx2x: Revert UNDI flushing mechanism (regression in 3.14) + - net: ipv6: fib: don't sleep inside atomic lock (regression in 3.15) + - openvswitch: fix panic with multiple vlan headers + - ipv6: fix rtnl locking in setsockopt for anycast and multicast + - l2tp: fix race while getting PMTU on PPP pseudo-wire (regression in 3.15) + - ipv6: restore the behavior of ipv6_sock_ac_drop() + - bonding: fix div by zero while enslaving and transmitting + (regression in 3.12) + - net: filter: fix possible use after free (regression in 3.15) + - net: allow macvlans to move to net namespace (regression in 3.13) + - macvlan: allow to enqueue broadcast pkt on virtual device + (regression in 3.16) + - xfrm: Generate blackhole routes only from route lookup functions + - xfrm: Generate queueing routes only from route lookup functions + - macvtap: Fix race between device delete and open. + - net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode + (regression in 3.15) + - net/mlx4: Correctly configure single ported VFs from the host + (regression in 3.15) + - gro: fix aggregation for skb using frag_list (regression in 3.13) + - hyperv: Fix bug in netvsc_start_xmit() (potential use-after-free) + - team: avoid race condition in scheduling delayed work + - hyperv: Fix bug in netvsc_send() (potential use-after-free) + - sctp: handle association restarts when the socket is closed. + - net_sched: copy exts->type in tcf_exts_change() (regression in 3.14) + - crypto: caam - fix addressing of struct member + - driver/base/node: remove unnecessary kfree of node struct from + unregister_one_node (regression in 3.15) + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.7 + - btrfs: wake up transaction thread from SYNC_FS ioctl + - Btrfs: fix up bounds checking in lseek + - Btrfs: don't do async reclaim during log replay + - Btrfs: cleanup error handling in build_backref_tree + - Btrfs: fix build_backref_tree issue with multiple shared blocks + - Btrfs: fix race in WAIT_SYNC ioctl + - fs: Add a missing permission check to do_umount (CVE-2014-7975) + - kvm: fix potentially corrupt mmio cache + - [x86] kvm,vmx: Preserve CR4 across VM entry (CVE-2014-3690) + - be2iscsi: check ip buffer before copying (stack buffer overflow) + - mptfusion: enable no_write_same for vmware scsi disks + - qla2xxx: fix kernel NULL pointer access (regression in 3.16) + (Closes: #764804) + - qla2xxx: Fix shost use-after-free on device removal (regression in 3.14) + - dmaengine: fix xor sources continuation + - [arm64] debug: don't re-enable debug exceptions on return from el1_dbg + - mei: bus: fix possible boundaries violation + - nfsv4: Fixing lease renewal (regression in 3.13) + - lzo: check for length overrun in variable length encoding. + - [armhf] tty: omap-serial: fix division by zero + - NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails + - NFSv4: fix open/lock state recovery error handling + - NFSv4.1: Fix an NFSv4.1 state renewal regression + - nfsd4: reserve adequate space for LOCK op (regression in 3.16) + - NFS: Fix an uninitialised pointer Oops in the writeback error path + - NFS: Fix a bogus warning in nfs_generic_pgio (regression in 3.16.4) + - iwlwifi: mvm: disable BT Co-running by default + - [armel,armhf] PCI: mvebu: Fix uninitialized variable in + mvebu_get_tgt_attr() + - Revert "ath9k_hw: reduce ANI firstep range for older chips" + (regression in 3.15) + - fanotify: enable close-on-exec on events' fd when requested in + fanotify_init() + - futex: Ensure get_futex_key_refs() always implies a barrier + (regression in 3.14) + - [ppc64el] iommu/ddw: Fix endianness + - [arm64] compat: fix compat types affecting struct compat_elf_prpsinfo + - ALSA: emu10k1: Fix deadlock in synth voice lookup + - ALSA: hda - Add missing terminating entry to SND_HDA_PIN_QUIRK macro + - [armhf] mvebu: Netgear RN104: Use Hardware BCH ECC + - [armhf] mvebu: Netgear RN2120: Use Hardware BCH ECC + - [armhf] mvebu: Netgear RN102: Use Hardware BCH ECC + - ecryptfs: avoid to access NULL pointer when write metadata in xattr + - xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly + - [sparc*] Do not disable interrupts in nmi_cpu_busy() + - [sparc*] Fix pcr_ops initialization and usage bugs. + - [sparc*] sun4v TLB error power off events + - [sparc*] Fix corrupted thread fault code. + - [sparc*] find_node adjustment + - [sparc*] Let memset return the address argument + - [sparc*] bpf_jit: fix support for ldx/stx mem and SKF_AD_VLAN_TAG + - [sparc*] bpf_jit: fix loads from negative offsets + - [sparc*] Fix FPU register corruption with AES crypto offload. + - [sparc*] Do not define thread fpregs save area as zero-length array. + - [sparc*] Fix hibernation code refrence to PAGE_OFFSET. + - [sparc*] correctly recognise M6 and M7 cpu type + - [sparc*] T5 PMU + - [sparc*] Switch to 4-level page tables. + - [sparc*] Adjust KTSB assembler to support larger physical addresses. + - [sparc*] Fix physical memory management regressions with large + max_phys_bits. + - [sparc*] Use kernel page tables for vmemmap. + - [sparc*] Increase MAX_PHYS_ADDRESS_BITS to 53. + - [sparc*] sparse irq + - [sparc*] Fix register corruption in top-most kernel stack frame during + boot. + - [sparc*] Implement __get_user_pages_fast(). + + [ Ben Hutchings ] + * [i386] Rename 486 flavour to 586, as it has not worked on 486 processors + since we enabled CC_STACKPROTECTOR (Closes: #766105) + - Select M586TSC instead of M486 + * [x86] r8723au: Backport changes up to Linux 3.17 (Closes: #765685) + * mmc_block: Increase max_devices and set MMC_BLOCK_MINORS to 256 + (Closes: #765621) + * [x86] drm/i915: Initialise userptr mmu_notifier serial to 1 + (Closes: #765590) + * rtsx_usb_ms: Use msleep_interruptible() in polling loop (Closes: #765717) + * Bump ABI to 4 + * Add '.0' to the kernel version string (Closes: #742226, #745984) + * vfs,fuse: Change iov_iter_get_pages() to take both maxsize and maxpages + parameters (Closes: #764285) + * lockd: Try to reconnect if statd has moved (Closes: #767219) + * m25p80: Fix module device ID table + * HID: i2c-hid: call the hid driver's suspend and resume callbacks + (Closes: #767204) + * [x86] drm/i915: Add some L3 registers to the parser whitelist + (Closes: #767148) + * wireless: rt2x00: add new rt2800usb device (thanks to Cyril Brulebois) + (Closes: #766802) + * drivers/net,ipv6: Fix virtio/IPv6 regression in 3.16: + - drivers/net: Disable UFO through virtio + - drivers/net,ipv6: Select IPv6 fragment idents for virtio UFO packets + * [x86] KVM: Check non-canonical addresses upon WRMSR (CVE-2014-3610) + * [x86] KVM: Prevent host from panicking on shared MSR writes. + (CVE-2014-3610) + * [x86] KVM: Improve thread safety in pit (CVE-2014-3611) + * [x86] kvm: vmx: handle invvpid vm exit gracefully (CVE-2014-3646) + * [x86] KVM: Fix wrong masking on relative jump/call + * [x86] KVM: Emulator fixes for eip canonical checks on near branches + (CVE-2014-3647) + * [x86] KVM: Handle errors when RIP is set during far jumps (CVE-2014-3647) + * [x86] KVM: Fix far-jump to non-canonical check + * net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks + (CVE-2014-3673) + * net: sctp: fix panic on duplicate ASCONF chunks (CVE-2014-3687) + * net: sctp: fix remote memory pressure from excessive queueing + (CVE-2014-3688) + * mnt: Prevent pivot_root from creating a loop in the mount tree + (CVE-2014-7970) + * linux-image: Recommend irqbalance if CONFIG_SMP is enabled + (Closes: #577788) + * [armhf] leds: Enable LEDS_PWM as module (for Cubox-i) + * [x86] Backport Thunderbolt support on Apple computers from 3.17 + * [x86] linux-image: Remove lilo from suggested boot loaders + * [amd64] linux-image: Add grub-efi to suggested boot loaders + * [hppa] Reduce SIGRTMIN from 37 to 32 to behave like other Linux + architectures (Closes: #766635) + * [hppa] udeb: Add many more module packages (Closes: #766793) + * iwlwifi: Backport firmware monitor from 3.17 (Closes: #767088) + * bug script: Warn if the running kernel matches the ABI name of the + package but is not the installed version + + [ Mauricio Faria de Oliveira ] + * [ppc64el] Disable CONFIG_CMDLINE{,_BOOL} usage for setting consoles + (Closes: #764745) + + [ Uwe Kleine-König ] + * [armhf] enable rtc driver for i.MX6 + * [armhf] add chipidea usb host driver to usb-modules-$version-armmmp-di + for i.MX6 + * [armhf] enable PCI and NAND driver for Armada 370 + * [armhf] enable RTC, GPIO_PCA953X, SENSORS_G762 and watchdog driver for + Netgear ReadyNAS 102/104 + + [ Ian Campbell ] + * [armhf] Build i2c-s3c2410 statically, it is used by the arndale power + controller. + * [armhf] Backport device tree file for Olimex A20-OLinuXino-LIME. (Closes: #764967) + * [armhf] Enable various drivers for the Nokia N900. Patch from Sebastian + Reichel. (Closes: #766070) + * [arm64] Enable EHCI and OHCI platform USB HCD drivers. + * Enable MTD and MTDBLOCK in top-level config. + * [armhf] Add mtd-modules udeb. Patch from Uwe Kleine-Koenig. + + [ Aurelien Jarno ] + * [mips*] Backport a hugetlb fix for Octeon from 3.18. + * [mips*] Backport math emulation fix for MIPS32r2 from 3.18. + * [mips*] Only define MAX_PHYSMEM_BITS on Loongson-3, until a better fix + is committed upstream. Fixes Loongson-2 kernel and maybe more. Closes: + #764223. + * [mips*/octeon] Add support for the UBNT E200 board (EdgeRouter/EdgeRouter + Pro 8 port). + * [mips*/octeon] Enable SERIAL_8250_DW. Disable KEYBOARD_ATKBD, MOUSE_PS2, + SERIO_I8042. + * [mips*/octeon] Really enable USB_OCTEON_EHCI and USB_OCTEON_OHCI. Closes: + Closes: #762066. + + -- Ben Hutchings Tue, 04 Nov 2014 09:47:27 +0000 + +linux (3.16.5-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.4 + - module: Clean up ro/nx after early module load failures + (regression in 3.16) + - [armhf] cpufreq: OPP: Avoid sleeping while atomic + - [armhf] drm/tilcdc: Fix various bugs in removal path + - drm/ttm: Fix possible stack overflow by recursive shrinker calls. + - [x86] drm/i915: Fix crash when failing to parse MIPI VBT + (regression in 3.16) + - [x86] drm/i915: read HEAD register back in init_ring_common() to enforce + ordering (Closes: #763583) + - libata: widen Crucial M550 blacklist matching + - pata_scc: propagate return value of scc_wait_after_reset + - pwm: Fix period and polarity in pwm_get() for non-perfect matches + - aio: add missing smp_rmb() in read_events_ring + - [arm64] flush TLS registers during exec + - [arm64] use irq_set_affinity with force=false when migrating irqs + (regression in 3.15) + - [arm*] KVM: Nuke Hyp-mode tlbs before enabling MMU + - [x86] i2c: ismt: use correct length when copy buffer + - ftrace: Use current addr when converting to nop in + __ftrace_replace_code() (regression in 3.16) + - ALSA: core: fix buffer overflow in snd_info_get_line() + - ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts + for Dice quirk (regression in 3.16) + - HID: picolcd: sanity check report size in raw_event() callback + (CVE-2014-3186) + - HID: magicmouse: sanity check report size in raw_event() callback + (CVE-2014-3181) + - HID: logitech-dj: prevent false errors to be shown (regression in 3.16.2) + - [x86] drm/i915: Skip load detect when intel_crtc->new_enable==true + (regression in 3.16) + - [x86] drm/i915: fix plane/cursor handling when runtime suspended + (regression in 3.14) + - [x86] drm/i915: Ignore VBT backlight presence check on Acer C720 (4005U) + (regression in 3.15) + - [x86] drm/i915: Wait for vblank before enabling the TV encoder + (regression in 3.16) + - [x86] drm/i915/hdmi: fix hdmi audio state readout (regression in 3.16) + - drm/radeon: Add ability to get and change dpm state when radeon PX card + is turned off (regression in 3.15) + - locks: pass correct "before" pointer to locks_unlink_lock in + generic_add_lease + - ufs: fix deadlocks introduced by sb mutex merge (regression in 3.16) + - USB: serial: fix potential stack buffer overflow + - USB: serial: fix potential heap buffer overflow + - USB: option: reduce interrupt-urb logging verbosity (regression in 3.16) + - [armhf] usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down + (regression in 3.13) + - [armhf] usb: phy: twl4030-usb: Fix regressions to runtime PM on omaps + (regressions in 3.14, 3.15) + - uwb: init beacon cache entry before registering uwb device + - usb: hub: take hub->hdev reference when processing from eventlist + - USB: EHCI: unlink QHs even after the controller has stopped + - Revert "ACPI / battery: fix wrong value of capacity_now reported when + fully charged" (regression in 3.16) + - [x86] iommu/vt-d: Check return value of acpi_bus_get_device() + (regression in 3.15) + - [armhf/armmp-lpae] iommu/arm-smmu: fix programming of SMMU_CBn_TCR for + stage 1 + - cgroup: check cgroup liveliness before unbreaking kernfs + (regression in 3.15) + - NFSv4: Fix another bug in the close/open_downgrade code + (regression in 3.16.2) + - nfsd4: fix corruption of NFSv4 read data (regression in 3.16) + - nfs: check wait_on_bit_lock err in page_group_lock + - nfs: clear_request_commit while holding i_lock + - nfs: fix nonblocking calls to nfs_page_group_lock + - nfs: use blocking page_group_lock in add_request + - nfs: fix error handling in lock_and_join_requests + - nfs: don't sleep with inode lock in lock_and_join_requests + - nfs: disallow duplicate pages in pgio page vectors + - nfs: can_coalesce_requests must enforce contiguity + - [armhf] 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy + strex + - [armhf] 8133/1: use irq_set_affinity with force=false when migrating irqs + (regression in 3.15) + - [armel,armhf] 8148/1: flush TLS and thumbee register state during exec + - [armel,armhf] 8149/1: perf: Don't sleep while atomic when enabling + per-cpu interrupts (regression in 3.15) + - [armhf] imx: fix .is_enabled() of shared gate clock (regression in 3.16) + - [armhf] 8165/1: alignment: don't break misaligned NEON load/store + - [mips*] Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems + (regression in 3.15) + - ACPICA: Update to GPIO region handler interface. + - gpio / ACPI: Use pin index and bit length + - ACPI / platform / LPSS: disable async suspend/resume of LPSS devices + (regression in 3.16) + - ACPI / hotplug: Generate online uevents for ACPI containers + (regression in 3.14) + - ACPI / video: disable native backlight for ThinkPad X201s + (regression in 3.16) + - regmap: Fix regcache debugfs initialization (regression in 3.15) + - regmap: Fix handling of volatile registers for format_write() chips + - regmap: Don't attempt block writes when syncing cache on single_rw + devices + - cgroup: reject cgroup names with '\n' + - cgroup: delay the clearing of cgrp->kn->priv + - cgroup: fix unbalanced locking (regression in 3.14) + - [s390*] KVM: Fix user triggerable bug in dead code + - [s390*] KVM: mm: try a cow on read only pages for key ops + - [s390*] KVM: mm: Fix storage key corruption during swapping + - [s390*] KVM: mm: Fix guest storage key corruption in + ptep_set_access_flags + - [x86] xen: don't copy bogus duplicate entries into kernel page tables + - [x86] early_ioremap: Increase FIX_BTMAPS_SLOTS to 8 (regression in 3.16) + - shmem: fix nlink for rename overwrite directory + - SMB3: Fix oops when creating symlinks on smb3 + - iio: Fix indio_dev->trig assignment in several drivers + - Target/iser: Don't put isert_conn inside disconnected handler + - target: Fix inverted logic in SE_DEV_ALUA_SUPPORT_STATE_STORE + (regression in 3.13) + - iscsi-target: Fix memory corruption in iscsit_logout_post_handler_diffcid + - SCSI: libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu + - Revert "iwlwifi: dvm: don't enable CTS to self" (regression in 3.16) + - iwlwifi: mvm: fix endianity issues with Smart Fifo commands + (regression in 3.14) + - iwlwifi: mvm: set MAC_FILTER_IN_BEACON correctly for STA/P2P client + (regression in 3.16) + - workqueue: apply __WQ_ORDERED to create_singlethread_workqueue() + (regression in 3.10) + - futex: Unlock hb->lock in futex_wait_requeue_pi() error path + - block: Fix dev_t minor allocation lifetime + - dm cache: fix race causing dirty blocks to be marked as clean + - percpu: fix pcpu_alloc_pages() failure path + - percpu: perform tlb flush after pcpu_map_pages() failure + - regulatory: add NUL to alpha2 + - lockd: fix rpcbind crash on lockd startup failure (regression in 3.15) + - genhd: fix leftover might_sleep() in blk_free_devt() + - eventpoll: fix uninitialized variable in epoll_ctl + - kcmp: fix standard comparison bug + - fs/notify: don't show f_handle if exportfs_encode_inode_fh failed + - nilfs2: fix data loss with mmap() + - mm, slab: initialize object alignment on cache creation + - fs/cachefiles: add missing \n to kerror conversions (regression in 3.16) + - mm: softdirty: keep bit when zapping file pte + - sched: Fix unreleased llc_shared_mask bit during CPU hotplug + - brcmfmac: handle IF event for P2P_DEVICE interface (regression in 3.12) + - ath9k_htc: fix random decryption failure (regression in 3.15) + - [powerpc,ppc*] Add smp_mb() to arch_spin_is_locked() + - [powerpc,ppc*] Add smp_mb()s to arch_spin_unlock_wait() + - [hppa] Implement new LWS CAS supporting 64 bit operations. + - alarmtimer: Return relative times in timer_gettime + - alarmtimer: Do not signal SIGEV_NONE timers + - alarmtimer: Lock k_itimer during timer callback + - GFS2: fix d_splice_alias() misuses + - IB/qib: Correct reference counting in debugfs qp_stats + - IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs() + (regression in 3.14) + - IB/mlx4: Don't duplicate the default RoCE GID (regression in 3.14) + - IB/core: When marshaling uverbs path, clear unused fields + (regression in 3.14) + - mm: Fix unbalanced mutex in dma_pool_create(). (regression in 3.16) + - PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device + (regression in 3.15) + - Revert "PCI: Don't scan random busses in pci_scan_bridge()" + (regression in 3.15) + - drm/nouveau/runpm: fix module unload + - drm/radeon/px: fix module unload + - fs: Fix nasty 32-bit overflow bug in buffer i/o code. + - blk-mq: Avoid race condition with uninitialized requests + - [x86] crypto: ccp - Check for CCP before registering crypto algs + - nl80211: clear skb cb before passing to netlink + - Revert "PCI: Make sure bus number resources stay within their parents + bounds" (regression in 3.15) + - cpufreq: release policy->rwsem on error (regression in 3.14) + - cpufreq: fix cpufreq suspend/resume for intel_pstate (regression in 3.15) + - media: it913x: init tuner on attach (regression in 3.15) + - media: videobuf2-dma-sg: fix for wrong GFP mask to + sg_alloc_table_from_pages (regression in 3.13) + - media: vb2: fix vb2 state check when start_streaming fails + (regression in 3.16.3) + - media: vb2: fix plane index sanity check in vb2_plane_cookie() + - md/raid1: clean up request counts properly in close_sync() + (regression in 3.13) + - md/raid1: be more cautious where we read-balance during resync. + (regression in 3.13) + - md/raid1: make sure resync waits for conflicting writes to complete. + (regression in 3.13) + - md/raid1: Don't use next_resync to determine how far resync has + progressed (regression in 3.13) + - md/raid1: update next_resync under resync_lock. (regression in 3.13) + - md/raid1: count resync requests in nr_pending. (regression in 3.13) + - md/raid1: fix_read_error should act on all non-faulty devices. + - md/raid1: intialise start_next_window for READ case to avoid hang + (regression in 3.13) + - netfilter: xt_hashlimit: perform garbage collection from process context + - mmc: mmci: Reverse IRQ handling for the arm_variant (regression in 3.15) + - partitions: aix.c: off by one bug (regression in 3.11) + - cpufreq: update 'cpufreq_suspended' after stopping governors + - aio: block exit_aio() until all context requests are completed + - ext4: propagate errors up to ext4_find_entry()'s callers + - ext4: avoid trying to kfree an ERR_PTR pointer + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.5 + - udf: Avoid infinite loop when processing indirect ICBs (CVE-2014-6410) + - ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error. + - perf: fix perf bug in fork() + - mm: memcontrol: do not iterate uninitialized memcgs (regression in 3.14) + - mm: migrate: Close race between migration completion and mprotect + - [x86] ACPI / i915: Update the condition to ignore firmware backlight + change request (regression in 3.16) + - [x86] cpufreq: pcc-cpufreq: Fix wait_event() under spinlock + (regression in 3.15) + - md/raid5: disable 'DISCARD' by default due to safety concerns. + - [x86] drm/i915: Flush the PTEs after updating them before suspend + (regression in 3.12) + - cifs: Fix problem recognizing symlinks (regression in 3.13) + - ring-buffer: Fix infinite spin in reading buffer (regression in 3.16.3) + - mm: numa: Do not mark PTEs pte_numa when splitting huge pages + - media: vb2: fix VBI/poll regression + + [ Ian Campbell ] + * [armhf] Add Exynos5 disk/usb/nic modules to udebs. + * [armhf] Backport BananaPi device tree files. Patch from Karsten + Merker (Closes: #763897). + + [ Ben Hutchings ] + * [hppa/parisc64-smp] Work around gcc 4.8 miscompilation (Closes: #762390) + * [powerpc/powerpc64,ppc64*] video/fb: Change FB_MATROX, FB_RADEON, FB_ATY, + FB_SIS, FB_3DFX, FB_VOODOO1 back to modules (Closes: #748398) + * udeb: Add pata_rdc to pata-modules (Closes: #633128) + * [s390*] 3215: fix tty output containing tabs (Closes: #758264) + * radeon: Don't check for installed firmware if driver is built-in + (Closes: #763305) + * Bump ABI to 3 + * vfs: fold swapping ->d_name.hash into switch_names() + * vfs: Don't exchange "short" filenames unconditionally. (Closes: #763700) + * [hppa,m68k,mips/r4k-ip22,sparc*] bluetooth: Enable BT as module + (Closes: #764524) + + [ Aurelien Jarno ] + * [arm64] Change RTC_DRV_PL031 and RTC_DRV_XGENE from modules to built-ins + as the kernel isn't able to initialize the system clock from a hardware + clock whose driver is a module, and as there is no initramfs mechanism + to do that. + * [armhf] Change RTC_DRV_DA9052, RTC_DRV_IMXDI, RTC_DRV_MC13XXX, + RTC_DRV_MV, RTC_DRV_MXC, RTC_DRV_OMAP, RTC_DRV_PL030, RTC_DRV_PL031, + RTC_DRV_S5M, RTC_DRV_SUNXI, RTC_DRV_VT8500 from modules to built-ins for + the same reason as above. + + -- Ben Hutchings Fri, 10 Oct 2014 09:15:17 +0100 + +linux (3.16.3-2) unstable; urgency=medium + + [ Ben Hutchings ] + * [s390*] syscall: Fix unimplented-syscall entries added before + memfd_create() (fixes FTBFS) (Closes: #762221) + * [armel/kirkwood] Change configuration to reduce kernel image size + (fixes FTBFS) (Closes: #762219) + - block: Change IOSCHED_DEADLINE to module + - gpu: Disable VGA_ARB + + [ Aurelien Jarno ] + * [mips*/octeon] Enable OCTEON_USB, USB_EHCI_HCD, USB_OHCI_HCD, + and USB_OCTEON_EHCI, USB_OCTEON_OHCI (Closes: #762066). + + -- Bastian Blank Sat, 20 Sep 2014 11:43:05 +0200 + +linux (3.16.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.3 + - reiserfs: fix corruption introduced by balance_leaf refactor + (regression in 3.16) (Closes: #761457) + - reiserfs: Fix use after free in journal teardown + - media: v4l: vb2: Fix stream start and buffer completion race + - [x86] iommu/vt-d: Exclude devices using RMRRs from IOMMU API domains + - [powerpc*] powerpc/powernv: Fix IOMMU group lost (regression in 3.15) + - [x86] iommu/vt-d: Defer domain removal if device is assigned to a driver + - [x86] iommu/amd: Fix cleanup_domain for mass device removal + - [s390*] locking: Reenable optimistic spinning + - firmware: Do not use WARN_ON(!spin_is_locked()) + - CAPABILITIES: remove undefined caps from all processes + - fanotify: fix double free of pending permission events + - ocfs2: do not write error flag to user structure we cannot copy from/to + - [powerpc*] mm: fix potential infinite loop in dissolve_free_huge_pages() + - drivers/mfd/rtsx_usb.c: export device table (Closes: #761428) + - [powerpc*] mm: Use read barrier when creating real_pte + - [powerpc*] thp: Add write barrier after updating the valid bit + - [powerpc*] thp: Invalidate old 64K based hash page mapping before insert + of 4k pte + - [powerpc*] thp: Handle combo pages in invalidate + - [powerpc*] thp: Invalidate with vpn in loop + - [powerpc*] thp: Use ACCESS_ONCE when loading pmdp + - SCSI: save command pool address of Scsi_Host (regression in 3.15) + - fix regression in SCSI_IOCTL_SEND_COMMAND (regression in 3.16) + - [mips*] GIC: Prevent array overrun + - [mips*] ptrace: Test correct task's flags in task_user_regset_view() + - [mips*] ptrace: Change GP regset to use correct core dump register layout + - [mips*] ptrace: Avoid smp_processor_id() when retrieving FPU IR + - [mips*] syscall: Fix AUDIT value for O32 processes on MIPS64 + - [mips*] scall64-o32: Fix indirect syscall detection + - [mips,powerpc] bfa: Fix undefined bit shift on big-endian architectures + with 32-bit DMA address + - ACPI / hotplug: Check scan handlers in acpi_scan_hot_remove() + (regression in 3.14) + - ACPI: Run fixed event device notifications in process context + (regression in 3.15) + - ACPI / scan: Allow ACPI drivers to bind to PNP device objects + (regression in 3.16) + - ACPI / EC: Add support to disallow QR_EC to be issued when SCI_EVT isn't + set (regression in 3.14.13, 3.16) + - ACPI / EC: Add support to disallow QR_EC to be issued before completing + previous QR_EC (regression in 3.14.13, 3.16) + - ACPI / scan: not cache _SUN value in struct acpi_device_pnp + (regression in 3.14) + - ACPI / video: Add a disable_native_backlight quirk + - ACPI / video: Disable native_backlight on HP ENVY 15 Notebook PC + - ring-buffer: Always reset iterator to reader page + - ring-buffer: Up rb_iter_peek() loop count to 3 + - vfs: get rid of propagate_umount() mistakenly treating slaves as busy. + (regression in 3.15) + - Bluetooth: Fix tracking local SSP authentication requirement + - Bluetooth: Avoid use of session socket after the session gets freed + - vfs: __generic_file_write_iter(): fix handling of sync error after DIO + (regression in 3.16) + - rbd: rework rbd_request_fn() (regression in 3.15) + - vfs: fix copy_tree() regression (regression in 3.14) + - md/raid1,raid10: always abort recover on write error. + - md/raid5: avoid livelock caused by non-aligned writes. + (regression in 3.16) + - md/raid6: avoid data corruption during recovery of double-degraded RAID6 + - md/raid10: fix memory leak when reshaping a RAID10. + - xfs: ensure verifiers are attached to recovered buffers + - xfs: quotacheck leaves dquot buffers without verifiers + - xfs: don't dirty buffers beyond EOF + - xfs: don't zero partial page cache pages during O_DIRECT writes + - xfs: don't zero partial page cache pages during O_DIRECT reads + - libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly + - libceph: gracefully handle large reply messages from the mon + - libceph: do not hard code max auth ticket len (CVE-2014-6416, + CVE-2014-6417, CVE-2014-6418) + - CIFS: Fix async reading on reconnects + - CIFS: Possible null ptr deref in SMB2_tcon + - CIFS: Fix wrong directory attributes after rename + - mtd/ftl: fix the double free of the buffers allocated in build_maps() + - mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc() + - dm table: propagate QUEUE_FLAG_NO_SG_MERGE (regression in 3.16) + - KEYS: Fix use-after-free in assoc_array_gc() + - KEYS: Fix termination condition in assoc array garbage collection + (CVE-2014-3631) + + [ Ben Hutchings ] + * sfc: Adding PCI ID for Solarflare 7000 series 40G network adapter. + * sfc: Add 40G link capability decoding + * Bump ABI to 2 (Closes: #761874) + * ata: Enable SATA_ZPODD + * tracing: Enable TRACER_SNAPSHOT + * Add memfd_create() and shared memory sealing (Closes: #760702): + - mm: allow drivers to prevent new writable mappings + - shm: add sealing API + - shm: add memfd_create() syscall + - shm: wait for pins to be released when sealing + - mm: Add memfd_create() system call + - [arm*,m68k,mips*,powerpc*,s390*,sparc*] Wire up memfd_create() + * udeb: Add ccm, ctr to crypto-modules (Closes: #761902) + * [armhf] udeb: Add ehci-platform, ohci-platform and phy-sun4i-usb to + usb-modules (Closes: #761591) + + [ Ian Campbell ] + * [armhf] Enable support for Exynos5 systems. (Closes: #759291) + * [arm64] Enable crypto accelerator modules + * [arm64] Add cdrom-core-modules udeb + + [ Aurelien Jarno ] + * [powerpc/powerpc64,ppc64el] Backport more KVM patches from 3.17. Enable + KVM_BOOK3S_64, KVM_BOOK3S_64_HV, KVM_BOOK3S_64_PR and KVM_XICS. (Closes: + #761656). + + -- Ben Hutchings Thu, 18 Sep 2014 03:32:47 +0100 + +linux (3.16.2-3) unstable; urgency=medium + + [ Ben Hutchings ] + * [armhf] udeb: Remove efi-modules, as EFI is not yet supported on ARM! + * [arm64] ata: Enable PHY_XYGENE, AHCI_XGENE as modules + - udeb: Add ahci_xgene to sata-modules (fixes FTBFS) + * [arm64] rtc: Enable RTC_DRV_XGENE as module + * mfd,mmc,memstick: Enable MFD_RTSX_USB, MMC_REALTEK_USB, + MEMSTICK_REALTEK_USB as modules (Closes: #761099) + * [mips64,mips64el] Properly add the 5kc-malta flavour (should fix FTBFS) + * batman-adv: Enable BATMAN_ADV_MCAST + * can: Enable CAN_GS_USB as module + * bluetooth: Enable BT_6LOWPAN + * ubi: Enable MTD_UBI_BLOCK + * md: Enable DM_ERA as module + * qlcnic: Enable QLCNIC_VXLAN + * net/wireless: Enable RSI_91X, RSI_USB as modules + - udeb: Add rsi_usb to nic-wireless-modules + * i2c: Enable I2C_ROBOTFUZZ_OSIF as module + * mfd,gpio,i2c,iio: Enable MFD_VIPERBOARD, GPIO_VIPERBOARD, I2C_VIPERBOARD, + VIPERBOARD_ADC as modules + * media/usb/gspca: Enable USB_GSPCA_DTCS033 as module + * media/pci/cx23885: Enable MEDIA_ALTERA_CI as module + * sound/usb: Enable SND_USB_HIFACE, SND_BCD2000 as modules + * usb/misc: Enable USB_EHSET_TEST_FIXTURE as module + * usb/gadget: Enable USB_NET2280 as module + * leds: Enable LEDS_TRIGGER_CPU as built-in and LEDS_TRIGGER_ONESHOT, + LEDS_TRIGGER_GPIO, LEDS_TRIGGER_TRANSIENT, LEDS_TRIGGER_CAMERA as modules + * uio: Enable UIO_MF624 as module + * iio: Enable HID_SENSOR_PROX, HID_SENSOR_DEVICE_ROTATION, HID_SENSOR_PRESS + as modules + * ecryptfs: Enable ECRYPT_FS_MESSAGING + * ceph: Enable CEPH_FSCACHE + * crypto: Enable CRYPTO_LZ4, CRYPTO_LZ4HC as modules + * [x86] mfd,gpio,i2c,watchdog: Enable KEMPLD_MFD, GPIO_KEMPLD, I2C_KEMPLD, + KEMPLD_WDT as modules + * [x86] staging: Enable R8723AU as module + * [x86] staging: Enable WIMAX_GDM72XX as modules + - gdmwm: Enable WIMAX_GDM72XX_USB, WIMAX_GDM72XX_USB_PM + * [x86] staging/media: Enable DVB_AS102, USB_MSI3101, MEDIA_TUNER_MSI001, + SOLO6X10 as modules + * [x86] dvb-usb-rtl28xxu: Enable DVB_RTL2832_SDR + * [x86] platform: Enable ALIENWARE_WMI, DELL_SMO8800, IBM_RTL, + SAMSUNG_Q10, INTEL_RST, INTEL_SMARTCONNECT (Closes: #749273), PVPANIC + as modules + * [x86] sony-laptop: Enable SONYPI_COMPAT + * [x86,ia64] firmware: Enable DMI_SYSFS + * [x86] Disable USB_SN9C102; this driver is deprecated in favour of the + gspca drivers + * [i386] usb/gadget: Enable USB_AMD5536UDC as module + * [i386] comedi: Enable COMEDI_AMPLC_DIO200_ISA, COMEDI_AMPLC_PC236_ISA, + COMEDI_AMPLC_PC263_ISA, COMEDI_DAS08_ISA, COMEDI_NI_LABPC_ISA as modules + * [i386] speakup: Enable SPEAKUP_SYNTH_DECPC as module + * [!x86] staging: Enable R8712U, R8188EU as modules (Closes: #742055, #760859) + * i2o: Disable I2O_EXT_ADAPTEC on 64-bit, as it assumes 32-bit virtual + addresses + * SCSI: aic94xx: Remove broken fallback for missing 'Ctrl-A' user settings + * udeb: Add ath6kl_sdio, libertas_cs, libertas_sdio, mwifiex_sdio, + r8192u_usb, r8723au, rtl8188eu, rtl818x_pci, rtl8723be, rtl8821ae, + spectrum_cs to nic-wireless-modules + * builddeb: put the dbg files into the correct directory + * [ppc64el] deb-pkg: Add support for powerpc little endian + * [armhf] deb-pkg: Add automatic support for armhf architecture + * debian/rules.real: Never make kernel-wedge errors non-fatal, as in + practice this meant we didn't see them until they appeared in unstable + * udeb: Fix typo in dependencies of speakup-modules (fixes FTBFS on + mips64el due to interaction with another bug in kernel-wedge) + * libceph: Apply critical fixes: + - set last_piece in ceph_msg_data_pages_cursor_init() correctly + - gracefully handle large reply messages from the mon + - add process_one_ticket() helper + - do not hard code max auth ticket len + + [ Ian Campbell ] + * [armel/orion5x] udeb: Include mvmdio in nic-modules udeb. + * [arm64] Backport X-GENE Ethernet driver from v3.17-rcs + * [arm64] Including phy-xgene in sata-modules udeb since it is needed by + ahci_xgene. + + [ Aurelien Jarno ] + * [mips64el] Drop loongson-2e and loongson-2f flavour as the minimum + supported ISA will be at least MIPS64. + + -- Ben Hutchings Sat, 13 Sep 2014 03:49:53 +0100 + +linux-tools (3.16-2) unstable; urgency=medium + + * linux-kbuild: Change the type headers used for devicetable-offsets.c + to avoid depending on UAPI headers or . This really + closes: #754213. It also fixes modpost handling of input device IDs + when host and target have differing word size. + + -- Ben Hutchings Tue, 09 Sep 2014 13:21:05 +0100 + +linux-tools (3.16-1) unstable; urgency=medium + + * New upstream release + + [ Mauricio Faria de Oliveira ] + * [ppc64el] Build linux-tools binary package (Closes: #754213) + + [ Ben Hutchings ] + * linux-kbuild: Build and install recordmcount and recordmcount.pl, + needed for kernels with DYNAMIC_FTRACE enabled + * linux-kbuild: Fix recordmcount dependency for OOT modules + + -- Ben Hutchings Mon, 08 Sep 2014 18:45:06 +0100 + +linux (3.16.2-2) unstable; urgency=medium + + [ Ben Hutchings ] + * [armel,mips*] udeb: Remove lzo-modules, as LZO_COMPRESS is now built-in + (fixes FTBFS) + + -- Ben Hutchings Mon, 08 Sep 2014 18:39:25 +0100 + +linux (3.16.2-1) unstable; urgency=medium + + * New upstream stable update (closes: #748615): + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.1 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.16.2 + - isofs: Fix unbounded recursion when processing relocated directories + (CVE-2014-5471, CVE-2014-5472) + - kvm: iommu: fix the third parameter of kvm_iommu_put_pages + (CVE-2014-3601) + + [ Ben Hutchings ] + * HID: Enable HID_RMI as module (Closes: #754519) + * Set ABI to 1 + * [armhf,arm64] udeb: Add efi-modules + * ftrace: Enable more tracers (Closes: #563847, #758469): + - Enable FUNCTION_TRACER and DYNAMIC_FTRACE + - Enable FUNCTION_GRAPH_TRACER, FTRACE_SYSCALLS and STACK_TRACER + (except on armel/kirkwood) + * [powerpc] drm: Disable DRM_RADEON_UMS, as radeon X driver now requires KMS + * aio: fix reqs_available handling (regression in 3.14.10) + * mm: Enable FRONTSWAP, ZSWAP (except armel/{ixp4xx,orion5x}) + (Closes: #725703) + * [x86] mgag200: Enable auto-loading, but require mode-setting to be + explicitly enabled (as xserver-xorg-video-modesetting does) + * [armel] Remove obsolete mv78xx0 flavour + * virtio-scsi: Implement change_queue_depth for virtscsi targets + (Closes: #760324) + * sound/firewire: Enable SND_DICE, SND_FIREWORKS, SND_BEBOB as modules + (Closes: #756842) + * hid-sony: Enable SONY_FF (Closes: #760684) + * mtd: Enable MTD_SPI_NOR as module, since M25P80 now depends on it + * [m68k] Enable CGROUPS, required by systemd + * [armhf] Re-enable SPI_IMX as module + * [i386] comedi: Enable COMEDI_DAC02 as module, replacing COMEDI_POC + * sound: Disable SND_CS5535AUDIO on all but i386 and mips*/loongson-2f + * [mips*/loongson-2f] video: Re-add and enable sm7xxfb driver, removed + upstream in 3.15 + * mnt: Fix flag handling on remount (CVE-2014-5206, CVE-2014-5207) + - mnt: Only change user settable mount flags in remount + - mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into + do_remount + - mnt: Correct permission checks in do_remount + - mnt: Change the default remount atime from relatime to the existing value + - mnt: Add tests for unprivileged remount cases that have found to be + faulty + * [armel/kirkwood] mm: Enable HIGHMEM (Closes: #760786) + * aufs: Update to aufs3.16-20140908: + - bugfix, missing mnt_want_write in moo + - new ioctl BRINFO + - bugfix, restore the lost unlock in an error path + - allow deleting a branch who has an opened dir + - bugfix, stop passing an error code to dput() + - possible bugfix, ptr in an array + - implement fhsm (not enabled) + - si_files has all opened files + - bugfix, use id instead of index to identify a branch + - new move-down flag AUFS_MVDOWN_FHSM_LOWER + - branch attr 'fhsm' is independent from rw/ro attrib + - support for a branch ro+fhsm + - fhsm notify after fixing inode attrib + - bugfix, hfile test in br_del_file() + - bugfix, pinning in mvdown + - bugfix, instantiate-revalidate race + - possible bugfix, temporary d_inode + - fhsm and br_del, allow the root dir only + - bugfix, get a removed dentry from an inode + * MAINTAINERS: Change aufs entry to say it's not upstream + + [ Vagrant Cascadian ] + * [armmp] Enable IMX_IPUV3_CORE (closes: #756810). + + [ Aurelien Jarno ] + * [mips*] Fix FP emulation for unaligned accesses. + * Update Spanish debconf template translations (Matias A. Bellone) + (Closes: #758591). + * [mips*/loongson3] Backport Loongson 3B support from 3.17. + * [powerpc,ppc64el] Backport KVM little endian support from 3.17. + + [ maximilian attems ] + * Redisable UAS due to trouble with Seagate expansion drives + (closes: #755995, #759662), (reopen: #749014). + + [ Ian Campbell ] + * [armhf] Remove incomplete list of hardware from image description. See + https://wiki.debian.org/DebianKernel/ARMMP for details. + * [armel/kirkwood] Enable CONFIG_MTD_SPI_NOR for flash access. + + * [ppc64el] debian/patches/debian/ppc64el-disable-zImage.patch: remove patch. + The 'powerpc/boot: 64bit little endian wrapper' patch-set is in linux 3.16, + thus the default make/image-y target is OK now. + + -- Ben Hutchings Mon, 08 Sep 2014 03:17:11 +0100 + +linux (3.16-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.16 + + [ Aurelien Jarno ] + * [x86] vfio: Enable VFIO_PCI_VGA. + * udeb: rename crc32c.ko into crc32c_generic.ko in crc-modules. + * [mips*] Fix FP emulation. + * [mips*/loongson3] Enable TRANSPARENT_HUGEPAGE. + + [ Bastian Blank ] + * [x86] Enable Xen PVH support. + * Enable more Nftables modules. + * [x86] Enable EARLY_PRINTK_EFI. + * Enable stack protector on all supported architectures. (closes: #756898) + * [powerpc64, s390x] Enable PCI hotplug. + * Enable RTL8723BE. + * Enable OPROFILE. + * [ppc64] Enable 64KiB pages. + + [ Ben Hutchings ] + * udeb: Add new sound drivers to sound-modules (thanks to Samuel Thibault) + (Closes: #756998) + * [armhf] touchscreen: Enable TOUCHSCREEN_SUN4I as module (Closes: #757086) + * [!alpha,m68k,x86] Disable USELIB, only needed by libc5 + * [arm*,ia64,ppc64el,s390*,sh4] Disable SYSFS_SYSCALL, only needed for + SVR4 compatibility + * [armel] Disable BINFMT_AOUT + * [armel] Re-enable ixp4xx flavour + * [armel] Change configuration to reduce kernel image size + - [/kirkwood] Change IPV6 to module + - [/ixp4xx,orion5x] Change IOSCHED_DEADLINE to module + - [/ixp4xx,orion5x] Disable SECURITY (i.e. Linux Security Modules, + including SELinux) + + -- Ben Hutchings Sat, 09 Aug 2014 21:58:12 +0100 + +linux-tools (3.16~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * genorig: Include new directory for usbip UAPI header + * debian/control: Update Build-Depends for usbip switching from + libsysfs to libudev + * perf: Build with V=1 as V=2 no longer works + * perf: Change build command to avoid a rebuild during 'make install' + * linux-tools: Install traceevent plugins in + /usr/lib/traceevent_/plugins (Closes: #756429) + * linux-kbuild: Install scripts/Makefile.extrawarn + + -- Ben Hutchings Tue, 29 Jul 2014 21:11:10 +0100 + +linux (3.16~rc6-1~exp1) experimental; urgency=medium + + * New upstream rc + + [ Aurelien Jarno ] + * [mipsel/loongson3] Enable SND_HDA_INTEL. + * [mips/4kc-malta, mips/5kc-malta] Cleanup configuration file. + * [mips/sb1-bcm91250a] Cleanup configuration file. + * [mips/r4k-ip22] Cleanup configuration file. + * [mips/r5k-ip32] Cleanup configuration file. + * [mips64,mips64el] Add a 5kc-malta flavour. + + [ Ben Hutchings ] + * [x86] wireless: Enable R8192EE as module (Closes: #755310) + * net: Re-enable CGROUP_NET_PRIO as builtin + + -- maximilian attems Mon, 21 Jul 2014 21:51:45 +0200 + +linux (3.16~rc5-1~exp1) experimental; urgency=medium + + [ maximilian attems ] + * New upstream rc + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20140714: + - tiny, no msg in spinlock regeion + - minor bugfix, correct error value in link(2) + - O_TMPFILE support + - bugfix, handling an error in opening a FIFO + - propagate aufs file references to new vmas created by remap_file_pages() + - begin supporting fallocate(2) + - linux-3.16, convert iovec into iov_iter + - allow an unprivileged mount under user_ns (enabled by module parameter) + - simply handing attribute string + - add mount option for copy-up on open + - add mount option for move-up on open + - add dirperm1 mount option + - mvdown, return a subset of statfs(2) optionally + - mvdown, tell about the branch is at the bottom + + -- maximilian attems Tue, 15 Jul 2014 22:57:31 +0200 + +linux (3.15.5-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.4 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.5 + + -- maximilian attems Thu, 10 Jul 2014 16:02:29 +0200 + +linux (3.15.3-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.2 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.3 + + [ Yunqiang Su ] + * [mips,mipsel] Move common MIPS kernel config files to kernelarch-mips. + * [mips,mipsel] Clean mipsel installer by using symlinks to the mips + versions. + * [mips,mipsel] Add mips64 and mips64el support (Closes: #749688). + + -- maximilian attems Wed, 02 Jul 2014 20:30:41 +0200 + +linux (3.15.1-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.15 + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.15.1 + + [ maximilian attems ] + * Update policy version to 3.9.5 without changes + + [ Ian Campbell ] + * [armhf] Enable HDMI on imx6qdl-wandboard, SolidRun HummingBoard and + Cubox -i. (Closes: #750406) + + [ Ben Hutchings ] + * [powerpc] Build-depend on gcc-4.8 (>= 4.8.2-1) to ensure that + JUMP_LABEL works + + -- maximilian attems Fri, 20 Jun 2014 23:13:13 +0200 + +linux (3.15~rc8-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ian Campbell ] + * [armhf] Enable Broadcom IEEE802.11n embedded FullMAC WLAN driver + (Closes: #734430) + * [armhf] Backport and enable sunxi MMC driver (Closes: #749484) + + -- maximilian attems Tue, 03 Jun 2014 11:43:26 +0200 + +linux (3.15~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ maximilian attems ] + * Enable USB_UAS in topconfig (closes: #749014) + + [ Ian Campbell ] + * [armhf] Enable SERIAL_OF_PLATFORM. + * [armhf] Enable DRM drivers DRM_IMX_* for IMX platform (Closes: #748406) + * [armhf] Enable SND_SOC_IMX_SPDIF (Closes: #748890) + + -- maximilian attems Tue, 27 May 2014 10:55:32 +0200 + +linux (3.15~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20140421 + * [rt] Disable until it is updated for 3.15 or later + + [ Aurelien Jarno ] + * [mipsel] Add a loongson-3 flavour to support Loongson 3A/3B machines. + * [mips/mipsel] Remove the sb1a-bcm91480b flavour. + + [ Ian Campbell ] + * [armel/orion5x] Disable BPF_JIT, MEMCG, USER_NS to reduce kernel + size. + * [armel/kirkwood] Enable PCI_MVEBU for PCI support when booted via Device + Tree. + + -- maximilian attems Fri, 16 May 2014 14:33:57 +0200 + +linux (3.14.15-2) unstable; urgency=medium + + [ Aurelien Jarno ] + * [mips*/4kc-malta] Remove ABI reference as previous kernels were not + really usable, and the fix changes the ABI. + + -- Ben Hutchings Sat, 09 Aug 2014 01:09:38 +0100 + +linux (3.14.15-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.14 + - Bluetooth: Ignore H5 non-link packets in non-active state + - fuse: timeout comparison fix + - tracing: instance_rmdir() leaks ftrace_event_file->filter + (regression in 3.11) + - xen/balloon: set ballooned out pages as invalid in p2m + (regression in 3.12) + - quota: missing lock in dqcache_shrink_scan() (regression in 3.12) + - shmem: fix faulting into a hole, not taking i_mutex (CVE-2014-4171) + - shmem: fix splicing from a hole while it's punched (CVE-2014-4171) + - e1000e: Fix SHRA register access for 82579 (regression in 3.12) + - ip_tunnel: fix ip_tunnel_lookup + - net: sctp: check proc_dointvec result in proc_sctp_do_auth + - 8021q: fix a potential memory leak + - net: fix UDP tunnel GSO of frag_list GRO packets + - ipv4: fix dst race in sk_dst_get() + - ipv4: irq safe sk_dst_[re]set() and ipv4_sk_update_pmtu() fix + - bnx2x: fix possible panic under memory stress + - tcp: Fix divide by zero when pushing during tcp-repair + - ipv4: icmp: Fix pMTU handling for rare case + - net: Fix NETDEV_CHANGE notifier usage causing spurious arp flush + (regression in 3.11) + - igmp: fix the problem when mc leave group + - appletalk: Fix socket referencing in skb + - netlink: Fix handling of error from netlink_dump(). + - tipc: clear 'next'-pointer of message fragments before reassembly + (regression in 3.13) + - net: sctp: fix information leaks in ulpevent layer + - bonding: fix ad_select module param check (regression in 3.14) + - net-gre-gro: Fix a bug that breaks the forwarding path + (regression in 3.14) + - perf/x86/intel: ignore CondChgd bit to avoid false NMI handling + - mwifiex: fix Tx timeout issue + - [x86] tsc: Fix cpufreq lockup (regression in 3.14) + - dm thin metadata: do not allow the data block size to change + - dm cache metadata: do not allow the data block size to change + - locking/mutex: Disable optimistic spinning on some architectures + - sched: Fix possible divide by zero in avg_atom() calculation + - aio: protect reqs_available updates from changes in interrupt handlers + (regression in 3.14.10) + - Don't trigger congestion wait on dirty-but-not-writeout pages + (regression in 3.11) + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.15 + - nfs: only show Posix ACLs in listxattr if actually present + (regression in 3.14) + - block: don't assume last put of shared tags is for the host + - libata: support the ata host which implements a queue depth less than 32 + (regression in 3.14.4) + - libata: introduce ata_host->n_tags to avoid oops on SAS controllers + - blkcg: don't call into policy draining if root_blkg is already gone + - coredump: fix the setting of PF_DUMPCORE + - [hppa] Remove SA_RESTORER define + - hwmon: (smsc47m192) Fix temperature limit and vrm write operations + - fs: umount on symlink leaks mnt count (CVE-2014-5045) + - [x86] x86_32, entry: Store badsys error code in %eax + (regression in 3.14.10) + - drm/radeon: fix irq ring buffer overflow handling (regression in 3.14) + - mm: hugetlb: fix copy_hugetlb_page_range() (regression in 3.14.12) + - [x86] efi: Include a .bss section within the PE/COFF headers + - nl80211: move set_qos_map command into split state (regression in 3.14) + - platform_get_irq: Revert to platform_get_resource if of_irq_get fails + (regression in 3.14.6) + + [ Aurelien Jarno ] + * Update German debconf template translations (Holger Wansing) (Closes: + #756049). + * Update French debconf template translations (David Prévot) (Closes: + #756134). + * Rewrite postinst to not require File::stat perl module (Closes: #756207). + * [mips*] Avoid smp_processor_id() in preemptible code. + * [mips*/octeon] Fix /proc/cpuinfo issues. + * [mips,mipsel/4kc-malta] Fix bug which can cause incorrect system call + restarts (fix hang on boot). + * [mips*] Fix hugepage support on machines with R4K like TLB. + * [mips*] Prevent user from setting FCSR cause bits and cause possible + kernel oops. + * Update Japanese debconf template translations (Victory). + + [ Ben Hutchings ] + * [amd64] Reject x32 executables if x32 ABI not supported + * [amd64] Make x32 syscall support conditional on a kernel parameter + * [amd64] Enable X86_X32 (Closes: #708070) and X86_X32_DISABLED. + Use the kernel parameter "syscall.x32=y" to enable support for x32. + * [s390,s390x] 3215: fix hanging console issue (Closes: #747922) + * [armhf] Enable BRCMFMAC, BRCMFMAC_SDIO as modules (Closes: #734430) + * net: sctp: inherit auth_capable on INIT collisions (CVE-2014-5077) + + -- Ben Hutchings Thu, 07 Aug 2014 16:47:21 +0100 + +linux (3.14.13-2) unstable; urgency=medium + + [ Aurelien Jarno ] + * [mips64,mips64el] Really enable mips64 and mips64el architectures. + * [mips64,mips64el] Build udebs for 5kc-malta flavour. + * [mipsel,mips64el/loongson-3] Disable not built modules in nic-modules, + scsi-common-modules, scsi-extra-modules, scsi-modules (fixes FTBFS). + * Add scsi_transport_sas and scsi_transport_spi to scsi-core-modules udeb + as optional so that these modules do not end up in two different udebs + as dependencies. Remove them from the i386, ia64, powerpc and sparc + definition. + * [mipsel,mips64el/loongson-2e,2f] Enable CONFIG_RTC_DRV_CMOS as built-in. + * [mips*] Add few new udebs and use standard udebs configuration when + possible. + * [s390,s390x] ptrace: fix PSW mask check (CVE-2014-3534). + * [mipsel,mips64el/loongson-3] Enable PREEMPT instead of PREEMPT_VOLUNTARY + as it workarounds SMP issues. + + -- Aurelien Jarno Thu, 24 Jul 2014 21:05:08 +0200 + +linux (3.14.13-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.13 + - iio: ti_am335x_adc: Fix: Use same step id at FIFOs both ends + (regression in 3.11) + - [hppa] Do not hardcode maximum userspace stack size (regression in 3.14) + - workqueue: fix dev_set_uevent_suppress() imbalance (regression in 3.10) + - workqueue: zero cpumask of wq_numa_possible_cpumask on init + (regression in 3.10) + - i8k: Fix non-SMP operation (regression in 3.14) + - Revert "ACPI / AC: Remove AC's proc directory." (regression in 3.13) + - ACPI / resources: only reject zero length resources based at address zero + (regression in 3.14) + - ACPI / EC: Avoid race condition related to advance_transaction() + - ACPI / EC: Fix race condition in ec_transaction_completed() + - [x86] crypto: sha512_ssse3 - fix byte count to bit count conversion + - [arm64] implement TASK_SIZE_OF + - phy: core: Fix error path in phy_create() + - dm io: fix a race condition in the wake up code for sync_io + - [x86] intel_pstate: Fix setting VID (regression in 3.14.6) + - PCI: Fix unaligned access in AF transaction pending test + (regression in 3.14) + - ext4: fix unjournalled bg descriptor while initializing inode bitmap + - ext4: fix a potential deadlock in __ext4_es_shrink() + - drm/radeon: stop poisoning the GART TLB + - [x86] drm/i915: Don't clobber the GTT when it's within stolen memory + + [ Ian Campbell ] + * [armel] Remove drivers/net/phy configs which are redundant with toplevel. + * [armhf] Add MMC and NIC modules for BeagleBone Black to udebs. + (Closes: #754491) + * [arm64] Add xfs-modules udeb and add xen-netfront to nic-modules udeb. + * aufs: Fix build on arm64. + + [ Aurelien Jarno ] + * [mips,mipsel] Add a debconf note to warn users that they have to + configure the system bootloader to load initramfs. + * Update Polish debconf template translations (Łukasz Dulny). + * Update Czech debconf template translations (Michal Simunek) (Closes: + #755060). + * Update Russian debconf template translations (Yuri Kozlov) (Closes: + #755085). + * Update Portuguese debconf template translations (Américo Monteiro) + (Closes: #755100). + * Update Swedish debconf template translations (Martin Bagge) (Closes: + #755145). + * Update Slovak debconf template translation (Slavko) (Closes: #755152). + * Update Turkish debconf template translation (Mert Dirik) (Closes: + #755223). + * Update Danish debconf template translation (Joe Dalton) (Closes: + #755400). + * [mips,mipsel] Cleanup configuration files. + * [mips,mipsel] Move common MIPS kernel config files to kernelarch-mips. + * [mips,mipsel] Clean mipsel installer by using symlinks to the mips + versions. + * [mipsel] Backport Loongson 3A/3B support from 3.15 and add the + corresponding flavour. + * [mips,mipsel] Remove the sb1a-bcm91480b flavour. + * [mips,mipsel] Add mips64 and mips64el support (Closes: #749688). + * [mips/octeon] Backport from upstream PCIe2 support and interface + mode detection for Octeon. + * [mips/sb1-91250a] Backport from upstream additional build flags + to fix excessive kernel warnings. + * [mips/malta] Backport from upstream power management support for + Malta. + * [mipsel/loongson3] Add support for Loongson 3 LS3A RS780E 1-way + boards. + + [ Ben Hutchings ] + * net/l2tp: don't fall back on UDP [get|set]sockopt (CVE-2014-4943) + * Bump ABI to 2 (Closes: #754902) + * [powerpc/powerpc64] Re-enable JUMP_LABEL + * [powerpc/powerpc64,ppc64] Enable PPC_TRANSACTIONAL_MEM + * Enable DYNAMIC_DEBUG (except for armel/orion5x) (Closes: #694884) + * [rt] Update to 3.14.12-rt9 (no functional changes) + * udeb: Add sdhci-acpi to mmc-modules (Closes: #747284) + + -- Ben Hutchings Mon, 21 Jul 2014 14:02:14 +0100 + +linux (3.14.12-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.11 + - iscsi-target: Avoid rejecting incorrect ITT for Data-Out + - iscsi-target: Explicily clear login response PDU in exception path + (regression in 3.10) + - iscsi-target: fix iscsit_del_np deadlock on unload (regression in 3.13) + - Input: synaptics - fix resolution for manually provided min/max + (regression in 3.14) + - [mips] MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region + - UBIFS: fix an mmap and fsync race condition + - UBIFS: Remove incorrect assertion in shrink_tnc() + - IB/ipath: Translate legacy diagpkt into newer extended diagpkt + - IB/srp: Fix a sporadic crash triggered by cable pulling + - IB/umad: Fix error handling + - IB/umad: Fix use-after-free on close + - nfsd4: fix FREE_STATEID lockowner leak (regression in 3.14.6) + - nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer + - NFS: Don't declare inode uptodate unless all attributes were checked + - nfs: Fix cache_validity check in nfs_write_pageuptodate() + - [powerpc] mm: Check paca psize is up to date for huge mappings + - [powerpc] perf: Ensure all EBB register state is cleared on fork() + - xfs: xfs_readsb needs to check for magic numbers (regression in 3.14) + - reiserfs: call truncate_setsize under tailpack mutex + - ipvs: Fix panic due to non-linear skb + - tracing: Fix syscall_*regfunc() vs copy_process() race + - ALSA: usb-audio: Fix races at disconnection and PCM closing + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.12 + - [powerpc] ibmvscsi: Abort init sequence during error recovery + - [powerpc] ibmvscsi: Add memory barriers for send / receive + - virtio-scsi: avoid cancelling uninitialized work items + - scsi_error: fix invalid setting of host byte + - virtio-scsi: fix various bad behavior on aborted requests + - xhci: Use correct SLOT ID when handling a reset device command + (regression in 3.13) + - usb: chipidea: udc: delete td from req's td list at ep_dequeue + - mtd: eLBC NAND: fix subpage write support (regression in 3.10) + - mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in + erased-page + - [x86] drm/i915: Avoid div-by-zero when pixel_multiplier is zero + (regression in 3.13) + - [x86] drm/i915: set backlight duty cycle after backlight enable for gen4 + (regression in 3.14) + - Bluetooth: Fix SSP acceptor just-works confirmation without MITM + - Bluetooth: Fix check for connection encryption + - rbd: use reference counts for image requests + - rbd: handle parent_overlap on writes correctly + - mac80211: fix a memory leak on sta rate selection table + (regression in 3.10) + - hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned + entry + - [arm64] mm: Make icache synchronisation logic huge page aware + - [arm64] Bug fix in stack alignment exception + - fs/cifs: fix regression in cifs_create_mf_symlink() (regression in 3.14) + - blkcg: fix use-after-free in __blkg_release_rcu() by making + blkcg_gq refcnt an atomic_t + - ext4: Fix buffer double free in ext4_alloc_branch() + - ext4: Fix hole punching for files with indirect blocks + - [x86] KVM: preserve the high 32-bits of the PAT register + - [x86] kvm: fix wrong address when writing Hyper-V tsc page + - nfsd: fix rare symlink decoding bug + - tracing: Remove ftrace_stop/start() from reading the trace file + - md: flush writes before starting a recovery. + - mlx4_core: Fix incorrect FLAGS1 bitmap test in mlx4_QUERY_FUNC_CAP + (regression in 3.14) + - netfilter: nf_nat: fix oops on netns removal + - brcmfmac: Fix brcmf_chip_ai_coredisable not applying reset bits to + BCMA_IOCTL (regression in 3.14) + - mmc: rtsx: add R1-no-CRC mmc command type handle (regression in 3.13) + - aio: block io_destroy() until all context requests are completed + (regression in 3.11) + - audit: remove superfluous new- prefix in AUDIT_LOGIN messages + (regression in 3.14) + - mm/numa: Remove BUG_ON() in __handle_mm_fault() (regression in 3.13) + - slab: fix oops when reading /proc/slab_allocators + - sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue + - mm: fix crashes from mbind() merging vmas + + [ Ben Hutchings ] + * [rt] Update to 3.14.10-rt7: + - rtmutex: Resolve conflicts with changes in 3.14.10 + - sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq() + - workqueue: Prevent deadlock/stall on RT + * [rt] random: Restore interrupt randomness dropped in 3.14.10-rt6 + * [s390,s390x] Ignore ABI change in lowcore structure (fixes FTBFS) + * [m68k] block: Change IOSCHED_CFQ to built-in and make it the default + I/O scheduler, consistent with other architectures + + -- Ben Hutchings Fri, 11 Jul 2014 17:56:20 +0100 + +linux (3.14.10-1) unstable; urgency=high + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.10 + - [s390] af_iucv: wrong mapping of sent and confirmed skbs + - Staging: rtl8188eu: overflow in update_sta_support_rate() + - USB: option: fix runtime PM handling + - hugetlb: restrict hugepage_migration_support() to x86_64 + - kthread: fix return value of kthread_create() upon SIGKILL. + - mm/memory-failure.c-failure: send right signal code to correct thread + - mm/memory-failure.c: don't let collect_procs() skip over processes for + MF_ACTION_REQUIRED + - ptrace: fix fork event messages across pid namespaces + - idr: fix overflow bug during maximum ID calculation at maximum height + - [s390] time: cast tv_nsec to u64 prior to shift in update_vsyscall + (regression in 3.13) + - [s390] lowcore: reserve 96 bytes for IRB in lowcore + - ext4: fix data integrity sync in ordered mode + - ext4: fix zeroing of page during writeback + - ext4: fix wrong assert in ext4_mb_normalize_request() + - USB: usb_wwan: fix race between write and resume + - USB: usb_wwan: fix write and suspend race + - USB: usb_wwan: fix urb leak at shutdown + - USB: sierra: fix use after free at suspend/resume + - USB: sierra: fix remote wakeup + - USB: serial: fix potential runtime pm imbalance at device remove + - media: stk1160: Avoid stack-allocated buffer for control URBs + - rtmutex: Detect changes in the pi lock chain + - rtmutex: Handle deadlock detection smarter + - rtmutex: Plug slow unlock race + - media: uvcvideo: Fix clock param realtime setting + - media: saa7134: fix regression with tvtime (regression in 3.14) + - Bluetooth: Fix L2CAP deadlock + - Target/iser: Wait for proper cleanup before unloading + - target: Set CMD_T_ACTIVE bit for Task Management Requests + - target: Use complete_all for se_cmd->t_transport_stop_comp + - iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory + leak + - target: Explicitly clear ramdisk_mcp backend pages + - [x86] x86-32, espfix: Remove filter for espfix32 due to race + - aio: fix aio request leak when events are reaped by userspace + - aio: fix kernel memory disclosure in io_getevents() introduced in v3.10 + (CVE-2014-0206) + - CIFS: Fix memory leaks in SMB2_open + - Btrfs: fix double free in find_lock_delalloc_range + - Btrfs: make sure there are not any read requests before stopping workers + - Btrfs: mark mapping with error flag to report errors to userspace + - Btrfs: set right total device count for seeding support + - fs: btrfs: volumes.c: Fix for possible null pointer dereference + - Btrfs: don't check nodes for extent items + - Btrfs: fix scrub_print_warning to handle skinny metadata extents + - btrfs: fix use of uninit "ret" in end_extent_writepage() + - btrfs: allocate raid type kobjects dynamically + - lz4: fix another possible overrun + - epoll: fix use-after-free in eventpoll_release_file + - builddeb: use $OBJCOPY variable instead of objcopy (regression in 3.12) + - [i386] efi-pstore: Fix an overflow on 32-bit builds + + [ Ben Hutchings ] + * [amd64] ptrace,x86: force IRET path after a ptrace_stop() (CVE-2014-4699) + * shmem: fix faulting into a hole while it's punched (CVE-2014-4171) + + -- Ben Hutchings Mon, 07 Jul 2014 09:54:10 +0100 + +linux (3.14.9-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.8 + - Target/iscsi,iser: Avoid accepting transport connections during stop + stage + - iser-target: Fix multi network portal shutdown regression + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.9 + - target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd + (regression in 3.14.6) + - iscsi-target: Reject mutual authentication with reflected CHAP_C + - ima: audit log files opened with O_DIRECT flag + - ima: introduce ima_kernel_read() (regression in 3.10) + - evm: prohibit userspace writing 'security.evm' HMAC value + - net: Use netlink_ns_capable to verify the permisions of netlink messages + (CVE-2014-0181) + - netlink: Only check file credentials for implicit destinations + - qlcnic: info leak in qlcnic_dcb_peer_app_info() + - ipv6: Fix regression caused by efe4208 in udp_v6_mcast_next() + (regression in 3.13) + - netlink: rate-limit leftover bytes warning and print process name + - bridge: Prevent insertion of FDB entry with disallowed vlan + - net: tunnels - enable module autoloading + - [sparc] net: filter: fix typo in sparc BPF JIT + - sfc: PIO:Restrict to 64bit arch and use 64-bit writes. + (regression in 3.13) + - ipv4: fix a race in ip4_datagram_release_cb() + - sctp: Fix sk_ack_backlog wrap-around problem + - udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup + (regression in 3.13) + - USB: cdc-acm: Fix various bugs in power management + - USB: cdc-acm: fix I/O after failed open + - [x86] hv: use correct order when freeing monitor_pages + - ASoC: dapm: Make sure to always update the DAPM graph in _put_volsw() + (regression in 3.12) + - lzo: properly check for overruns (CVE-2014-4608) + - lz4: ensure length does not wrap (CVE-2014-4608) + - ALSA: compress: Cancel the optimization of compiler and fix the size of + struct for all platform. + - ALSA: control: Protect user controls against concurrent access + (CVE-2014-4652) + - ALSA: control: Fix replacing user controls (CVE-2014-4654, CVE-2014-4655) + - ALSA: control: Don't access controls outside of protected regions + (CVE-2014-4653) + - ALSA: control: Make sure that id->index does not overflow; + Handle numid overflow (CVE-2014-4656) + + [ Ben Hutchings ] + * aufs: Update to aufs3.14-20140616: + - tiny, no msg in spinlock regeion + - minor bugfix, correct error value in link(2) + - O_TMPFILE support + - bugfix, handling an error in opening a FIFO + - propagate aufs file references to new vmas created by remap_file_pages() + * linux-image: Make initramfs support unconditional + * [x86] x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508) + * [rt] Fix latency histogram after "hrtimer: Set expiry time before + switch_hrtimer_base()" in 3.14.6 + + [ Aurelien Jarno ] + * [arm64] Enable COMPAT to support 32-bit binaries. + * [mips,mipsel] Enable initramfs for all flavours, but keep the disk + related drivers built-in for now. + + -- Ben Hutchings Mon, 30 Jun 2014 13:57:11 +0100 + +linux (3.14.7-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6 + - [mipsel] loongson2_cpufreq: Fix CPU clock rate setting + (regression in 3.14) + - rtmutex: Fix deadlock detector for real + - kernfs: add back missing error check in kernfs_fop_mmap() + (regression in 3.14) + - coredump: fix va_list corruption (regression in 3.11) + - mm: make fixup_user_fault() check the vma access rights too + - serial: 8250: Fix thread unsafe __dma_tx_complete function + - 8250_core: Fix unwanted TX chars write + - iwlwifi: 7000: bump API to 9 + - timer: Prevent overflow in apply_slack + - cfg80211: free sme on connection failures (regression in 3.11) + - cfg80211: add cfg80211_sched_scan_stopped_rtnl (regression in 3.14) + - mac80211: fix nested rtnl locking on ieee80211_reconfig + (regression in 3.14) + - mm, thp: close race between mremap() and split_huge_page() + - [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() + - hwpoison, hugetlb: lock_page/unlock_page does not match for handling a + free hugepage + - iwlwifi: mvm: delay enabling smart FIFO until after beacon RX + (regression in 3.14) + - aio: fix potential leak in aio_run_iocb(). + - Revert "hwmon: (coretemp) Refine TjMax detection" + - hrtimer: Prevent remote enqueue of leftmost timers + - hrtimer: Set expiry time before switch_hrtimer_base() + - dm verity: fix biovecs hash calculation regression (regression in 3.14) + - dm cache: fix writethrough mode quiescing in cache_map + (regression in 3.13) + - md/raid10: call wait_barrier() for each request submitted. + (regression in 3.14) + - PNP / ACPI: Do not return errors if _DIS or _SRS are not present + (regression in 3.14) + - ACPI / EC: Process rather than discard events in acpi_ec_clear + (regression in 3.13.7, 3.14) + - irqchip: armada-370-xp: fix invalid cast of signed value into unsigned + variable (regression in 3.13) + - irqchip: armada-370-xp: implement the ->check_device() msi_chip + operation (regression in 3.13) + - irqchip: armada-370-xp: Fix releasing of MSIs (regression in 3.13) + - [x86] drm/i915: Allow user modes to exceed DVI 165MHz limit + (regression in 3.14) + - [x86] drm/i915: Don't check gmch state on inherited configs + (regression in 3.13?) + - [x86] drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch + platforms (regression in 3.13) + - [x86] drm/radeon: fix runpm handling on APUs (v4) (regression in 3.13) + - drm/radeon: disable mclk dpm on R7 260X (regression in 3.14) + - drm/radeon: add support for newer mc ucode on SI (v2) + - drm/radeon: add support for newer mc ucode on CI (v2) + - drm/radeon: re-enable mclk dpm on R7 260X asics + - drm/radeon/uvd: use lower clocks on old UVD to boot v2 + (regression in 3.13) + - drm/radeon: check buffer relocation offset + - USB: Nokia 305 should be treated as unusual dev + - USB: Nokia 5300 should be treated as unusual dev + - Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device" + (regression in 3.14) + - posix_acl: handle NULL ACL in posix_acl_equiv_mode + - fs/affs/super.c: bugfix / double free (regression in 3.14) + - [armel/orion5x] fix target ID for crypto SRAM window + (regression in 3.12) + - [armel/kirkwood]: dts: fix mislocated pcie-controller nodes + (regression in 3.12) + - [armhf/armmp-lpae] 8012/1: kdump: Avoid overflow when converting pfn to + physaddr + - drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip + (regression in 3.11) + - drm/i915/vlv: reset VLV media force wake request register + (regression in 3.14?) + - i40e: potential array underflow in i40e_vc_process_vf_msg() + - igb: Fix Null-pointer dereference in igb_reset_q_vector + (regression in 3.14) + - igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only + (regression in 3.14) + - leds: leds-pwm: properly clean up after probe failure + - device_cgroup: rework device access check and exception checking + - device_cgroup: check if exception removal is allowed + - media: media-device: fix infoleak in ioctl media_enum_entities() + (CVE-2014-1739) + - Input: Add INPUT_PROP_TOPBUTTONPAD device property + - Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property + - e1000e: Fix no connectivity when driver loaded with cable out + (regression in 3.12) + - autofs: fix lockref lookup + - vfs: fix races between __d_instantiate() and checks of dentry flags + - ALSA: hda - hdmi: Set converter channel count even without sink + (regression in 3.13) + - NFSd: Move default initialisers from create_client() to alloc_client() + - NFSd: call rpc_destroy_wait_queue() from free_client() + - NFSD: Call ->set_acl with a NULL ACL structure if no entries + - nfsd4: remove lockowner when removing lock stateid + - workqueue: fix bugs in wq_update_unbound_numa() failure path + - workqueue: fix a possible race condition between rescuer and pwq-release + - [arm] mvebu: mvebu-soc-id: add missing clk_put() call + (regression in 3.14) + - [arm] mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled + (regression in 3.14) + - ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() + (regression in 3.14) + - [hppa] ratelimit userspace segfault printing + - [amd64] modify_ldt: Make support for 16-bit segments a runtime option + - sysfs: make sure read buffer is zeroed (possible regression in 3.13) + - Target/iser: Fix wrong connection requests list addition + - Target/iser: Fix iscsit_accept_np and rdma_cm racy flow + - iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out + (regression in 3.11) + - target: fix memory leak on XCOPY + - [x86] drm/i915: Disable self-refresh for untiled fbs on i915gm + (regression in 3.14) + - [x86] drm/i915: move power domain init earlier during system resume + (regression in 3.14?) + - [x86] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them + (regression in 3.12) + - iwlwifi: mvm: BT Coex - fix Look Up Table (regression in 3.13) + - PCI: Wrong register used to check pending traffic (regression in 3.14) + - dm crypt: fix cpu hotplug crash by removing per-cpu structure + - dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode + (regression in 3.14) + - dm thin: add timeout to stop out-of-data-space mode holding IO forever + - dmaengine: fix dmaengine_unmap failure + - dma: mv_xor: Flush descriptors before activating a channel + - tcm_fc: Fix free-after-use regression in ft_free_cmd + (regression in 3.13) + - ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses. + (regression in 3.14) + - ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" + (regression in 3.13) + - ACPI: Revert "ACPI / Battery: Remove battery's proc directory" + (regression in 3.13) + - [x86] ACPI / video: Add use_native_backlight quirks for more systems + - ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" + (regression in 3.13) + - [x86] ACPI / TPM: Fix resume regression on Chromebooks + (regression in 3.14) + - i2c: s3c2410: resume race fix + - [x86] intel_pstate: Set turbo VID for BayTrail + - [s390] crypto: fix aes,des ctr mode concurrency finding. + - clk: Fix double free due to devm_clk_register() + - clk: Fix slab corruption in clk_unregister() + - [powerpc] powernv: Reset root port in firmware (regression in 3.14) + - [powerpc] irq work racing with timer interrupt can result in timer + interrupt hang (regression in 3.14) + - [powerpc] kexec: Fix "Processor X is stuck" issue during kexec from ST + mode (regression in 3.13) + - spi: core: Ignore unsupported Dual/Quad Transfer Mode bits + (regression in 3.12) + - libceph: fix corruption when using page_count 0 page in rbd + - media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel + from user-space + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.7 + - perf: Limit perf_event_attr::sample_period to 63 bits + - perf: Fix race in removing an event + - SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove + (regression in 3.13) + - [arm] 8051/1: put_user: fix possible data corruption in put_user + - [arm] 8064/1: fix v7-M signal return (regression in 3.11) + - cpufreq: remove race while accessing cur_policy + - firewire: revert to 4 GB RDMA, fix protocols using Memory Space + (regression in 3.14) + - [mips] Fix typo when reporting cache and ftlb errors for ImgTec cores + (regression in 3.14) + - dm cache: always split discards on cache block boundaries + - virtio_blk: fix race between start and stop queue + - sched/deadline: Restrict user params max value to 2^63 ns + - sched/dl: Fix race in dl_task_timer() + - drm/radeon: avoid crash if VM command submission isn't available + - [x86] drm/i915: Only copy back the modified fields to userspace from + execbuffer + - drm/radeon/dpm: resume fixes for some systems (regression in 3.14) + - libata: Blacklist queued trim for Crucial M500 (regression in 3.14.4) + - md: always set MD_RECOVERY_INTR when aborting a reshape or other + "resync". + - md: always set MD_RECOVERY_INTR when interrupting a reshape thread. + (regression in 3.12.9, 3.13) + - xhci: delete endpoints from bandwidth list before freeing whole device + - staging: comedi: ni_daq_700: add mux settling delay + - staging: r8192e_pci: fix htons error (regression in 3.14) + - ALSA: hda/analog - Fix silent output on ASUS A8JN (regression in 3.12) + - USB: io_ti: fix firmware download on big-endian machines (part 2) + - usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports + (regression in 3.12) + - percpu-refcount: fix usage of this_cpu_ops + - [x86] intel_pstate: Remove C0 tracking (regression in 3.14) + - [x86] intel_pstate: Correct rounding in busy calculation + (regression in 3.14) + - [x86] intel_pstate: add sample time scaling + - [x86] intel_pstate: Improve initial busy calculation + - mm: add !pte_present() check on existing hugetlb_entry callbacks + (CVE-2014-3940) + - mm: rmap: fix use-after-free in __put_anon_vma + - iser-target: Add missing target_put_sess_cmd for ImmedateData failure + - iscsi-target: Fix wrong buffer / buffer overrun in + iscsi_change_param_value() + - target: Fix alua_access_state attribute OOPs for un-configured devices + - netfilter: Fix potential use after free in ip6_route_me_harder() + - netfilter: nfnetlink: Fix use after free when it fails to process batch + - [x86] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap() + + [ Ian Campbell ] + * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) + * [arm64] Update modules included in installer udebs. + * Include virtio_mmio in virtio-modules udeb when available. + + [ Aurelien Jarno ] + * topconfig: Enable modular HW_RANDOM. + * [kernelarch-powerpc] Remove HW_RANDOM. + * [kernelarch-x86] Remove HW_RANDOM. + * [mips/4kc-malta] Remove HW_RANDOM. + * [mips/5kc-malta] Remove HW_RANDOM. + * [mips/octeon] Remove HW_RANDOM. + * [arm64] Enable modular RTC_DRV_PL031. + + [ Ben Hutchings ] + * [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira: + - Split common/big-endian powerpc64 options + - Add little-endian powerpc64 options + - Temporarily disable zImage + - powerpc/powernv: Add calls to support little endian host + - Add 'ppc64le' (uname output) to bug/include-model script + - udeb: Add packages based on ppc64 configuration + * netfilter: ipv4: defrag: set local_df flag on defragmented skb + (regression in 3.14.5) + * [mips] seccomp: Check system calls whenever seccomp is enabled, + even if audit and trace are disabled (Closes: #751417) + * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917) + * fs,userns: Change inode_capable to capable_wrt_inode_uidgid + (CVE-2014-4014) + * SCSI: Fix spurious request sense in error handling (regression in 3.14) + * PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14) + * [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently + result in a panic + + -- Ben Hutchings Mon, 16 Jun 2014 09:51:49 +0100 + +linux (3.14.5-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.5 + - SCSI: dual scan thread bug fix + - SCSI: megaraid: missing bounds check in mimd_to_kioc() + - [x86] KVM: remove WARN_ON from get_kernel_ns() + - audit: convert PPIDs to the inital PID namespace. + - netfilter: nf_tables: fix nft_cmp_fast failure on big endian for size < 4 + - netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len + (Closes: #741667) + - netfilter: Can't fail and free after table replacement + - [i386] x86,preempt: Fix preemption for i386 + - rbd: fix error paths in rbd_img_request_fill() + - [x86] drm/i915: restore QUIRK_NO_PCH_PWM_ENABLE (regression in 3.14) + - tick-sched: Don't call update_wall_time() when delta is lesser than + tick_period (regression in 3.14) + - tick-sched: Check tick_nohz_enabled in tick_nohz_switch_to_nohz() + (regression in 3.13) + - [hppa] change value of SHMLBA from 0x00400000 to PAGE_SIZE + - [hppa] fix epoll_pwait syscall on compat kernel + - [hppa] remove _STK_LIM_MAX override + - vfs: don't bother with {get,put}_write_access() on non-regular files + - cifs: Wait for writebacks to complete before attempting write. + - xen/spinlock: Don't enable them unconditionally. (regression in 3.12) + - thp: close race between split and zap huge pages (regression in 3.13) + - mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages() + - mm: use paravirt friendly ops for NUMA hinting ptes + - USB: io_ti: fix firmware download on big-endian machines + - fs: Don't return 0 from get_anon_bdev (regression in 3.14) + - [x86] drm/vmwgfx: Make sure user-space can't DMA across buffer object + boundaries v2 + - [x86] drm/i915: Do not dereference pointers from ring buffer in evict + event (regression in 3.13) + - net: core: don't account for udp header size when computing seglen + (regression in 3.14) + - bridge: Fix double free and memory leak around br_allowed_ingress + - filter: prevent nla extensions to peek beyond the end of the message + (CVE-2014-3144, CVE-2014-3145) + - Revert "net: sctp: Fix a_rwnd/rwnd management to reflect real state of + the receiver's buffer" (regression in 3.14) + - ip6_gre: don't allow to remove the fb_tunnel_dev + - net: sctp: cache auth_enable per endpoint + - net: Fix ns_capable check in sock_diag_put_filterinfo + - rtnetlink: Warn when interface's information won't fit in our packet + - rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF + is set + - tcp_cubic: fix the range of delayed_ack + - net: cdc_ncm: fix buffer overflow (regression in 3.13) + - ip_tunnel: Set network header properly for IP_ECN_decapsulate() + (regression in 3.11) + - ipv4: ip_tunnels: disable cache for nbma gre tunnels (regression in 3.14) + - net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock + (regression in 3.13) + - net: ipv4: ip_forward: fix inverted local_df test (regression in 3.14) + - net: ipv6: send pkttoobig immediately if orig frag size > mtu + (regression in 3.14) + - ip6_tunnel: fix potential NULL pointer dereference + - neigh: set nud_state to NUD_INCOMPLETE when probing router reachability + (regression in 3.14) + - batman-adv: fix neigh_ifinfo imbalance (regression in 3.14) + - batman-adv: fix neigh reference imbalance (regression in 3.14) + - batman-adv: always run purge_orig_neighbors (regression in 3.14) + - batman-adv: fix removing neigh_ifinfo (regression in 3.14) + - [s390,x86] net: filter: fix JIT address randomization + - net: avoid dependency of net_get_random_once on nop patching + (regression in 3.13) + - ipv6: fix calculation of option len in ip6_append_data + (regression in 3.13) + - rtnetlink: wait for unregistering devices in rtnl_link_unregister() + - bonding: fix out of range parameters for bond_intmax_tbl + (regression in 3.14) + - net: gro: make sure skb->cb[] initial content has not to be zero + (regression in 3.13) + - batman-adv: fix indirect hard_iface NULL dereference (regression in 3.14) + - batman-adv: fix reference counting imbalance while sending fragment + (regression in 3.14) + - batman-adv: increase orig refcount when storing ref in gw_node + - batman-adv: fix local TT check for outgoing arp requests in DAT + (regression in 3.13) + - net_sched: fix an oops in tcindex filter (regression in 3.14) + - ipv6: gro: fix CHECKSUM_COMPLETE support (regression in 3.14) + - ipv4: initialise the itag variable in __mkroute_input + - net-gro: reset skb->truesize in napi_reuse_skb() + + [ Ben Hutchings ] + * [x86] ACPICA: Tables: Fix invalid pointer accesses in + acpi_tb_parse_root_table(). (Closes: #748574) + * net: Revert lockdep changes in 3.14.5 to avoid an ABI change + * futex: Add another early deadlock detection check + * futex: Prevent attaching to kernel threads + * futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) + (CVE-2014-3153) + * futex: Validate atomic acquisition in futex_lock_pi_atomic() + * futex: Always cleanup owner tid in unlock_pi + * futex: Make lookup_pi_state more robust + + [ Ian Campbell ] + * [arm64] Initial kernel configuration and packaging (Closes: #745349). + * [armhf] Add virtio-modules udeb. + + [ Aurelien Jarno ] + * [mips,mipsel] Fix branch emulation of branch likely instructions. + + -- Ben Hutchings Thu, 05 Jun 2014 13:49:15 +0100 + +linux (3.14.4-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.3 + - ASoC: pcm: Drop incorrect double/extra frees + - [s390] KVM: Optimize ucontrol path (regression in 3.11) + - [s390] bitops,atomic: add missing memory barriers + - [s390] fix control register update (regression in 3.14) + - mei: me: do not load the driver if the FW doesn't support MEI interface + - staging: comedi: usbdux: bug fix for accessing 'ao_chanlist' in private + data + - [x86] AVX-512: AVX-512 Feature Detection + - [x86] AVX-512: Enable AVX-512 States Context Switch + - [x86] ftrace: One more missing sync after fixup of function modification + failure + - [amd64] modify_ldt: Ban 16-bit segments on 64-bit kernels + - [armhf] PCI: imx6: Wait for retraining (regression in 3.14) + - [arm] PCI: mvebu: Fix potential issue in range parsing + (regression in 3.12) + - NFSv4: Fix a use-after-free problem in open() + - nfsd: revert v2 half of "nfsd: don't return high mode bits" + (regression in 3.14) + - nfsd4: buffer-length check for SUPPATTR_EXCLCREAT + - nfsd4: fix test_stateid error reply encoding + - nfsd: notify_change needs elevated write count + - nfsd: check passed socket's net matches NFSd superblock's one + - nfsd4: fix memory leak in nfsd4_encode_fattr() + - nfsd4: fix setclientid encode size + - NFSD: Traverse unconfirmed client through hash-table + - IB/ipath: Fix potential buffer overrun in sending diag packet routine + - IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL + - IB/mthca: Return an error on ib_copy_to_udata() failure + - IB/ehca: Returns an error on ib_copy_to_udata() failure + - IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler + (regression in 3.14) + - ib_srpt: Use correct ib_sg_dma primitives + - SCSI: arcmsr: upper 32 of dma address lost + - iscsi-target: Fix ERL=2 ASYNC_EVENT connection pointer bug + - target/iblock: Fix double bioset_integrity_free bug + - target/tcm_fc: Fix use-after-free of ft_tpg + - [x86] efi: Correct EFI boot stub use of code32_start + - efi: Pass correct file handle to efi_file_{read,close} + - reiserfs: fix race in readdir + - media: v4l2-dv-timings: add module name, description, license + - media: em28xx-audio: fix user counting in snd_em28xx_capture_open() + - [armhf] usb: musb: fix PHY power on/off (regression in 3.14) + - mtip32xx: Unmap the DMA segments before completing the IO request + - mtip32xx: mtip_async_complete() bug fixes + - iser-target: Match FRMR descriptors to available session tags + - iser-target: Add missing se_cmd put for WRITE_PENDING in tx_comp_err + - [sh] fix format string bug in stack tracer + - mm: page_alloc: spill to remote nodes before waking kswapd + (regression in 3.12/3.13) + - mm: try_to_unmap_cluster() should lock_page() before mlocking + (CVE-2014-3122) (Closes: #747326) + - xattr: guard against simultaneous glibc header inclusion + - ocfs2: do not put bh when buffer_uptodate failed + - ocfs2: fix panic on kfree(xattr->name) + - vfs: smarter propagate_mnt() + - block: Fix for_each_bvec() + - ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS + - ext4: note the error in ext4_end_bio() + - ext4: move ext4_update_i_disksize() into mpage_map_and_submit_extent() + - ext4: use i_size_read in ext4_unaligned_aio() + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.4 + - tty: Fix lockless tty buffer race + - n_tty: Fix n_tty_write crash when echoing in raw mode (CVE-2014-0196) + (Closes: #747166) + - floppy: ignore kernel-only members in FDRAWCMD ioctl input (CVE-2014-1737) + - floppy: don't write kernel-only members to FDRAWCMD ioctl output + (CVE-2014-1738) + - KVM: async_pf: mm->mm_users can not pin apf->mm + - KVM: ioapic: fix assignment of ioapic->rtc_status.pending_eoi + (CVE-2014-0155) + - [powerpc] KVM: Book3S HV: Fix KVM hang with CONFIG_KVM_XICS=n + (regression in 3.14) + - [mips] Hibernate: Flush TLB entries in swsusp_arch_resume() + - [powerpc] Fix Oops in rtas_stop_self() (regression in 3.14) + - [s390] bpf,jit: initialize A register if 1st insn is BPF_S_LDX_B_MSH + - SUNRPC: Ensure that call_connect times out correctly (regression in 3.13) + - SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN tasks + (regression in 3.13) + - Revert "net: mvneta: fix usage as a module on RGMII configurations" + (regression in 3.14) + - iwlwifi: dvm: take mutex when sending SYNC BT config command + - mac80211: fix potential use-after-free + - mac80211: fix WPA with VLAN on AP side with ps-sta again + - locks: allow __break_lease to sleep even when break_time is 0 + - rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb + (regression in 3.13) + - dm cache: prevent corruption caused by discard_block_size > + cache_block_size + - dm transaction manager: fix corruption due to non-atomic transaction + commit + - dm: take care to copy the space map roots before locking the superblock + - dm thin: fix dangling bio in process_deferred_bios error path + - aio: v4 ensure access to ctx->ring_pages is correctly serialised for + migration + - cpufreq: loongson2_cpufreq: don't declare local variable as static + (regression in 3.14) + + [ Ben Hutchings ] + * [or1k] Build a linux-libc-dev package (Closes: #746309) + * net: Start with correct mac_len in skb_network_protocol (Closes: #746453) + * [x86] ACPI/Processor: Fix failure of loading acpi-cpufreq driver + (Closes: #746448) + * [armhf] ARM: sun4i: dt: Add bindings for USB clocks (fixes FTBFS, + Closes: #746420) + * [x86] udeb: Add hyperv-keyboard to hyperv-modules + * drm: Enable auto-loading of ast, udl + * [ppc64el] Build a linux-libc-dev package (Closes: #747367) + * net: ipv4: current group_info should be put after using. (CVE-2014-2851) + * filter: prevent nla extensions to peek beyond the end of the message + (CVE-2014-3144, CVE-2014-3145) + * [powerpc,ppc64] Add versioned build-dependency on gcc-4.8, as compiler + changes have resulted in a different kernel module ABI + - [powerpc] Bump ABI to 1a as 3.14.2-1 was built with an older compiler + * [armhf] Enable IR_GPIO_CIR as module (Closes: #747762) + * [hppa/parisc64-smp] ipmi: Enable IPMI_HANDLER, IPMI_DEVICE_INTERFACE, + IPMI_SI, IPMI_WATCHDOG, IPMI_POWEROFF as modules (Closes: #747482) + * [armhf] Enable various drivers to support BeagleBone Black + (Closes: #747364) + * [hppa] udeb: Add xfs-modules (Closes: #746506) + * udeb: Add mtip32xx, nvme to sata-modules + * [rt] Update to 3.14.3-rt5: + - tracing: use migrate_disable() to prevent beeing pushed off the cpu + - rwsem-rt: Do not allow readers to nest + - Revert "migrate_disable pushd down in atomic_dec_and_spin_lock" + - rwlock: disable migration before taking a lock + - timer: do not spin_trylock() on UP + - stomp-machine: Fix wait for completion + - stomp-machine: create lg_global_trylock_relax() primitive + - stomp-machine: use lg_global_trylock_relax() to dead with + stop_cpus_lock lglock + - blk-mq: revert raw locks, post pone notifier to POST_DEAD + - use EXPORT_SYMBOL() on __rt_mutex_init() and rt_down_write_nested_lock() + - netconsole: Allow use with PREEMPT_RT_FULL + * aufs: Update to aufs3.14-20140512: + - bugfix, stop calling security_mmap_file() again + + -- Ben Hutchings Wed, 14 May 2014 00:46:05 +0100 + +linux-tools (3.14-1) unstable; urgency=medium + + * New upstream release + + -- Ben Hutchings Mon, 28 Apr 2014 17:46:24 +0100 + +linux (3.14.2-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.2 + + [ Ian Campbell ] + * [armhf] Drop suffix from kernel udeb. + * [armhf] Backport sunxi AHCI and GMAC drivers from v3.15-rc1 + + [ Ben Hutchings ] + * [x86] Enable X86_INTEL_LPSS (Closes: #745331) + * [x86] thinkpad_acpi: Add support for X1 Carbon 2nd generation's adaptive + keyboard (Closes: #745252) + * [armhf] Enable more Allwinner/sunxi drivers (Closes: #745972): + - spi: sunxi: Add Allwinner A31 SPI controller driver + - ARM: dt: sun4i: Add A10 SPI controller nodes + - PHY: sunxi: Add driver for sunxi usb phy + - ARM: sun4i: dt: Add USB host bindings + - Enable PHY_SUN4I_USB, RTC_DRV_SUNXI, SPI_SUN6I, USB_EHCI_HCD_PLATFORM, + USB_OHCI_HCD_PLATFORM and CONFIG_SUNXI_WATCHDOG as modules + * Set ABI to 1 + * Staging: speakup: Move pasting into a work item and update it to match vt + (Closes: #735202, #744015) + + -- Ben Hutchings Mon, 28 Apr 2014 17:12:03 +0100 + +linux (3.14.1-1~exp1) experimental; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.1 + + [ Ben Hutchings ] + * [armel] Disable ixp4xx flavour (fixes FTBFS) + * [armhf] Enable SECURITY_APPARMOR, SECURITY_TOMOYO + * [rt] Update to 3.14.0-rt1 and reenable + + -- Ben Hutchings Thu, 17 Apr 2014 13:17:18 +0100 + +linux (3.14-1~exp1) experimental; urgency=medium + + * New upstream release: http://kernelnewbies.org/Linux_3.14 + + [ Ben Hutchings ] + * nftables: Enable NF_TABLES_BRIDGE, NF_TABLES_IPV4, NFT_CHAIN_ROUTE_IPV4, + NFT_CHAIN_NAT_IPV4, NF_TABLES_ARP, NF_TABLES_IPV6, NFT_CHAIN_ROUTE_IPV6, + NFT_CHAIN_NAT_IPV6 as modules (Closes: #742763) + * udeb: Update sound-modules, thanks to Samuel Thibault (Closes: #743319) + * aufs: Update to aufs3.14-20140407 (no functional changes) + * mtd: Enable MTD_NAND_ECC_BCH (Closes: #743933) + * drm: Enable DRM_LOAD_EDID_FIRMWARE (Closes: #728275) + + -- Ben Hutchings Wed, 09 Apr 2014 09:53:05 +0100 + +linux-tools (3.14~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Mon, 17 Mar 2014 19:31:14 +0000 + +linux (3.14~rc7-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * bfa,bna: Replace large udelay() with mdelay() (fixes FTBFS on arm) + (Closes: #741142) + * aufs: Update to aufs3.x-rcN-20140310 + - bugfix, Fix unmount to properly free anonymous block devices + + -- Ben Hutchings Mon, 17 Mar 2014 13:30:03 +0000 + +linux (3.14~rc5-1~exp1) experimental; urgency=medium + + * New upstream release candidate + + [ Ben Hutchings ] + * mm: Enable ZSMALLOC as built-in, ZRAM as module (except for + armel/{ixp4xx,orion5x}) (Closes: #676779) + * iio,HID: Enable HID_SENSOR_INCLINOMETER_3D as module + * media/radio: Enable USB_RAREMONO as module + * i40e: Enable I40E_VXLAN, I40E_DCB + * net: Enable I40EVF, USB_NET_SR9800 as modules + * serial: Enable USB_SERIAL_MXUPORT as module + * ceph: Enable CEPH_FS_POSIX_ACL + * netfilter: Enable NF_TABLES_INET, NFT_QUEUE, NFT_REJECT, + NETFILTER_XT_MATCH_CGROUP, NETFILTER_XT_MATCH_IPCOMP as modules + * net/sched: Enable NET_SCH_HHF, NET_SCH_PIE as modules + * [x86] crypto: Enable CRYPTO_DEV_CCP, CRYPTO_DEV_CCP_DD, + CRYPTO_DEV_CCP_CRYPTO as modules + * [x86] platform: Enable CHROMEOS_PSTORE, HP_WIRELESS as modules + * [x86] comedi: Enable COMEDI_MF6X4 as modules + * [x86] staging: Enable R8821AE, RTS5208 as modules + * [x86] thermal: Enable ACPI_INT3403_THERMAL as module + + -- Ben Hutchings Fri, 07 Mar 2014 03:36:35 +0000 + +linux (3.13.10-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.8 + - ALSA: compress: Pass through return value of open ops callback + - [hppa] partly revert commit 8a10bc9: parisc/sti_console: prefer Linux + fonts over built-in ROM fonts (regression in 3.13.2) + - [armhf] net: davinci_emac: Replace devm_request_irq with request_irq + (regression in 3.11) + - NFSv4: Use the correct net namespace in nfs4_update_server + - media: cxusb: unlock on error in cxusb_i2c_xfer() (regression in 3.13) + - media: dw2102: some missing unlocks on error (regression in 3.13) + - libceph: block I/O when PAUSE or FULL osd map flags are set + - libceph: resend all writes after the osdmap loses the full flag + - stop_machine: Fix^2 race between stop_two_cpus() and stop_cpus() + - [arm] 7941/2: Fix incorrect FDT initrd parameter override + (regression in 3.13) + - [x86] bpf_jit: support negative offsets + - printk: fix syslog() overflowing user buffer + - Fix uses of dma_max_pfn() when converting to a limiting address + - deb-pkg: Fix building for MIPS big-endian or ARM OABI + - deb-pkg: Fix cross-building linux-headers package + - fs/proc/proc_devtree.c: remove empty /proc/device-tree when no + openfirmware exists. + - KVM: MMU: handle invalid root_hpa at __direct_map + - [x86] KVM: x86: handle invalid root_hpa everywhere + - KVM: VMX: fix use after free of vmx->loaded_vmcs + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.9 + - ext4: atomically set inode->i_flags in ext4_set_inode_flags() + - rcuwalk: recheck mount_lock after mountpoint crossing attempts + - Input: mousedev - fix race when creating mixed device + - xen/balloon: flush persistent kmaps in correct position + - Revert "xen: properly account for _PAGE_NUMA during xen pte translations" + (regression in 3.13.5) + - drm/i915: Undo gtt scratch pte unmapping again (regression in 3.12) + - [i386/486] fix boot on uniprocessor systems + - random32: avoid attempt to late reseed if in the middle of seeding + - rcuwalk: switch mnt_hash to hlist + - mm: close PageTail race + - cgroup: protect modifications to cgroup_idr with cgroup_mutex + - netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages + (CVE-2014-2523) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.10 + - selinux: correctly label /proc inodes in use before the policy is loaded + - net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk + - bridge: multicast: add sanity check for query source addresses + - tipc: allow connection shutdown callback to be invoked in advance + - tipc: fix connection refcount leak + - tipc: drop subscriber connection id invalidation + - inet: frag: make sure forced eviction removes all frags + - vlan: Set correct source MAC address with TX VLAN offload enabled + (regression in 3.13) + - tcp: tcp_release_cb() should release socket ownership + - bridge: multicast: add sanity check for general query destination + - bridge: multicast: enable snooping on general queries only + - net: socket: error on a negative msg_namelen (regression in 3.11.10) + - bonding: set correct vlan id for alb xmit path (regression in 3.12) + - ipv6: Avoid unnecessary temporary addresses being generated + - net: cdc_ncm: fix control message ordering (regression in 3.13) + - tcp: syncookies: do not use getnstimeofday() (regression in 3.13) + - tipc: fix spinlock recursion bug for failed subscriptions + - ip_tunnel: Fix dst ref-count. (regression in 3.13.7) + - tg3: Do not include vlan acceleration features in vlan_features + - virtio-net: correct error handling of virtqueue_kick() + (regression in 3.13) + - usbnet: include wait queue head in device structure + - vhost: fix total length when packets are too short (CVE-2014-0077) + - vhost: validate vhost_get_vq_desc return value (CVE-2014-0055) + - tcp: fix get_timewait4_sock() delay computation on 64bit + (regression in 3.13) + - xen-netback: remove pointless clause from if statement + - netlink: don't compare the nul-termination in nla_strcmp + - xen-netback: disable rogue vif in kthread context + - net: vxlan: fix crash when interface is created with no group + - rds: prevent dereference of a NULL device in rds_iw_laddr_check + (CVE-2014-2678) + - powernow-k6: disable cache when changing frequency + - [m68k] Skip futex_atomic_cmpxchg_inatomic() test + - crypto: ghash-clmulni-intel - use C implementation for setkey() + + -- Ben Hutchings Tue, 15 Apr 2014 22:12:38 +0100 + +linux (3.13.7-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.7 + - mm: page_alloc: exempt GFP_THISNODE allocations from zone fairness + (regression in 3.12) + - mm: include VM_MIXEDMAP flag in the VM_SPECIAL list to avoid m(un)locking + (regression in 3.12) + - ocfs2: fix quota file corruption + - ocfs2 syncs the wrong range... + - memcg: fix endless loop in __mem_cgroup_iter_next() + (regression in 3.13.3) + - net-tcp: fastopen: fix high order allocations + - ipv6: reuse ip6_frag_id from ip6_ufo_append_data + - ipv4: ipv6: better estimate tunnel header cut for correct ufo handling + - ip_tunnel:multicast process cause panic due to skb->_skb_refdst NULL + pointer + - mac80211: clear sequence/fragment number in QoS-null frames + - ath9k: Fix ETSI compliance for AR9462 2.0 + - ath9k: protect tid->sched check + - cpuset: fix a locking issue in cpuset_migrate_mm() + - cpuset: fix a race condition in __cpuset_node_allowed_softwall() + - firewire: net: fix use after free + - firewire: don't use PREPARE_DELAYED_WORK + - libata: disable queued TRIM for Crucial M500 mSATA SSDs + - libata: use wider match for blacklisting Crucial M500 + - NFSv4: Fix another nfs4_sequence corruptor (Closes: #734268) + - cpufreq: use cpufreq_cpu_get() to avoid cpufreq_get() race conditions + - cpufreq: Skip current frequency initialization for ->setpolicy drivers + (regression in 3.13) + - iscsi/iser-target: Use list_del_init for ->i_conn_node + - iser-target: Ignore completions for FRWRs in isert_cq_tx_work + - iser-target: Fix post_send_buf_count for RDMA READ/WRITE + - mm/readahead.c: fix do_readahead() for no readpage(s) + (regression in 3.13) + - fs/proc/base.c: fix GPF in /proc/$PID/map_files + - drm/i915: fix pch pci device enumeration (regression in 3.11) + - drm/i915: Reject >165MHz modes w/ DVI monitors (regression in 3.11) + - drm/radeon: fix runpm disabling on non-PX harder + (may fix #741619, #742507) + - PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X not enabled + (fixes regression in 3.13.6) + - [x86] vmxnet3: fix netpoll race condition + - mm/compaction: break out of loop on !PageBuddy in isolate_freepages_block + - dm space map metadata: fix refcount decrement below 0 which caused + corruption + - dm cache: fix truncation bug when copying a block to/from >2TB fast + device + - net: unix socket code abuses csum_partial + - SCSI: qla2xxx: Fix multiqueue MSI-X registration. + - [x86] fpu: Check tsk_used_math() in kernel_fpu_end() for eager FPU + - Btrfs: fix tree mod logging + - Btrfs: fix data corruption when reading/updating compressed extents + - intel_pstate: Add setting voltage value for baytrail P states. + - Fix mountpoint reference leakage in linkat + - bio-integrity: Fix bio_integrity_verify segment start bug + - memcg: reparent charges of children before processing parent + + [ Ben Hutchings ] + * [arm] mm: Avoid ABI change in 3.13.6 (fixes FTBFS) + * nfqueue: Orphan frags in nfqnl_zcopy() and handle errors (CVE-2014-2568) + + -- Ben Hutchings Tue, 25 Mar 2014 17:23:31 +0000 + +linux-tools (3.13.6-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.5 + - Modpost: fixed USB alias generation for ranges including 0x9 and 0xA + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.6 + - perf trace: Fix ioctl 'request' beautifier build problems on + !(i386 || x86_64) arches + + [ Ben Hutchings ] + * linux-tools: Remove the 'trace_3.13' link to perf + * Clean another autoconf-generated file so double-builds work + + -- Ben Hutchings Wed, 19 Mar 2014 22:33:21 +0000 + +linux (3.13.6-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.6 + - drm/nouveau/fb: use correct ram oclass for nv1a hardware + (regression in 3.13) + - ext4: fix xfstest generic/299 block validity failures + - ext4: fix error paths in swap_inode_boot_loader() + - ext4: don't try to modify s_flags if the the file system is read-only + - ext4: fix online resize with a non-standard blocks per group setting + - [arm] 7950/1: mm: Fix stage-2 device memory attributes + - [arm] 7953/1: mm: ensure TLB invalidation is complete before enabling MMU + - [arm] 7957/1: add DSB after icache flush in __flush_icache_all() + - powerpc: Set the correct ksp_limit on ppc32 when switching to irq stack + (regression in 3.12) + - jbd2: fix use after free in jbd2_journal_start_reserved() + - cifs: ensure that uncached writes handle unmapped areas correctly + (CVE-2014-0069) + - NFS: Do not set NFS_INO_INVALID_LABEL unless server supports labeled NFS + (regression in 3.11) + - NFS fix error return in nfs4_select_rw_stateid (regression in 3.12) + - bridge: fix netconsole setup over bridge (regression in 3.12) + - net: fix 'ip rule' iif/oif device rename + - net: asix: add missing flag to struct driver_info + - gre: add link local route when local addr is any (regression in 3.13) + - ipv4: fix counter in_slow_tot + - net: use __GFP_NORETRY for high order allocations + - batman-adv: fix soft-interface MTU computation (regression in 3.13) + - batman-adv: fix TT-TVLV parsing on OGM reception + - batman-adv: release vlan object after checking the CRC + - batman-adv: properly check pskb_may_pull return value + - batman-adv: avoid potential race condition when adding a new neighbour + - batman-adv: fix TT CRC computation by ensuring byte order + (regression in 3.13) + - batman-adv: free skb on TVLV parsing success + - batman-adv: avoid double free when orig_node initialization fails + - batman-adv: fix potential kernel paging error for unicast transmissions + - cgroup: fix error return value in cgroup_mount() + - cgroup: fix error return from cgroup_create() + - cgroup: fix locking in cgroup_cfts_commit() + - cgroup: update cgroup_enable_task_cg_lists() to grab siglock + - fs: fix iversion handling + - kvm: x86: fix emulator buffer overflow (CVE-2014-0049) + - kvm, vmx: Really fix lazy FPU on nested guest + - SUNRPC: Ensure that gss_auth isn't freed before its upcall messages + - powerpc/powernv: Fix opal_xscom_{read,write} prototype + - powerpc/powernv: Fix indirect XSCOM unmangling + - perf/x86: Fix event scheduling + - sata_sil: apply MOD15WRITE quirk to TOSHIBA MK2561GSYN + - cpufreq: powernow-k8: Initialize per-cpu data-structures properly + (regression in 3.12) + - Revert "writeback: do not sync data dirtied after sync start" + (regression in 3.13) + - [arm] PCI: mvebu: Use Device ID and revision from underlying endpoint + - PCI: Enable INTx if BIOS left them disabled + - i7core_edac: Fix PCI device reference count + - can: kvaser_usb: check number of channels returned by HW + - usb: chipidea: need to mask when writting endptflush and endptprime + - mei: set client's read_cb to NULL when flow control fails + - workqueue: ensure @task is valid across kthread_stop() + - regulator: da9063: Bug fix when setting max voltage on LDOs 5-11 + - [armhf] mtd: nand: omap: fix ecclayout to be in sync with u-boot NAND + driver (regression in 3.13) + - [armhf] mtd: nand: omap: fix ecclayout->oobfree->offset + - [armhf] mtd: nand: omap: fix ecclayout->oobfree->length + - [armhf/armmp-lpae] iommu/arm-smmu: fix pud/pmd entry fill sequence + - [armhf/armmp-lpae] iommu/arm-smmu: really fix page table locking + - [armhf/armmp-lpae] iommu/arm-smmu: fix table flushing during initial + allocations + - [armhf/armmp-lpae] iommu/arm-smmu: set CBARn.BPSHCFG to NSH for + s1-s2-bypass contexts + - perf: Fix hotplug splat + - quota: Fix race between dqput() and dquot_scan_active() + - ipc,mqueue: remove limits for the amount of system-wide queues + - mm, thp: fix infinite loop on memcg OOM + - qla2xxx: Fix kernel panic on selective retransmission request + - i7300_edac: Fix device reference count + - dm cache: move hook_info into common portion of per_bio_data structure + (regression in 3.13) + - drm/radeon: fix missing bo reservation + - drm/radeon: free uvd ring on unload + + [ Ben Hutchings ] + * xhci: Revert more sg changes (Closes: #741989; also see #738113): + - Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather." + - Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma" + * aufs: Update to aufs3.13-20140303 + - bugfix, Fix unmount to properly free anonymous block devices + * net: fix for a race condition in the inet frag code (CVE-2014-0100) + * net: sctp: fix sctp_sf_do_5_1D_ce to verify if we/peer is AUTH capable + (CVE-2014-0101) + * KEYS: Make the keyring cycle detector ignore other keyrings of the + same name (CVE-2014-0102) + * skbuff: skb_segment: orphan frags before copying (CVE-2014-0131) + * ipv6: don't set DST_NOCOUNT for remotely added routes (CVE-2014-2309) + + -- Ben Hutchings Wed, 19 Mar 2014 16:18:42 +0000 + +linux (3.13.5-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.5 + - xen: properly account for _PAGE_NUMA during xen pte translations + - mm: fix page leak at nfs_symlink() + - mm/memory-failure.c: move refcount only in !MF_COUNT_INCREASED + - CIFS: Fix SMB2 mounts so they don't try to set or get xattrs via cifs + - CIFS: Add protocol specific operation for CIFS xattrs + - CIFS: retrieving CIFS ACLs when mounted with SMB2 fails dropping session + - mac80211: release the channel in error path in start_ap + - mac80211: Fix IBSS disconnect + - mac80211: fix fragmentation code, particularly for encryption + - ath9k_htc: Do not support PowerSave by default + - ath9k: Do not support PowerSave by default + - [s390x] fix kernel crash due to linkage stack instructions + - raw: test against runtime value of max_raw_minors + - hwmon: (ntc_thermistor) Avoid math overflow + - lockd: send correct lock when granting a delayed lock. + - drm/i915: Pair va_copy with va_end in i915_error_vprintf + - vt: Fix secure clear screen + - staging: lustre: fix quotactl permission denied (LU-4530) + - staging: comedi: adv_pci1710: fix analog output readback value + - iio: adis16400: Set timestamp as the last element in chan_spec + - iio: ak8975: Fix calculation formula for convert micro tesla to gauss + unit + - usb-storage: add unusual-devs entry for BlackBerry 9000 + - usb-storage: restrict bcdDevice range for Super Top in Cypress ATACB + - xhci 1.0: Limit arbitrarily-aligned scatter gather. + - Revert "usbcore: set lpm_capable field for LPM capable root hubs" + (regression in 3.12.1) + - block: __elv_next_request() shouldn't call into the elevator if bypassing + - block: Fix nr_vecs for inline integrity vectors + - block: add cond_resched() to potentially long running ioctl discard loop + - compiler/gcc4: Make quirk for asm_volatile_goto() unconditional + - misc: mic: fix possible signed underflow (undefined behavior) in + userspace API + - KVM: return an error code in kvm_vm_ioctl_register_coalesced_mmio() + - md/raid1: restore ability for check and repair to fix read errors. + (regression in 3.10.5) + - i2c: mv64xxx: refactor message start to ensure proper initialization + - target: Fix free-after-use regression in PR unregister + - drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero + - EDAC: Poll timeout cannot be zero, p2 + - EDAC: Correct workqueue setup path + + [ Ben Hutchings ] + * [armhf] net/wireless: Really enable WL_TI and dependent modules + * aufs: Update to aufs3.13-20140127 (no functional changes) + * [powerpc] Change I2C_POWERMAC from module to built-in (Closes: #713943) + * [mips] rtl8187: fix regression on MIPS without coherent DMA + (Closes: #739978) + * [x86] Enable CHROME_PLATFORMS and re-enable CHROMEOS_LAPTOP as module + (Closes: #740042) + * [armel/!kirkwood] udeb: Re-add lzo-modules udeb as lzo_compress is a + module again (Closes: #740219) + * debian/control: Simplify build-dependencies: + - Remove versions for debhelper, python, kernel-wedge that are + satisfied by stable + - Remove module-init-tools as alternative to kmod, which is in stable + + -- Ben Hutchings Tue, 04 Mar 2014 19:49:27 +0000 + +linux-tools (3.13.4-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.2 + - perf kvm: Fix kvm report without guestmount. + + -- Ben Hutchings Sat, 22 Feb 2014 15:39:27 +0000 + +linux (3.13.4-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.13.4 + + [ Ben Hutchings ] + * [x86] Enable POWERCAP, INTEL_RAPL as module (Closes: #736399) + * [arm] Disable OABI_COMPAT and enable AUDITSYSCALL (except for + armel/{ixp4xx,orion5x}) (Closes: #728975, #736843) + * [x86] Enable R8188EU as module, 88EU_AP_MODE and 88EU_P2P (Closes: #736905) + * [x86] Enable I2C_DESIGNWARE_PLATFORM as module (Closes: #737163) + * [x86] snd-pcsp: Disable autoload (Closes: #697709) + * DFSG: Remove the af9005 initialisation script and vs6624 driver again + (they were renamed in 3.7) + * linux-image.postinst: Use lstat() to check symlink existence + (Closes: #738707) + * [hppa] Update configuration, thanks to Helge Deller (Closes: #738487) + - megaraid: Enable MEGARAID_NEWGEN as module; disable MEGARAID_LEGACY + - drm: Change DRM from module to built-in + - [/parisc64-smp] udeb: Add fb-modules package containing radeon driver + * udeb: Add various recently enabled drivers + - Add i40e to nic-modules + - Add r815x to nic-usb-modules + - Add ath10k_core, ath10k_pci, brcmfmac to nic-wireless-modules + - Add esas2r to scsi-modules + * Bluetooth: allocate static minor for vhci (fixes depmod error) + * Set ABI to 1 + + -- Ben Hutchings Sat, 22 Feb 2014 11:54:57 +0000 + +linux-tools (3.13-1~exp3) experimental; urgency=medium + + * linux-tools: Fix/revert unportable code in perf trace (fixes FTBFS + on powerpc, sparc) + + -- Ben Hutchings Fri, 07 Feb 2014 20:36:29 +0000 + +linux-tools (3.13-1~exp2) experimental; urgency=medium + + * Merge changes from sid up to 3.12.6-3 + + -- Ben Hutchings Sun, 02 Feb 2014 16:57:49 +0100 + +linux-tools (3.13-1~exp1) experimental; urgency=low + + * New upstream release + + -- Ben Hutchings Sun, 02 Feb 2014 12:02:29 +0100 + +linux (3.13-1~exp1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.13 + + [ Ben Hutchings ] + * [armhf] xen/pci: Fix build on non-x86 + * [hppa/parisc64-smp] Disable MLONGCALLS (Closes: #733897) + * [armel] Remove iop32x flavour (fixes FTBFS) + * aufs: Update to aufs3.x-rcN-20140120 + - bugfix, removed /proc/PID/fd/N + + [ Bastian Blank ] + * Initial Python 3 support: + - Build-depend on python-six. + + [ Aurelien Jarno ] + * [mipsel] Remove cobalt d-i files. + * [mipsel] Enable KEXEC like on mips. + * [mipsel] Explicitly unset RAPIDIO like on mips. + + -- Ben Hutchings Mon, 20 Jan 2014 05:43:51 +0000 + +linux (3.13~rc6-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [rt] Disable until it is updated for 3.13 or later + * aufs: Update to aufs3.x-rcN-20131223 + * [x86] staging: lustre: Make LUSTRE_LLITE_LLOOP tristate + * mm: Enable MEM_SOFT_DIRTY, NUMA_BALANCING but not + NUMA_BALANCING_DEFAULT_ENABLED + * ipv6: Enable IPV6_VTI as module + * netfilter: Enable NF_TABLES, NFT_EXTHDR, NFT_META, NFT_CT, NFT_RBTREE, + NFT_HASH, NFT_COUNTER, NFT_LOG, NFT_LIMIT, NFT_NAT, NFT_COMPAT, + IP_SET_HASH_NETPORTNET, IP_SET_HASH_NETNET, IP_NF_TARGET_SYNPROXY, + IP6_NF_TARGET_SYNPROXY as modules + * net/sched: Enable NET_CLS_BPF as module + * nfc: Enable NFC_DIGITAL, NFC_PORT100 as modules + * block: Enable BLK_DEV_NULL_BLK, BLK_DEV_SKD as modules + * SCSI: Enable SCSI_ESAS2R as module + * net/usb: Enable USB_NET_HUAWEI_CDC_NCM as module + * touchscreen: Enable TOUCHSCREEN_SUR40 as module + * [x86] video: Enable X86_SYSFB, FB_SIMPLE + * [x86] ACPI: Enable ACPI_EXTLOG + * [x86] touchscreen: Enable TOUCHSCREEN_TSC_SERIO as module + * [x86] tpm: Enable TCG_TIS_I2C_ATMEL, TCG_TIS_I2C_INFINEON, + TCG_TIS_I2C_NUVOTON, TCG_ST33_I2C, TCG_XEN as modules + * [amd64] misc: Enable INTEL_MIC_HOST as module + * [powerpc/powerpc64] block: Enable AIX_PARTITION + * net/sched: Change NET_CLS_CGROUP from built-in to module + * nfc: Disable NFC_NCI as no enabled drivers need it + * misc: Disable BMP085_I2C as unlikely to be useful + + [ Aurelien Jarno ] + * [mipsel] Remove r5k-cobalt flavour. + + -- Ben Hutchings Mon, 30 Dec 2013 02:36:11 +0100 + +linux-tools (3.12.6-3) unstable; urgency=medium + + * linux-tools: Explicitly enable/disable libunwind usage for all + architectures (fixes FTBFS on s390x and sparc) + * linux-tools: Only use libunwind on x86, as perf needs additional + porting work for other architectures (fixes FTBFS on arm and powerpc) + + -- Ben Hutchings Sun, 02 Feb 2014 16:46:44 +0100 + +linux-tools (3.12.6-2) unstable; urgency=medium + + * linux-tools: Replace build-dependency on libunwind7-dev with + libunwind8-dev + + -- Ben Hutchings Sun, 02 Feb 2014 11:51:18 +0100 + +linux (3.12.9-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.9 + - Revert "ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs" + (regression in 3.12.7) + - GFS2: Increase i_writecount during gfs2_setattr_chown + - vfs: Fix a regression in mounting proc (regression in 3.12) + - fork: Allow CLONE_PARENT after setns(CLONE_NEWPID) (regression in 3.12) + - i2c: Re-instate body of i2c_parent_is_i2c_adapter() (regression in 3.12) + - writeback: Fix data corruption on NFS + - thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only + - [x86] ftrace: Load ftrace_ops in parameter not the variable holding it + - nilfs2: fix segctor bug that causes file system corruption + - md: fix problem when adding device to read-only array with bitmap. + - md/raid10: fix bug when raid10 recovery fails to recover a block. + - md/raid10: fix two bugs in handling of known-bad-blocks. + - md/raid5: Fix possible confusion when multiple write errors occur. + - mm: Make {,set}page_address() static inline if WANT_PAGE_VIRTUAL + (fixes FTBFS on sparc and m68k) + - [x86] drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init() + (regression in 3.12.7) + - [arm] 7938/1: OMAP4/highbank: Flush L2 cache before disabling + + [ Ben Hutchings ] + * HID: Enable HID_ELO, HID_XINMO as modules (Closes: #736369) + * xhci: Revert generalised sg support (Closes: #733826, #736274) + + -- Ben Hutchings Sat, 01 Feb 2014 18:50:01 +0100 + +linux (3.12.8-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.7 + - [powerpc] kvm: fix rare but potential deadlock scene + - [m68k] TTY: pmac_zilog, check existence of ports in pmz_console_init() + - xhci: Limit the spurious wakeup fix only to HP machines (fixes + regression in 3.12) + - usb: chipidea: host: Only disable the vbus regulator if it is not NULL + (fixes regression in 3.12) + - aio: fix kioctx leak introduced by "aio: Fix a trinity splat" + - iser-target: Move INIT_WORK setup into isert_create_device_ib_res + - [x86] idle: Repair large-server 50-watt idle-power regression + (fixes regression in 3.10) + - ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails + - ext4: fix use-after-free in ext4_mb_new_blocks + - ext4: fix del_timer() misuse for ->s_err_report + - ext4: add explicit casts when masking cluster sizes + - ext4: fix bigalloc regression + - sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities + - net_dma: mark broken (fixes potential data loss) + - drm/i915: Take modeset locks around intel_modeset_setup_hw_state() + - drm/i915: Hold mutex across i915_gem_release + - drm/i915: Fix use-after-free in do_switch + - drm/i915: don't update the dri1 breadcrumb with modesetting + - drm/i915: Fix erroneous dereference of batch_obj inside reset_status + - ceph: Avoid data inconsistency due to d-cache aliasing in readpage() + - tg3: Expand 4g_overflow_test workaround to skb fragments of any size. + - cgroup: fix cgroup_create() error handling path + - [powerpc] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE + - ath9k_htc: properly set MAC address and BSSID mask (CVE-2013-4579) + (Closes: #729573) + - KVM: nVMX: Unconditionally uninit the MMU on nested vmexit + - [x86] KVM: Fix APIC map calculation after re-enabling + - [powerpc] Fix bad stack check in exception entry + - libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs + (fixes potential data loss) + - radiotap: fix bitmap-end-finding buffer overrun + - mm: numa: serialise parallel get_user_page against THP migration + - mm: numa: call MMU notifiers on THP migration + - mm: clear pmd_numa before invalidating + - mm: numa: do not clear PTE for pte_numa update + - mm: numa: ensure anon_vma is locked to prevent parallel THP splits + - sched: numa: skip inaccessible VMAs + - mm: numa: clear numa hinting information on mprotect + - mm: fix TLB flush race between migration, and change_protection_range + - mm: numa: guarantee that tlb_flush_pending updates are visible before + page table updates + - mm/mempolicy: correct putback method for isolate pages if failed + - mm/compaction: respect ignore_skip_hint in update_pageblock_skip + - mm/hugetlb: check for pte NULL pointer in __page_check_address() + - mm: munlock: fix a bug where THP tail page is encountered + - mm: munlock: fix deadlock in __munlock_pagevec() + - mm: fix use-after-free in sys_remap_file_pages + - Input: allocate absinfo data when setting ABS capability + - GFS2: Fix use-after-free race when calling gfs2_remove_from_ail + - GFS2: Fix slab memory leak in gfs2_bufdata + - GFS2: Fix incorrect invalidation for DIO/buffered I/O + - [s390] 3270: fix allocation of tty3270_screen structure + - [sh] always link in helper functions extracted from libgcc + - selinux: look for IPsec labels on both inbound and outbound packets + - selinux: process labeled IPsec TCP SYN-ACK packets properly in + selinux_ip_postroute() + - aio: clean up and fix aio_setup_ring page mapping + - aio/migratepages: make aio migrate pages sane + - ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug + (regression in 3.12) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.8 + - IPv6: Fixed support for blackhole and prohibit routes + - net: do not pretend FRAGLIST support + - tun: unbreak truncated packet signalling + - macvtap: signal truncated packets + - br: fix use of ->rx_handler_data in code executed on non-rx_handler path + - inet: fix NULL pointer Oops in fib(6)_rule_suppress + - vxlan: release rt when found circular route + - ipv6: fix illegal mac_header comparison on 32bit + - ip_gre: fix msg_name parsing for recvfrom/recvmsg + - net: inet_diag: zero out uninitialized idiag_{src,dst} fields + - drivers/net/hamradio: Integer overflow in hdlcdrv_ioctl() + - hamradio/yam: fix info leak in ioctl + - net: fec: fix potential use after free + - rds: prevent dereference of a NULL device + - arc_emac: fix potential use after free + - net: rose: restore old recvmsg behavior (regression in 3.12.4) + - vlan: Fix header ops passthru when doing TX VLAN offload. + - virtio-net: fix refill races during restore + - net: llc: fix use after free in llc_ui_recvmsg + - netpoll: Fix missing TXQ unlock and and OOPS. + - bridge: use spin_lock_bh() in br_multicast_set_hash_max + - sfc: Add length checks to efx_xmit_with_hwtstamp() and + efx_ptp_is_ptp_tx() + - sfc: PTP: Moderate log message on event queue overflow + - sfc: Rate-limit log message for PTP packets without a matching timestamp + event + - [arm] fix "bad mode in ... handler" message for undefined instructions + - [arm] 7923/1: mm: fix dcache flush logic for compound high pages + - [hppa] Ensure full cache coherency for kmap/kunmap + - clk: clk-divider: fix divisor > 255 bug + - mfd: rtsx_pcr: Disable interrupts before cancelling delayed works + - netfilter: fix wrong byte order in nf_ct_seqadj_set internal information + (regression in 3.12) + - netfilter: nf_nat: fix access to uninitialized buffer in IRC NAT helper + - x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround + (CVE-2014-1438) (Closes: #733551) + - sched: Fix race on toggling cfs_bandwidth_used + - sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining + - sched: Fix hrtimer_cancel()/rq->lock deadlock + + [ Ben Hutchings ] + * [hppa] Update configuration, thanks to Helge Deller (Closes: #733895) + - Change AGP, AGP_PARISC from modules to built-in, to work around + race condition between DRM and AGP + - Enable DEBUG_STACKOVERFLOW + - udeb: Build packages for the parisc64-smp flavour instead of the + removed parisc flavour (fixes FTBFS) + * linux-image: Make maintainer scripts less verbose (Closes: #734266) + * [m68k] Enable EARLY_PRINTK (Closes: #734289) + * crypto: Enable more processor-specific algorithms and drivers: + - [amd64] Enable CRYPTO_CRCT10DIF_PCLMUL, CRYPTO_SHA256_SSSE3, + CRYPTO_SHA512_SSSE3, CRYPTO_GHASH_CLMUL_NI_INTEL, + CRYPTO_CAMELLIA_AESNI_AVX_X86_64, CRYPTO_CAMELLIA_AESNI_AVX2_X86_64, + CRYPTO_CAST5_AVX_X86_64, CRYPTO_CAST6_AVX_X86_64, + CRYPTO_SERPENT_AVX2_X86_64 as modules (Closes: #734376) + - [arm] Enable CRYPTO_SHA1_ARM, CRYPTO_AES_ARM as modules + - [powerpc] Enable CRYPTO_SHA1_PPC as module + - [sparc] Enable CRYPTO_CRC32C_SPARC64, CRYPTO_MD5_SPARC64, + CRYPTO_SHA1_SPARC64, CRYPTO_SHA256_SPARC64, CRYPTO_SHA512_SPARC64, + CRYPTO_AES_SPARC64, CRYPTO_CAMELLIA_SPARC64, CRYPTO_DES_SPARC64, + CRYPTO_DEV_NIAGARA2 as modules + - [x86] Enable CRYPTO_CRC32_PCLMUL as module + * [powerpc] Remove AT_HWCAP2 from auxv to avoid module ABI change + * [rt] Update to 3.12.6-rt9: + - rcu: Don't activate RCU core on NO_HZ_FULL CPUs + - timers: do not raise softirq unconditionally + - rcutree/rcu_bh_qs: disable irq while calling rcu_preempt_qs() + * Revert "net: unix: allow set_peek_off to fail", included in 3.12.8, + as it would cause an ABI change + * media: Enable VIDEO_STK1160_COMMON (new dependency of VIDEO_STK1160) + as module (Closes: #735870) + * [x86] brcm80211: Enable BRCMFMAC as module, and BRCMFMAC_SDIO + (Closes: #735245) + * [x86] staging: lustre: Make LUSTRE_LLITE_LLOOP tristate + + [ Ian Campbell ] + * [armel/kirkwood] Fix interrupt handling on non-DT platforms (Closes: #735172) + * [armhf/armmp] Add mmci driver to mmc-module udeb. + + -- Ben Hutchings Sun, 19 Jan 2014 19:22:22 +0000 + +linux (3.12.6-2) unstable; urgency=medium + + [ Bastian Blank ] + * [x86] Make MICROCODE built-in for early microcode loading. + + [ Ben Hutchings ] + * [armhf] linux-headers: Fix typo in compiler dependency + + -- Ben Hutchings Sun, 29 Dec 2013 16:56:20 +0100 + +linux (3.12.6-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.4 + - net: x86: bpf: don't forget to free sk_filter (v2) + - net: Fix "ip rule delete table 256" (Closes: #724783) + - net-tcp: fix panic in tcp_fastopen_cache_set() + - inet: prevent leakage of uninitialized memory to user in recv syscalls + (CVE-2013-6405) + - ping: prevent NULL pointer dereference on write to msg_name + (CVE-2013-6432) + - ipv6: fix leaking uninitialized port number of offender sockaddr + - netfilter: push reasm skb through instead of original frag skbs + - packet: fix use after free race in send path when dev is released + - gso: handle new frag_list of frags GRO packets + - net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST + - xfs: add capability check to free eofblocks ioctl + - iommu/vt-d: Fixed interaction of VFIO_IOMMU_MAP_DMA with IOMMU address + limits + - aio: Fix a trinity splat + - aio: prevent double free in ioctx_alloc + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.5 + - [s390,s390x] crypto: Fix aes-xts parameter corruption + - crypto: scatterwalk - Set the chain pointer indication bit + - crypto: ccm - Fix handling of zero plaintext when computing mac + - crypto: authenc - Find proper IV address in ablkcipher callback + - [armhf] mvebu: use the virtual CPU registers to access coherency + registers + - vfs: fix subtle use-after-free of pipe_inode_info + - SCSI: bfa: Fix crash when symb name set for offline vport + - SCSI: hpsa: do not discard scsi status on aborted commands + - [hppa] fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address + - net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST + - SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers + - tg3: avoid double-freeing of rx data memory + - crypto: scatterwalk - Use sg_chain_ptr on chain entries + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.6 + - ALSA: memalloc.h - fix wrong truncation of dma_addr_t + - [arm] 7912/1: check stack pointer in get_wchan + - [arm] 7913/1: fix framepointer check in unwind_frame + - KVM: Improve create VCPU parameter (CVE-2013-4587) + - [x86] KVM: Fix potential divide by 0 in lapic (CVE-2013-6367) + - [x86] KVM: Convert vapic synchronization to _cached functions + (CVE-2013-6368) + - [x86] KVM: fix guest-initiated crash with x2apic (CVE-2013-6376) + - xfs: growfs overruns AGFL buffer on V4 filesystems + - futex: fix handling of read-only-mapped hugepages + - nfsd: when reusing an existing repcache entry, unhash it first + - [armhf] usb: musb: musb_cppi41: handle pre-mature TX complete interrupt + - powerpc: Fix PTE page address mismatch in pgtable ctor/dtor + - mm: memcg: do not allow task about to OOM kill to bypass the limit + - mm: memcg: fix race condition between memcg teardown and swapin + - cfg80211: disable 5/10 MHz support for all drivers + - Revert "mac80211: allow disable power save in mesh" + - mac80211: fix scheduled scan rtnl deadlock + - iwlwifi: mvm: check sta_id/drain values in debugfs + - Btrfs: fix access_ok() check in btrfs_ioctl_send() + - dm snapshot: avoid snapshot space leak on crash + - dm array: fix a reference counting bug in shadow_ablock + - dm space map metadata: return on failure in sm_metadata_new_block + - dm space map: disallow decrementing a reference count below zero + - dm table: fail dm_table_create on dm_round_up overflow + - dm thin: switch to read only mode if a mapping insert fails + - dm thin: switch to read-only mode if metadata space is exhausted + - dm thin: always fallback the pool mode if commit fails + - dm thin: re-establish read-only state when switching to fail mode + - dm thin: allow pool in read-only mode to transition to read-write mode + - media/cxd2820r_core: Fix regression in 3.12.3 + - sched: Avoid throttle_cfs_rq() racing with period_timer stopping + - Btrfs: do a full search everytime in btrfs_search_old_slot + - Btrfs: reset intwrite on transaction abort + - Btrfs: fix memory leak of chunks' extent map + - Btrfs: fix hole check in log_one_extent + - Btrfs: fix incorrect inode acl reset + - Btrfs: take ordered root lock when removing ordered operations inode + - Btrfs: do not run snapshot-aware defragment on error + - Btrfs: fix a crash when running balance and defrag concurrently + - Btrfs: fix lockdep error in async commit + + [ Ben Hutchings ] + * udeb: Add ohci-pci to usb-modules (Closes: #730789) + * cifs: Enable CIFS_SMB2 + * [hppa] Update flavours and configuration, thanks to Helge Deller + (Closes: #721191) + - Remove parisc-smp and parisc64 (UP) flavours + - Build with gcc-4.8 + - rtc: Enable HP_SDC_RTC as module + - megaraid: Enable MEGARAID_NEWGEN + - [/parisc64-smp] Enable MLONGCALLS, DISCONTIGMEM_MANUAL + - [/parisc64-smp] Enable PATA_SIL680, AGP, AGP_PARISC, DRM, + DRM_RADEON as modules + * firmware: Disable FW_LOADER_USER_HELPER (see #725714) + * firmware: Improve logging of success/failure for direct file loading + * media: az6007: support Technisat Cablestar Combo HDCI (minus remote) + (Closes: #732106) + * linux-source: Compress with gzip -1 (Closes: #725492) + * [alpha] Prevent a NULL ptr dereference in csum_partial_copy + * Set ABI to 1 + * [ia64] Enable PSTORE, EFI_VARS_PSTORE + * [x86,ia64] udeb: Remove zlib-modules as zlib is now built-in + * [rt] Update to 3.12.5-rt7: + - ptrace: fix ptrace vs tasklist_lock race + - migrate_disable pushd down in atomic_dec_and_spin_lock + - migrate_disable pushd down in rt_spin_trylock_irqsave + - migrate_disable pushd down in rt_write_trylock_irqsave + - Revert "sched/rt: Fix wait_task_interactive() to test rt_spin_lock state" + - seqlock: consolidate spin_lock/unlock waiting with spin_unlock_wait + - softirq: make migrate disable/enable conditioned on softirq_nestcnt + + [ Ian Campbell ] + * [armel/kirkwood+orion] Reenable MARVELL_PHY (Closes: #723177) + + -- Ben Hutchings Sat, 21 Dec 2013 03:12:38 +0000 + +linux (3.12.3-1~exp1) experimental; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.1 + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.2 + - libertas: potential oops in debugfs (CVE-2013-6378) + - exec/ptrace: fix get_dumpable() incorrect tests (CVE-2013-2929) + https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.12.3 + + [ Ben Hutchings ] + * [rt] Update to 3.12.0-rt2 and reenable + * HID: Enable UHID as module (Closes: #729338) + * [sh4] Remove some accidental inconsistencies in config + * Enable CHECKPOINT_RESTORE (Closes: #682700) + * Enable JUMP_LABEL (Closes: #730071) + * [x86] staging: Enable CRYSTALHD as module (Closes: #730832) + * aufs: Update to aufs3.12-20131111 (no functional change) + * [rt] Update to 3.12.1-rt4 + * udeb: Add snd-usb-hiface to sound-modules, thanks to Samuel Thibault + (Closes: #730418) + * linux-image-dbg: Use correct objcopy command when cross-compiling, + thanks to Jon Severinsson + + [ Bastian Blank ] + * Use compiler name instead of Linux version in compiler meta-packages. + + [ Ian Campbell ] + * [armhf]: Enable AHCI_IMX in armmp+lpae flavours. + + [ Aurelien Jarno ] + * [mips/octeon] Add kernel udebs. + * [mipsel] Add a loongson-2e flavour. + + -- Ben Hutchings Thu, 05 Dec 2013 14:34:39 +0000 + +linux-tools (3.12.6-1) unstable; urgency=medium + + * New upstream stable update + - perf tools: Remove cast of non-variadic function to variadic + - perf tools: Synthesize anon MMAP records again + + [ Ben Hutchings ] + * linux-tools: Replace build-dependency on binutils-dev with + libiberty-dev (or old binutils-dev, for ease of backporting) + (Closes: #730883) + + -- Ben Hutchings Sat, 30 Nov 2013 23:48:32 +0000 + +linux-tools (3.12-1~exp1) experimental; urgency=low + + * New upstream release (Closes: #729197) + * [x86, powerpc, ppc64] linux-tools: Build perf with libnuma + + -- Ben Hutchings Mon, 18 Nov 2013 05:14:34 +0000 + +linux (3.12-1~exp1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.12 + + [ Ben Hutchings ] + * namespaces: Enable USER_NS (Closes: #712870) + - Restrict creation of user namespaces to root (CAP_SYS_ADMIN) by + default (sysctl: kernel.unprivileged_userns_clone) + * aufs: Update to aufs3.x-rcN-20131104 + - mmap() holds a reference to the union file as well as the branch file + * [armel/{iop32x,ixp4xx}] Disable BPF_JIT, MEMCG, USER_NS to reduce kernel + size + * [arm,x86,s390,s390x] Introduce linux-compiler meta-packages to allow use + of foreign linux-headers packages with a native multilib compiler + * perf/ftrace: Fix paranoid level for enabling function tracer + (CVE-2013-2930) + * media/usb/gspca: Enable USB_GSPCA_STK1135 as module + * net/ethernet: Enable I40E as module + * net/usb: Enable USB_NET_SR9700 as module + * net/wireless/rt2x00: Enable RT2800USB_RT3573 + * openvswitch: Enable OPENVSWITCH_VXLAN + * net/sched: Enable NET_SCH_FQ as module + * [x86] HID: Enable I2C_HID as module (Closes: #729801) + * [x86] input/misc: Enable INPUT_IDEAPAD_SLIDEBAR as module + * [x86] fs: Enable LUSTRE_FS, LUSTRE_LLITE_LOOP, LNET_XPRT_IB as modules + * [x86] thermal: Enable INTEL_POWERCLAMP, X86_PKG_TEMP_THERMAL as modules + * [armhf/armmp] udeb: Add zlib-modules + + [ Thorsten Glaser ] + * Update m68k config (Closes: #728392): + - enable COMPAT_BRK by explicit upstream (m68k maintainer) request + - re-enable FPU emulation after discussion upstream, by popular request + - disable ADB_MACIISI by upstream (Mac68k maintainer) request + + -- Ben Hutchings Sun, 17 Nov 2013 22:41:26 +0000 + +linux (3.12~rc7-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20131014 + + -- Ben Hutchings Mon, 28 Oct 2013 04:12:20 +0000 + +linux (3.11.10-1) unstable; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.9 + - net/mlx4_core: Fix call to __mlx4_unregister_mac + - net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb + - cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures + - tcp: gso: fix truesize tracking + - xen-netback: Handle backend state transitions in a more robust way + - xen-netback: transition to CLOSED when removing a VIF + - [x86] hyperv-fb: add pci stub + - tracing: Fix potential out-of-bounds in trace_get_user() + - perf: Fix perf ring buffer memory ordering + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.10 + - ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and + BufferField refs. + - libertas: potential oops in debugfs (CVE-2013-6378) + - aacraid: prevent invalid pointer dereference + - ACPICA: Return error if DerefOf resolves to a null package element. + - ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a field. + - USB: mos7840: fix tiocmget error handling + - Btrfs: relocate csums properly with prealloc extents + - [s390,s390x] crypto: s390 - Fix aes-cbc IV corruption + - can: c_can: Fix RX message handling, handle lost message before EOB + - ipc,shm: correct error return value in shmctl (SHM_UNLOCK) + - ipc,shm: fix shm_file deletion races + - drm/nvc0-/gr: fix a number of missing explicit array terminators... + - sched, idle: Fix the idle polling state logic + - [x86] ACPI / EC: Ensure lock is acquired before accessing ec struct + members + - [x86] ACPI / video: Quirk initial backlight level 0 + - Staging: zram: Fix access of NULL pointer + - Drivers: hv: vmbus: Fix a bug in channel rescind code + - rt2x00: fix a crash bug in the HT descriptor handling fix + - Bluetooth: revert: "Bluetooth: Add missing reset_resume dev_pm_ops" + - exec/ptrace: fix get_dumpable() incorrect tests (CVE-2013-2929) + + [ Ben Hutchings ] + * net: clamp ->msg_namelen instead of returning an error + * tcp: tsq: restore minimal amount of queueing + * rds: prevent BUG_ON triggered on congestion update to loopback + (CVE-2012-2372) + * ipv6: fix headroom calculation in udp6_ufo_fragment (CVE-2013-4563) + * [s390,s390x] qeth: avoid buffer overflow in snmp ioctl (CVE-2013-6381) + * xfs: underflow bug in xfs_attrlist_by_handle() (CVE-2013-6382) + * [x86] Enable CHROMEOS_LAPTOP as module (Closes: #731271) + - iio/light: Enable SENSORS_TSL2563, SENSORS_ISL29018, TSL2583 as modules + + -- Ben Hutchings Wed, 04 Dec 2013 14:49:01 +0000 + +linux (3.11.8-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.8 + - bcache: Fixed incorrect order of arguments to bio_alloc_bioset() + - cgroup: fix to break the while loop in cgroup_attach_task() correctly + - mac80211: drop spoofed packets in ad-hoc mode + - mac80211: fix crash if bitrate calculation goes wrong + - rtlwifi: rtl8192cu: Fix error in pointer arithmetic + - jfs: fix error path in ialloc + - SCSI: sd: call blk_pm_runtime_init before add_disk + - ecryptfs: Fix memory leakage in keystore.c + - eCryptfs: fix 32 bit corruption issue + - raid5: set bio bi_vcnt 0 for discard request + - raid5: avoid finding "discard" stripe + - libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures + - Revert "epoll: use freezable blocking call" + - Revert "select: use freezable blocking call" + - md: Fix skipping recovery for read-only arrays. + - vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter + - Fix a few incorrectly checked [io_]remap_pfn_range() calls + - lib/scatterlist.c: don't flush_kernel_dcache_page on slab page + - aacraid: missing capable() check in compat ioctl + - mm: Wait for THP migrations to complete during NUMA hinting faults + - mm: Prevent parallel splits during THP migration + - mm: Close races between THP migration and PMD numa clearing + - mm/pagewalk.c: fix walk_page_range() access of wrong PTEs + - drm: Prevent overwriting from userspace underallocating core ioctl + structs + - seq_file: always update file->f_pos in seq_lseek() + + [ Ben Hutchings ] + * perf/ftrace: Fix paranoid level for enabling function tracer + (CVE-2013-2930) + * [armhf] Bump ABI to 2 + * [armhf/armmp] udeb: Add zlib-modules (fixes FTBFS) + + -- Ben Hutchings Wed, 13 Nov 2013 05:36:36 +0000 + +linux (3.11.7-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.7 + - tcp: TSO packets automatic sizing + - tcp: TSQ can use a dynamic limit + - tcp: must unclone packets before mangling them + - tcp: fix incorrect ca_state in tail loss probe (Closes: #728726) + + [ Ben Hutchings ] + * [armel] udeb: Re-enable iop32x flavour + * Bump ABI to 2 due to TCP changes + + -- Ben Hutchings Sat, 09 Nov 2013 20:18:02 +0000 + +linux (3.11.6-2) unstable; urgency=medium + + [ Ben Hutchings ] + * [sh4] Reduce compiler version to gcc-4.7, as gcc-4.8 is not yet + available + * [ia64] Reduce compiler version to gcc-4.6, matching gcc-defaults + (fixes FTBFS) + * [armhf] Bump ABI to 1a, as enabling Xen and KVM support changes ABI + * net: Fix infinite loop in in skb_flow_dissect() (CVE-2013-4348) + * net: do not call sock_put() on TIMEWAIT sockets + * l2tp: fix kernel panic when using IPv4-mapped IPv6 addresses + * net: heap overflow in __audit_sockaddr() + * proc connector: fix info leaks + * bridge: update mdb expiration timer upon reports. + * Revert "bridge: only expire the mdb entry when query is received" + * unix_diag: fix info leak + * be2net: pass if_id for v1 and V2 versions of TX_CREATE cmd + * net: fix cipso packet validation when !NETLABEL + * inet: fix possible memory corruption with UDP_CORK and UFO + * [arm] 7851/1: check for number of arguments in syscall_get/set_arguments() + * ext[34]: fix double put in tmpfile + * dm snapshot: fix data corruption (CVE-2013-4299) + * i2c: ismt: initialize DMA buffer + * mm: fix BUG in __split_huge_page_pmd + * writeback: fix negative bdi max pause + + [ Aurelien Jarno ] + * UAPI: include in linux/raid/md_p.h. + + -- Ben Hutchings Fri, 01 Nov 2013 05:23:13 +0000 + +linux-tools (3.11-3) unstable; urgency=low + + * linux-tools: Replace build-dependency on libunwind8-dev with + libunwind7-dev, as the new libunwind will not enter testing soon + + -- Ben Hutchings Tue, 29 Oct 2013 02:12:36 +0000 + +linux (3.11.6-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.6 + - random: run random_int_secret_init() run after all late_initcalls + - ext4: fix memory leak in xattr + - KVM: PPC: Book3S HV: Fix typo in saving DSCR + - ipc: Apply mainline changes up to 3.12-rc5 + + [ Ian Campbell ] + * [armhf] Enable Xen and virtio for armmp and armmp-lpae as well as KVM for + armmp-lpae only. + + [ Ben Hutchings ] + * kbuild: Use -nostdinc in compile tests (Closes: #726861, workaround + for #717557) + * Disable CC_OPTIMIZE_FOR_SIZE (Closes: #635899, fixes FTBFS on mips, + mipsel, powerpc) [!armel/{iop32x,ixp4xx,kirkwood,orion5x},m68k] + * aufs: Update to aufs3.11-20131014 + - Remove dependency on loop module (Closes: #727243) + * [armhf/armmp] udeb: Add ppp-modules + + -- Ben Hutchings Sun, 27 Oct 2013 19:02:04 +0000 + +linux-tools (3.11-2) unstable; urgency=low + + * linux-tools: Limit build-dependency on libunwind8-dev to architectures + where it is available and needed + + -- Ben Hutchings Sun, 27 Oct 2013 18:01:37 +0000 + +linux-tools (3.11-1) unstable; urgency=low + + * New upstream release + * linux-tools: Build perf with libaudit and libunwind + + -- Ben Hutchings Sat, 19 Oct 2013 02:38:59 +0100 + +linux (3.11.5-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.2 + - media: siano: fix divide error on 0 counters (Closes: #719623) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.3 + - HID: multitouch: validate indexes details (CVE-2013-2897) + - HID: LG: validate HID output report details (CVE-2013-2893) + - HID: zeroplus: validate output report details (CVE-2013-2889) + - HID: lenovo-tpkbd: fix leak if tpkbd_probe_tp fails (CVE-2013-2894) + - HID: steelseries: validate output report details (CVE-2013-2891) + - HID: logitech-dj: validate output report details (CVE-2013-2895) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.4 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.5 + - cpqarray: fix info leak in ida_locked_ioctl() (CVE-2013-2147) + - cciss: fix info leak in cciss_ioctl32_passthru() (CVE-2013-2147) + - tuntap: correctly handle error in tun_set_iff() (CVE-2013-4343) + - net: sctp: fix ipv6 ipsec encryption bug in sctp_v6_xmit (CVE-2013-4350) + - ipv6: udp packets following an UFO enqueued packet need also be handled + by UFO (CVE-2013-4387) + + [ Ben Hutchings ] + * udeb: Update config to match previous kernel config changes: + - Remove ext{2,3}-modules + - Update description of ext4-modules and let it provide ext{2,3}-modules + - Remove aic7xxx_old, enc28j60 and imm from module lists + - [sh4] kernel-image no longer provides ext3-modules + * [hppa] udeb: kernel-image does not provide ext2-modules (since 3.2.7-1) + * [arm] thermal: Re-enable CPU_THERMAL as built-in (regression in + 3.10~rc4-1~exp1) + * Stop providing virtual packages linux-image (Closes: #724569), + linux-headers and linux-source + * hwmon: Enable SENSORS_JC42, SENSORS_NCT6775 as modules (Closes: #722062) + * compiler/gcc4: Add quirk for 'asm goto' miscompilation bug + * [arm64] Build a linux-libc-dev package (Closes: #695241) + * crypto: ansi_cprng - Fix off by one error in non-block size request + (CVE-2013-4345) + * mvsas: Recognise device/subsystem 9485/9485 as 88SE9485 + * Set ABI to 1 + * [i386] Remove xen-linux-system- packages (Closes: #726010) + + [ Ian Campbell ] + * [armhf] Enable CONFIG_PCI for multiplatform flavour. + - Enable standard NIC and SCSI modules and include in udebs. + * [armhf] Add multiplatform + LPAE flavour (armmp-lpae). + * [armhf] Remove mx5, omap and vexpress flavours. These are all supported + by the multiplatform flavour. + * [armel/kirkwood] Add orion-ehci, mvmdio and of_mdio modules to udebs. + + -- Ben Hutchings Thu, 17 Oct 2013 14:46:41 +0100 + +linux (3.11-1~exp1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.11 + + [ Ben Hutchings ] + * Disable drivers for various platform/undetectable devices by default: + - ata: Disable PATA_ARASAN_CF + - hwrng: Disable HW_RANDOM_TIMERIOMEM + - mdio: Disable MDIO_BITBANG + - media: Disable SOC_CAMERA + - media/radio: Disable I2C_SI470X, RADIO_SAA7706H, RADIO_SI4713, + RADIO_TEA5764, RADIO_TEF6862, RADIO_WL1273 + - mfd: Disable HTC_PASIC3, MFD_PCF50633, MFD_SM501, TPS65010 + - mtd: Disable MTD_ONENAND_GENERIC + - mmc: Disable MMC_SPI, MMC_SDHCI_PLTFM + - net/can: Disable CAN_MCP251X + - net/ethernet: Disable DNET, ENC28J60, ETHOC, KS8842, KS8851, KS8851_MLL, + WIZNET_W5100, WIZNET_W5300 + - net/wireless: Disable LIBERTAS_SPI, P54_SPI + - parport: Disable PARPORT_AX88796 + - power: Disable BATTERY_BQ27x00, BATTERY_DS2760, BATTERY_DS2782, + BATTERY_MAX17040 + - regulator: Disable all drivers + - rtc: Disable all drivers except RTC_DRV_CMOS + - serial: Disable SERIAL_MAX3100 + - spi: Disable SPI_TLE62X0 + - uio: Disable UIO_PDRV, UIO_PDRV_GENIRQ + - USB: Disable USB_C67X00_HCD, USB_ISP116X_HCD, USB_R8A66597_HCD + - video: Disable FB_METRONOME + - w1: Disable W1_SLAVE_DS2760 + * [x86] mtd: Disable MTD_NAND_PLATFORM + * [x86] power: Disable PDA_POWER + * [x86] video: Disable FB_S1D13XXX + * Disable some old non-hotplug PCI drivers: + - SCSI: Disable SCSI_AIC7XXX_OLD + - [x86] mtd: Disable MTD_PMC551 + - [x86] net/wan: Disable SBNI + * Disable parport drivers that are no longer likely to be useful: + - block: Disable PARIDE + - media: Disable VIDEO_BWQCAM, VIDEO_CQCAM, VIDEO_W9966 + - SCSI: Disable SCSI_IMM, SCSI_PPA + - [x86] net/ethernet: Disable ATP + * bluetooth: Disable BT_HCIBTUART; the serial_cs and hci_uart drivers + should be used instead + * PCI: Disable PCIEPORTBUS in configurations for systems without PCI + Express: armel/{iop32x,ixp4xx}, mips/!octeon, mipsel/*, sh4/* + * [armhf/{armmp,mx5}] cpufreq: Enable GENERIC_CPUFREQ_CPU0 as module, + replacing CPU_FREQ_IMX + * [armhf/armmp] Enable PINCTRL_WM8850, replacing GPIO_VT8500 + * [powerpc/powerpc64] Enable CPU_FREQ_CBE (previously CBE_CPUFREQ) as module + * [armel] Re-enable iop32x and ixp4xx flavours + * aufs: Update to aufs3.x-rcN-20130909 + + [ Bastian Blank ] + * Symlink doc directory in linux-headers packages. + * Make gcc-4.8 the default compiler. + * Use default font selection. + * Enable NFS 4.2 client support. + * Use ext4 for all ext-variants. + + -- Ben Hutchings Thu, 12 Sep 2013 03:57:27 +0100 + +linux (3.11~rc7-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [arm,mips,s390,sh4] Enable KPROBES + * trace: Enable KPROBE_EVENT (Closes: #640953) + * trace: Enable UPROBES, UPROBE_EVENT (Closes: #691167) + * irq: Always define devm_{request_threaded,free}_irq() (fixes FTBFS on + s390,s390x) + * [armel] Disable iop32x and ixp4xx flavours (fixes FTBFS) + * Clean up maintainer scripts and templating system + - Move all templates under debian/templates + - linux-image: Remove undocumented $KERNEL_ARCH variable from hook + environment + - Use only one template syntax (@keyword@) and do all substitutions + in gencontrol.py + - linux-image.postinst: Remove debconf warning about ramdisk variable in + /etc/kernel-img.conf + - linux-image.postinst: Remove debconf warning about missing firmware; + this should now be redundant and it annoys users that don't need the + files (Closes: #612822) + * Update Brazilian Portugese debconf template translations + (Fernando Ike de Oliveira) (Closes: #719725) + * hid: Enable HID_HUION as module (Closes: #721002) + * [powerpc,x86] hid: Enable HID_APPLEIR as module + * ACPI: Enable ACPI_INITRD_TABLE_OVERRIDE (Closes: #721310) + * net: Enable NET_MPLS_GSO + * nfc: Enable NFC_SIM as module + * md: Enable DM_SWITCH as module + * net: Enable NLMON as module + * wireless: Enable ATH10K, ATH10K_PCI as modules + * media: Enable VIDEO_USBTV as module + * video: Enable FB_SMSCUFX as module + * usb/serial: Enable USB_SERIAL_WISHBONE, USB_SERIAL_FLASHLOADER, + USB_SERIAL_SUUNTO as modules + * infiniband: Enable INFINIBAND_ISERT as module + * xen: Enable XEN_BALLOON_MEMORY_HOTPLUG + * fs: Enable QNX6FS_FS as module + * f2fs: Enable F2FS_FS_SECURITY + * 9p: Enable 9P_FS_SECURITY + * sunrpc: Enable SUNRPC_DEBUG + * vhost: Enable VHOST_SCSI as module + * [x86] video: Enable FB_HYPERV as module + * [x86] snd-hda-intel: Enable SND_HDA_I915 + * [x86] mmc: Enable MMC_SDHCI_ACPI as module + * [x86] comedi: Enable COMEDI_ADV_PCI1724, COMEDI_NI_LABPC_PCI (formerly + COMEDI_NI_LABPC) as modules + * [x86] Enable MLX5_INFINIBAND as module + * [amd64] iommu: Enable AMD_IOMMU_V2 + * [x86,ia64] fs: Enable EFIVAR_FS as module + * wireless/ti: Disable WL_TI on all configurations except armhf/armmp + * [hppa,mips,mipsel,sh4,sparc] ehci-hcd: Enable USB_EHCI_ROOT_HUB_TT and + USB_EHCI_TT_NEWSCHED in all configurations, consistent with other + architectures + + -- Ben Hutchings Sun, 01 Sep 2013 05:15:57 +0100 + +linux-tools (3.11~rc4-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * linux-tools: Build perf documentation out-of-tree, as this now works + and our previous workaround does not + + -- Ben Hutchings Thu, 08 Aug 2013 16:21:00 +0200 + +linux (3.11~rc4-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20130805 + + [ Hector Oron ] + * [armhf/armmp] Enable NET_CALXEDA_XGMAC as module (Closes: #717269) + + -- Ben Hutchings Thu, 08 Aug 2013 13:09:47 +0200 + +linux (3.10.11-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.8 + - [arm] perf/arm: Fix armpmu_map_hw_event() + - memcg: don't initialize kmem-cache destroying work for root caches + - fs/proc/task_mmu.c: fix buffer overflow in add_page_map() + - elevator: Fix a race in elevator switching + - mac80211: fix infinite loop in ieee80211_determine_chantype + - can: pcan_usb: fix wrong memcpy() bytes length + - cfg80211: fix P2P GO interface teardown + - ASoC: dapm: Fix empty list check in dapm_new_mux() + - ALSA: 6fire: make buffers DMA-able (pcm) + - ALSA: 6fire: make buffers DMA-able (midi) + - USB: ti_usb_3410_5052: fix big-endian firmware handling + - USB: mos7720: fix broken control requests + - Fix TLB gather virtual address range invalidation corner cases + - [arm] 7809/1: perf: fix event validation for software group leaders + (CVE-2013-4254) + - jbd2: Fix use after free after error in jbd2_journal_dirty_metadata() + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.9 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.10 + - [s390] KVM: s390: move kvm_guest_enter,exit closer to sie + - mac80211: don't wait for TX status forever + - tracing/kprobe: Wait for disabling all running kprobe handlers + - tracing: Fix many race conditions including potential use-after-free + - tracing/kprobes: Fail to unregister if probe event files are in use + - tracing/uprobes: Fail to unregister if probe event files are in use + - ftrace: Check module functions being traced on reload + - zd1201: do not use stack as URB transfer_buffer + - VFS: collect_mounts() should return an ERR_PTR + - [arm] davinci: nand: specify ecc strength + - drm/radeon/r7xx: fix copy paste typo in golden register setup + - drm/radeon: fix UVD message buffer validation + - drm/i915: Invalidate TLBs for the rings after a reset + - nilfs2: remove double bio_put() in nilfs_end_bio_write() for + BIO_EOPNOTSUPP error + - Hostap: copying wrong data prism2_ioctl_giwaplist() + - SCSI: zfcp: fix lock imbalance by reworking request queue locking + - SCSI: zfcp: fix schedule-inside-lock in scsi_device list loops + - SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a + signal + - [x86] get_unmapped_area: Access mmap_legacy_base through mm_struct member + - bcache: FUA fixes + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.11 + - drm/nouveau/mc: fix race condition between constructor and request_irq() + - jfs: fix readdir cookie incompatibility with NFSv4 (Closes: #714974) + - [powerpc] Work around gcc miscompilation of __pa() on 64-bit + - [powerpc] Don't Oops when accessing /proc/powerpc/lparcfg without + hypervisor + - timer_list: correct the iterator for timer_list + - drivers/base/memory.c: fix show_mem_removable() to handle missing sections + - memcg: check that kmem_cache has memcg_params before accessing it + - SUNRPC: Fix memory corruption issue on 32-bit highmem systems + - ath9k_htc: Restore skb headroom when returning skb to mac80211 + - iscsi-target: Fix ImmediateData=Yes failure regression in >= v3.10 + - iscsi-target: Fix potential NULL pointer in solicited NOPOUT reject + - ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT + - regmap: rbtree: Fix overlapping rbnodes. + + [ Ben Hutchings ] + * [rt] Update to 3.10.10-rt7: + - hwlat-detector: Update hwlat_detector to add outer loop detection + - hwlat-detector: Use thread instead of stop machine + - hwlat-detector: Use trace_clock_local if available + - genirq: do not invoke the affinity callback via a workqueue + - simple-wait: rename and export the equivalent of waitqueue_active() + - simple-wait: Fix a race condition with swait wakeups vs adding items + to the list + - rcu: Use swait_wake_all() in rcu_nocb_gp_cleanup() + * aufs: Update to aufs3.10-20130826 + * aufs: mvdown, don't let unprivileged users provoke a WARNING + * [x86] ACPI: Re-enable ACPI_HOTPLUG_MEMORY as built-in + * [x86] amd64_edac: Fix single-channel setups (Closes: #717473) + * [x86] efi: Ensure efi-pstore is loaded on EFI systems + * bug script: Prompt to include crash logs from pstore + * ipv6: remove max_addresses check from ipv6_create_tempaddr (CVE-2013-0343) + * HID: validate HID report id size (CVE-2013-2888) + * HID: pantherlord: validate output report details (CVE-2013-2892) + * HID: ntrig: validate feature report details (CVE-2013-2896) + * HID: sensor-hub: validate feature report details (CVE-2013-2898) + * HID: picolcd_core: validate output report details (CVE-2013-2899) + * HID: check for NULL field when setting values + + [ Ian Campbell ] + * [armel]: Enable MVMDIO and USB_EHCI_HCD_ORION on Kirkwood and Orion + (Closes: #719680) + * Bump ABI to 3 + * [armhf]: Add udebs for armmp flavour + + -- Ben Hutchings Tue, 10 Sep 2013 14:13:16 +0100 + +linux-tools (3.10-4) unstable; urgency=low + + * Sourceful upload for the perl 5.18 transition + * usbip: Fix package version override to be binNMU-safe + + -- Ben Hutchings Fri, 30 Aug 2013 12:44:56 +0100 + +linux (3.10.7-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.6 + - [arm] Modify vectors page to defend against ROP buffer overflow attacks + - [armel] 7790/1: Fix deferred mm switch on VIVT processors + - [armel] 7791/1: a.out: remove partial a.out support + - [powerpc] VPHN topology change updates all siblings + - hwmon: (max6697) fix MAX6581 ideality + - USB: mos7840: fix race in register handling + - USB: mos7840: fix race in led handling + - mac80211: fix duplicate retransmission detection + - mac80211: fix ethtool stats for non-station interfaces + - ixgbe: Fix Tx Hang issue with lldpad on 82598EB + - Bluetooth: ath3k: don't use stack memory for DMA + - Bluetooth: fix wrong use of PTR_ERR() in btusb + - svcrpc: fix gss-proxy xdr decoding oops + - svcrpc: fix gss_rpc_upcall create error + - svcrpc: fix kfree oops in gss-proxy code + - zram: avoid invalid memory access in zram_exit() + - zram: use zram->lock to protect zram_free_page() in swap free notify path + - zram: avoid double free in function zram_bvec_write() + - zram: avoid access beyond the zram device + - zram: protect sysfs handler from invalid memory access + - Revert "cpuidle: Quickly notice prediction failure in general case" + - cpufreq: Fix cpufreq driver module refcount balance after suspend/resume + - Revert "cpuidle: Quickly notice prediction failure for repeat mode" + - drm/radeon: Disable dma rings for bo moves on r6xx + - xen-blkfront: use a different scatterlist for each request + - drm/radeon: never unpin UVD bo v3 + - Btrfs: fix crash regarding to ulist_add_merge + - [s390] bitops: fix find_next_bit_left + - userns: unshare_userns(&cred) should not populate cred on failure + (CVE-2013-4205) + - ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup + - usbnet: do not pretend to support SG/TSO + - net_sched: Fix stack info leak in cbq_dump_wrr(). + - af_key: more info leaks in pfkey messages + - net_sched: info leak in atm_tc_dump_class() + - 8139cp: Add dma_mapping_error checking + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.7 + - [powerpc] Save the TAR register earlier + - [powerpc] tm: Fix context switching TAR, PPR and DSCR SPRs + - ext4: make sure group number is bumped after a inode allocation race + - regmap: cache: Make sure to sync the last register in a block + - hwmon: (adt7470) Fix incorrect return code check + - media: em28xx: fix assignment of the eeprom data + - ACPI / PM: Walk physical_node_list under physical_node_lock + - ALSA: 6fire: fix DMA issues with URB transfer_buffer usage + - Btrfs: release both paths before logging dir/changed extents + - LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs + - SUNRPC: Don't auto-disconnect from the local rpcbind socket + - SUNRPC: If the rpcbind channel is disconnected, fail the call to + unregister + - virtio/console: Quit from splice_write if pipe->nrbufs is 0 + - virtio/console: Add pipe_lock/unlock for splice_write + - virtio: console: fix race with port unplug and open/close + - virtio: console: fix race in port_fops_open() and port unplug + - virtio: console: clean up port data immediately at time of unplug + - virtio: console: fix raising SIGIO after port unplug + - virtio: console: return -ENODEV on all read operations after unplug + - drm/radeon: stop sending invalid UVD destroy msg + - ext4: flush the extent status cache during EXT4_IOC_SWAP_BOOT + - cifs: extend the buffer length enought for sprintf() using + - zram: allow request end to coincide with disksize + - reiserfs: fix deadlock in umount + - [x86] drm/i915: initialize gt_lock early with other spin locks + + [ Ben Hutchings ] + * [x86] Enable ASUS_OLED as module (Closes: #680016) + * [armel/orion5x] I2C: mv64xxx: fix race between FSM/interrupt and process + context (Closes: #622325) + * [rt] Update to 3.10.6-rt3 + - hpsa: fix warning with smp_processor_id() in preemptible + * [arm] Change SERIAL_8250_PCI from built-in to module + * net: Change WIZNET_W5{1,3}00 from built-in(!) to module + * net: Change DROP_MONITOR from built-in to module + * netlink: Change NETLINK_DIAG from built-in to module; enable on + armel/{iop32x,ixp4xx,orion5x} + + [ Thorsten Glaser ] + * [m68k] debian/patches/bugfix/m68k/atari-irqs.patch: patch from mailing list + to silence IRQ problems on Atari platforms with multi-platform kernel + * [m68k] debian/patches/bugfix/m68k/type-fix-div64.patch: patch from Andreas + Schwab to handle do_div being called with a non-u32 second argument + * [m68k] begin working on d-i kernel configs (just enough to not FTBFS) + + -- Ben Hutchings Sat, 17 Aug 2013 22:35:15 +0200 + +linux-tools (3.10-3) unstable; urgency=low + + * linux-kbuild: Fix no-modules case in modpost wrapper (Closes: #719129) + + -- Ben Hutchings Thu, 08 Aug 2013 21:49:02 +0200 + +linux (3.10.5-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.4 + - ipv6,mcast: always hold idev->lock before mca_lock + - ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET + pending data (CVE-2013-4162) + - ipv6: ip6_append_data_mtu did not care about pmtudisc and frag_size + (CVE-2013-4163) + - sunvnet: vnet_port_remove must call unregister_netdev + - ipv6: only static routes qualify for equal cost multipathing + (CVE-2013-4125) + - atl1e: fix dma mapping warnings + - atl1e: unmap partially mapped skb on dma error and free skb + - vlan: mask vlan prio bits + - vlan: fix a race in egress prio management + - fuse: readdirplus: fix dentry leak + - fuse: readdirplus: fix instantiate + - fuse: readdirplus: sanity checks + - bcache: Fix a dumb race + - bcache: Advertise that flushes are supported + - bcache: Shutdown fix (possibly fixes #715019) + - bcache: Fix a sysfs splat on shutdown + - bcache: Journal replay fix + - ext4: fix error handling in ext4_ext_truncate() + - media: saa7134: Fix unlocked snd_pcm_stop() call + - media: dmxdev: remove dvb_ringbuffer_flush() on writer side + - lockd: protect nlm_blocked access in nlmsvc_retry_blocked + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.5 + - mm: fix the TLB range flushed when __tlb_remove_page() runs out of slots + - iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow + - iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED + - iscsi-target: Fix ISCSI_OP_SCSI_TMFUNC handling for iser + - firewire: fix libdc1394/FlyCap2 iso event regression + - SCSI: sd: fix crash when UA received on DIF enabled device + - tracing: Remove locking trace_types_lock from + tracing_reset_all_online_cpus() + - usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with + xhci 1.0 + - xhci: fix null pointer dereference on ring_doorbell_for_active_rings + - xhci: Avoid NULL pointer deref when host dies. + - staging: comedi: fix a race between do_cmd_ioctl() and read/write + - Btrfs: fix wrong write offset when replacing a device + - Btrfs: fix lock leak when resuming snapshot deletion + - Btrfs: re-add root to dead root list if we stop dropping it + - xen-netfront: pull on receive skb may need to happen earlier + - md: Remove recent change which allows devices to skip recovery. + - md/raid1: fix bio handling problems in process_checks() + - md/raid5: fix interaction of 'replace' and 'recovery'. + - md/raid10: remove use-after-free bug. + - svcrdma: underflow issue in decode_write_list() + - nfsd: nfsd_open: when dentry_open returns an error do not propagate as + struct file + - ACPI / scan: Do not try to attach scan handlers to devices having them + - drm/radeon: fix endian issues with DP handling (v3) + - drm/radeon: fix combios tables on older cards + - drm/i915: fix up ring cleanup for the i830/i845 CS tlb w/a + - drm/i915: Fix write-read race with multiple rings + - Partially revert "drm/i915: unconditionally use mt forcewake on hsw/ivb" + - drm/i915: Fix incoherence with fence updates on Sandybridge+ + - drm/i915: fix long-standing SNB regression in power consumption after resume v2 + - drm/i915: Fix dereferencing invalid connectors in is_crtc_connector_off() + - drm/i915: correctly restore fences with objects attached + - drm/i915: Serialize almost all register access + - drm/radeon/atom: initialize more atom interpretor elements to 0 + - mm: mempolicy: fix mbind_range() && vma_adjust() interaction + - tty_port: Fix refcounting leak in tty_port_tty_hangup() + - vfs: livelock avoidance in sget() + - iscsi-target: Fix iscsit_add_reject* usage for iser + - drm/i915: Correct obj->mm_list link to + dev_priv->dev_priv->mm.inactive_list + + [ Ben Hutchings ] + * [hppa] udeb: Add core-modules package (Closes: #718270) + * nl80211: fix another nl80211_fam.attrbuf race + * Bump ABI to 2 + * ext4: fix retry handling in ext4_ext_truncate() + * atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring + (Closes: #718505) + * [rt] genpatch.py: Accept missing series-rt + * [rt] Update to 3.10.4-rt1 and reenable + * [rt] genpatch.py: Fix parsing of upstream patches with no header + * aufs: Update to aufs3.10-20130805 + * [rt] md: Disable BCACHE, as it fails to build + * SCSI: Don't attempt to send extended INQUIRY command if skip_vpd_pages is + set (Closes: #719002) + + -- Ben Hutchings Wed, 07 Aug 2013 22:38:45 +0200 + +linux (3.10.3-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.2 + - CIFS: Fix a deadlock when a file is reopened + - jbd2: move superblock checksum calculation to jbd2_write_superblock() + - jbd2: fix theoretical race in jbd2__journal_restart + - ext4: fix corruption when online resizing a fs with 1K block size + - ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() + - ext4: check error return from ext4_write_inline_data_end() + - xhci: check for failed dma pool allocation + - [x86] drivers: hv: switch to use mb() instead of smp_mb() + - cgroup: fix umount vs cgroup_event_remove() race + - cgroup: fix RCU accesses to task->cgroups + - [hppa] Fix gcc miscompilation in pa_memcpy() + - [hppa] Ensure volatile space register %sr1 is not clobbered + - genirq: Fix can_request_irq() for IRQs without an action + (Closes: #709647) + - [x86] ACPI: Fix HP Folio 13 EC register access (Closes: #684186) + + ACPI: Add CMOS RTC Operation Region handler support + + ACPI / EC: Add HP Folio 13 to ec_dmi_table in order to skip DSDT scan + - ocfs2: xattr: fix inlined xattr reflink + - iwlwifi: pcie: fix race in queue unmapping + - Btrfs: fix estale with btrfs send + - Btrfs: hold the tree mod lock in __tree_mod_log_rewind + - Btrfs: only do the tree_mod_log_free_eb if this is our last ref + - ext4: fix data offset overflow on 32-bit archs in + ext4_inline_data_fiemap() + - ext4: fix overflows in SEEK_HOLE, SEEK_DATA implementations + - ext4: fix data offset overflow in ext4_xattr_fiemap() on 32-bit archs + - ext4: fix overflow when counting used blocks on 32-bit architectures + - ext4: fix ext4_get_group_number() + - ext4: don't allow ext4_free_blocks() to fail due to ENOMEM + - [arm] 7767/1: let the ASID allocator handle suspended animation + - [arm] 7768/1: prevent risks of out-of-bound access in ASID allocator + - [arm] 7769/1: Cortex-A15: fix erratum 798181 implementation + - [arm] 7778/1: smp_twd: twd_update_frequency need be run on all online CPUs + - [armhf] dts: imx: cpus/cpu nodes dts updates + - [armhf] drivers/dma/pl330.c: fix locking in pl330_free_chan_resources() + - memcg, kmem: fix reference count handling on the error path + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.3 + - cpufreq: Revert commit a66b2e to fix suspend/resume regression + - iio: Fix iio_channel_has_info + - iio: inkern: fix iio_convert_raw_to_processed_unlocked + - ALSA: seq-oss: Initialize MIDI clients asynchronously + - ALSA: Fix unlocked snd_pcm_stop() calls in various drivers + - libata-zpodd: Use ata_tf_init() to select the right device + - md/raid10: fix bug which causes all RAID10 reshapes to move no data. + - md/raid10: fix two bugs affecting RAID10 reshape. + - md/raid10: fix two problems with RAID10 resync. (Closes: #717681) + - mac80211: close AP_VLAN interfaces before unregistering all + - svcrpc: fix failures to handle -1 uid's + - svcrpc: fix handling of too-short rpc's + - drm/i915: Fix context sizes on HSW + - drm/i915: Only clear write-domains after a successful wait-seqno + - drm/gem: fix not to assign error value to gem name + - drm/nv50-/disp: Use output specific mask in interrupt (Closes: #717590) + - iommu/amd: Only unmap large pages from the first pte + - MIPS: Octeon: Don't clobber bootloader data structures. + - perf: Clone child context from parent context pmu + - perf: Remove WARN_ON_ONCE() check in __perf_event_enable() for valid + scenario + - perf: Fix perf_lock_task_context() vs RCU + - tracing: Protect ftrace_trace_arrays list in trace_events.c + - tracing: Fix race between deleting buffer and setting events + + [ Arnaud Patard ] + * udeb: add ehci-pci to usb-modules + + [ Ben Hutchings ] + * udeb: Add snd-cmi8328 and snd-scs1x to sound-modules, thanks to + Samuel Thibault (Closes: #717183) + * be2net: Fix to avoid hardware workaround when not needed + * iwlwifi: Update 3160 and 7260 support to work with production firmware + * rtlwifi: rtl8723ae: Fix typo in firmware names + * [x86] Change INTEL_MEI_ME back to a module (Closes: #717383) + * [armhf/armmp] Enable NET_CALXEDA_XGMAC as module (Closes: #717269) + * linux-source: Switch compression of tarball and patch to xz. Disable + compression of package (but use gzip, to keep old tools happy). + * linux-source: Install kernel config files for linux-image packages in + /usr/src/linux-config-$UPSTREAMVERSION directory + * ata: Disable SATA_INIC162X - this driver corrupts data and is not + expected to be fixed (Closes: #714295) + * writeback: Fix periodic writeback after fs mount + * sfc: Fix memory leak when discarding scattered packets + * neighbour: fix a race in neigh_destroy() + * virtio: support unlocked queue poll + * virtio_net: fix race in RX VQ processing + * vhost-net: fix use-after-free in vhost_net_flush + * tuntap: correctly linearize skb when zerocopy is used + * macvtap: correctly linearize skb when zerocopy is used + * ipv6: in case of link failure remove route directly instead of + letting it expire + * 9p: fix off by one causing access violations and memory corruption + + [ Thorsten Glaser ] + * Update m68k configs (Closes: #717689): + - disable some functionality due to size constraints + - switch to using initrd + - drop all flavours; build a generic image that runs on + multiple subarchitectores (old Amiga, Atari, Macintosh tested; + old BVME6000, MVME147, MVME16x, new Apollo, Q40/Q60 untested) + - use gcc-4.8 + - add patch to make Atari EtherNAT actually selectable + * nfs: Enable swap on NFS + * fs/nls: Enable Macintosh HFS+ codepage modules + * debian/control: Fix Vcs-Svn: use anonscm.debian.org + + -- Ben Hutchings Sun, 28 Jul 2013 00:33:32 +0100 + +linux-tools (3.10-2) unstable; urgency=low + + * linux-kbuild: Fix use of getline() in modpost wrapper (Closes: #717195) + + -- Ben Hutchings Thu, 18 Jul 2013 04:02:11 +0100 + +linux-tools (3.10-1) unstable; urgency=low + + * New upstream release + + [ Chris Boot ] + * Update modpost-symbol-prefix.patch for 3.10 + + [ Ben Hutchings ] + * debian/patches: Add DEP-3 headers (From, Subject, Forwarded) to all patches + * debian/copyright: Convert to machine-readable format (fka DEP-5) + * debian/copyright: Add explanation of indirect linking of perf to OpenSSL + * debian/rules.real: Remove support for pre-multiarch dpkg + * Update policy version to 3.9.4 + - debian/rules: Implement build-arch and build-indep targets + * linux-kbuild: Update modpost wrapper for 3.10 + - Implement the -T option + + -- Ben Hutchings Tue, 16 Jul 2013 13:29:22 +0100 + +linux (3.10.1-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.10 + - netfilter: nf_nat_sip: fix mangling (Closes: #715822) + - drm/i915: Add HPD IRQ storm detection (Closes: #572537) + - ipv6: ip6_sk_dst_check() must not assume ipv6 dst (CVE-2013-2232) + - af_key: fix info leaks in notify messages (CVE-2013-2234) + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.10.1 + - libceph: Fix NULL pointer dereference in auth client code (CVE-2013-1059) + - ceph: fix sleeping function called from invalid context. + - libceph: fix invalid unsigned->signed conversion for timespec encoding + - module: do percpu allocation after uniqueness check. No, really! + - charger-manager: Ensure event is not used as format string + - hpfs: better test for errors + - crypto: sanitize argument for format string + - MAINTAINERS: add stable_kernel_rules.txt to stable maintainer information + - futex: Take hugepages into account when generating futex_key + - tty: Reset itty for other pty + - Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - NFSv4.1 end back channel session draining + - nfsd4: fix decoding of compounds across page boundaries + - KVM: VMX: mark unusable segment as nonpresent + - SCSI: sd: Fix parsing of 'temporary ' cache mode prefix + - cpufreq: Fix cpufreq regression after suspend/resume + - Revert "memcg: avoid dangling reference count in creation failure" + + [ Ben Hutchings ] + * cassini: Make missing firmware non-fatal (Closes: #714128) + * debian/patches: Add DEP-3 headers (From/Author, Subject/Description, + Forwarded/Origin) to all patches + * aufs: Add DEP-3 headers to generated/copied patches + * [rt] genpatch.py: Work with upstream patch series as well as git + - Fold convert-series into genpatch.py + * [rt] genpatch.py: Add Origin header to all patches + * debian/bin/check-patches.sh: Report missing DEP-3 headers + * alx: Use upstream minimal driver + - Update to 3.11-rc1 + * [x86] efivars: Reenable 'paranoid' size check by default, as it should + no longer have false positives + * debian/patches: Reorder and group patches in series + * debian/rules.real: Remove support for pre-multiarch dpkg + * Update policy version to 3.9.4 + - debian/control: Put xen-linux-system-* in the 'metapackages' section + * linux-source: Add bc to recommended packages (Closes: #715413) + * udeb: Add ath6kl_usb and mwifiex_usb to nic-wireless-modules + * udeb: Add pm80xx (previously pm8001) to scsi-extra-modules + * udeb: Add virtio_scsi to virtio-modules + * Set ABI to 1 + * xen/blkback: Check device permissions before allowing OP_DISCARD + (CVE-2013-2140) + * udeb: Remove obsolete and unsupported drivers and filesystems + - Remove ppa from scsi-modules + - Remove floppy-modules, irda-modules, parport-modules, plip-modules, + qnx4-modules, reiserfs-modules, ufs-modules + * [x86] efivars: Re-enable pstore support by default. It can be disabled + by setting module parameter pstore_disable=Y. + + -- Ben Hutchings Tue, 16 Jul 2013 02:06:53 +0100 + +linux (3.10~rc7-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [armhf/armmp] Add EMAC ethernet driver found on Allwinner A10 SoCs, + thanks to Niall Walsh (Closes: #711998) + - Add MDIO bus driver for the Allwinner EMAC + - Add EMAC controller node to sun4i DTSI + - cubieboard: Enable ethernet (EMAC) support in dts + - Add EMAC Controller to Hackberry dt + * [x86] cpufreq: Enable X86_INTEL_PSTATE (Closes: #712062) + * debian/control: Add Homepage field + * debian/watch: Add watch file and update script + * misc/bmp085: Enable building as a module + * misc: Enable BMP085_I2C as module + * team: Enable NET_TEAM_MODE_RANDOM as module + * 8021q: Enable VLAN_8021Q_MVRP + * batman: Enable BATMAN_ADV_NC + * netlink: Enable NETLINK_MMAP, NETLINK_DIAG [!armel/{iop32x,ixp4xx,orion5x}] + * sctp: Enable SCTP_COOKIE_HMAC_SHA1 + * tipc: Enable TIPC_MEDIA_IB + * [x86] cpufreq: Enable X86_AMD_FREQ_SENSITIVITY as module + * [x86] i2c: Enable I2C_ISMT, I2C_DESIGNWARE_PCI as modules + * [x86] mouse: Enable MOUSE_CYAPA as modules + * [armel/{iop32x,ixp4xx,orion5x}] Disable features to reduce kernel size + - Disable KSM, YAMA + - [armel/orion5x] Disable FTRACE + + -- Ben Hutchings Mon, 24 Jun 2013 14:55:23 +0100 + +linux (3.10~rc5-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [x86] Enable HYPERVISOR_GUEST + * udeb: Clean up configuration: + - Move i2c-algo-bit to i2c-modules + - Remove redundant control file overrides + - [s390] Use symlinks to follow s390x configuration + - [sparc64] Use symlinks to follow sparc configuration + - Only list the 'new' firewire modules in firewire-core-modules + - Remove obsolete eth1394 and firewire-core-modules dependency from + nic-modules + - Move ide-modules and ide-core-modules into ia64 configuration + - [powerpc,x86] Fold nic-extra-modules into nic-modules + * iwlegacy: Use consistent condition for il_pm_ops (fixes FTBFS on ia64) + + -- Ben Hutchings Tue, 11 Jun 2013 04:44:05 +0100 + +linux (3.10~rc4-1~exp1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20130520 + * alx: Update VLAN tag handling for 3.10 + * md: Enable BCACHE as module + * net/usb: Enable USB_RTL8152 as module + - udeb: Add r8152 to nic-usb-modules + * rt2800usb: Enable RT2800USB_RT55XX + * net/wireless: Enable RTL8188EE + - udeb: Add rtl8188ee to nic-wireless-modules + * linux-image: Restore package date (in ISO format) to utsname version + string ('uname -v' output) + + -- Ben Hutchings Mon, 03 Jun 2013 02:43:51 +0100 + +linux (3.9.8-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.7 + - b43: stop format string leaking into error msgs (CVE-2013-2852) + - ACPI / video: Do not bind to device objects with a scan handler + - libceph: must hold mutex for reset_changed_osds() + - ceph: ceph_pagelist_append might sleep while atomic + - rbd: don't destroy ceph_opts in rbd_add() + - Bluetooth: Fix missing length checks for L2CAP signalling PDUs + - kmsg: honor dmesg_restrict sysctl on /dev/kmsg + - memcg: don't initialize kmem-cache destroying work for root caches + - md/raid1: consider WRITE as successful only if at least one non-Faulty + and non-rebuilding drive completed it. + - md/raid1,5,10: Disable WRITE SAME until a recovery strategy is in place + - [x86] Modify UEFI anti-bricking code + - powerpc: Fix stack overflow crash in resume_kernel when ftracing + - USB: pl2303: fix device initialisation at open + - USB: f81232: fix device initialisation at open + - USB: spcp8x5: fix device initialisation at open + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.8 + - ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect + - clk: remove notifier from list before freeing it + - [hppa] make interrupt and interruption stack allocation reentrant + - ACPI / dock: Take ACPI scan lock in write_undock() + - net: fec: fix kernel oops when plug/unplug cable many times + - tcp: fix tcp_md5_hash_skb_data() + - net/802/mrp: fix lockdep splat + - ipv6: fix possible crashes in ip6_cork_release() + - r8169: fix offloaded tx checksum for small packets. + - xfrm: properly handle invalid states as an error + - ip_tunnel: fix kernel panic with icmp_dest_unreach + - net: Block MSG_CMSG_COMPAT in send(m)msg and recv(m)msg + - net: force a reload of first item in hlist_nulls_for_each_entry_rcu + - vhost_net: clear msg.control for non-zerocopy case during tx + - net: sctp: fix NULL pointer dereference in socket destruction + - team: check return value of team_get_port_by_index_rcu() for NULL + - team: move add to port list before port enablement + - l2tp: Fix PPP header erasure and memory leak + - sctp: fully initialize sctp_outq in sctp_outq_init + - macvtap: set transport header before passing skb to lower device + - tuntap: set transport header before passing it to kernel + - packet: set transport header before doing xmit + - netback: set transport header before passing it to kernel + - net_sched: better precise estimation on packet length for untrusted + packets + - firmware loader: fix use-after-free by double abort + - target/iscsi: don't corrupt bh_count in iscsit_stop_time2retain_timer() + - rbd: use the correct length for format 2 object names + - perf: Fix perf mmap bugs + - perf: Fix mmap() accounting hole + + [ Ben Hutchings ] + * yama: Disable ptrace restrictions by default, and change boot message + to indicate this (Closes: #712740) + * fanotify: info leak in copy_event_to_user() (CVE-2013-2148) + * drivers/cdrom/cdrom.c: use kzalloc() for failing hardware (CVE-2013-2164) + * block: do not pass disk names as format strings (CVE-2013-2851) + + -- Ben Hutchings Sat, 29 Jun 2013 18:44:21 +0100 + +linux (3.9.6-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.6 + - xhci - correct comp_mode_recovery_timer on return from hibernate + - usb: musb: make use_sg flag URB specific + - USB: keyspan: fix bogus array index + - [arm] 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across + barrier() + - hpfs: fix warnings when the filesystem fills up + - cifs: fix off-by-one bug in build_unc_path_to_root + - ecryptfs: fixed msync to flush data + - eCryptfs: Check return of filemap_write_and_wait during fsync + - hwmon: (adm1021) Strengthen chip detection for ADM1021, LM84 and MAX1617 + - drm: fix a use-after-free when GPU acceleration disabled + - [powerpc] pseries: Force 32 bit MSIs for devices that require it + - [powerpc] pseries: Make 32-bit MSI quirk work on systems lacking firmware + support + + [ Ben Hutchings ] + * [armel/orion5x] Enable EXPERT; disable FIPS, OABI_COMPAT, PCI_QUIRKS, + VGA_ARB to reduce kernel size (really fixes FTBFS) + + -- Ben Hutchings Sat, 15 Jun 2013 04:53:13 +0100 + +linux (3.9.5-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.5 + - [arm] 7723/1: crypto: sha1-armv4-large.S: fix SP handling + - mac80211: use just spin_lock() in ieee80211_get_tkip_p2k() + - USB: cxacru: potential underflow in cxacru_cm_get_array() + - TTY: Fix tty miss restart after we turn off flow-control + (Closes: #465823) + - cifs: only set ops for inodes in I_NEW state + - drivers/char/random.c: fix priming of last_data + - random: fix accounting race condition with lockless irq entropy_count + update + - fat: fix possible overflow for fat_clusters + - tg3: Fix data corruption on 5725 with TSO + - ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in + ocfs2_fiemap() + - mm compaction: fix of improper cache flush in migration code + - klist: del waiter from klist_remove_waiters before wakeup waitting process + - wait: fix false timeouts when using wait_event_timeout() + - nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary + - mm: mmu_notifier: re-fix freed page still mapped in secondary MMU + - mm: memcg: remove incorrect VM_BUG_ON for swap cache pages in uncharge + - mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas + - mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer + - module: don't unlink the module until we've removed all exposure. + - xfs: kill suid/sgid through the truncate path. + - SUNRPC: Prevent an rpc_task wakeup race + - cifs: fix potential buffer overrun when composing a new options string + - cgroup: initialize xattr before calling d_instantiate() + - [powerpc] 32bit:Store temporary result in r0 instead of r8 + - [powerpc] tm: Fix userspace stack corruption on signal delivery for active + transactions + - [powerpc] tm: Abort on emulation and alignment faults + - iscsi-target: fix heap buffer overflow on error + - KVM: fix sil/dil/bpl/spl in the mod/rm fields + - reiserfs: fix deadlock with nfs racing on create/lookup + - reiserfs: fix problems with chowning setuid file w/ xattrs + - reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry + - jfs: fix a couple races + - IB/iser: Return error to upper layers on EAGAIN registration failures + - fuse: fix readdirplus Oops in fuse_dentry_revalidate + - target: Re-instate sess_wait_list for target_wait_for_sess_cmds + - xen-netback: Fix regressions caused by fix for CVE-2013-0216 + + coalesce slots in TX path and fix regressions + + don't disconnect frontend when seeing oversize packet + + [ Ben Hutchings ] + * [powerpcspe] Remove installer udebs (really fixes FTBFS) + * [s390] Add pgste to ptep_modify_prot_start() + * [s390] Enable PCI, PCI and USB drivers + * [powerpc] Fix build error in stable/3.9 + * [armel/iop32x,armel/ixp4xx] Disable OABI_COMPAT, PCI_QUIRKS to reduce + kernel size (fixes FTBFS) + * ath9k: Disable PowerSave by default (Closes: #695968) + * [i386] udeb: Add viafb to fb-modules (Closes: #705788) + - [i386] udeb: Move i2c-algo-bit to i2c-modules and make fb-modules + depend on it + - viafb: Autoload on OLPC XO 1.5 only + * fs: Enable F2FS_FS as module (Closes: #711342) + * iio,HID: Enable IIO, HID_SENSOR_HUB, HID_SENSOR_ACCEL_3D, + HID_SENSOR_ALS, HID_SENSOR_GYRO_3D, HID_SENSOR_MAGNETOMETER_3D + as modules (Closes: #711690) + + -- Ben Hutchings Mon, 10 Jun 2013 02:41:53 +0100 + +linux-tools (3.9.4-1) unstable; urgency=low + + * New upstream release + + -- Ben Hutchings Mon, 03 Jun 2013 13:45:52 +0100 + +linux (3.9.4-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.9 + - ALSA: hda - Add generic parser support to Analog Device codec driver + (Closes: #659033) + - Input: add support for Cypress PS/2 Trackpads (Closes: #703607) + - [armel] media: VIDEO_ZORAN is disabled as it requires virt_to_bus() + - [armhf/omap] OMAP_MBOX_FWK and TIDSPBRIDGE is disabled as they are + not yet compatible with ARM multiplatform + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.9.4 + + [ Ben Hutchings ] + * [rt] Disable until it is updated for Linux 3.9 or later + * Build-Depend on bc, needed to build kernel/timeconst.h + * [x86] Enable VMWARE_VMCI, VSOCKETS, VMWARE_VMCI_VSOCKETS as modules + (Closes: #707676) + * README.Debian: Correct reference to Berkeley Database development package + * aufs: Update to aufs3.9-20130506 + * [powerpcspe] Prevent building uImage with missing mkimage, thanks to + Roland Stigge (Closes: #708094) + * udeb: Fix yet more configuration errors causing FTBFS: + - [powerpc/powerpc64] Replace ibmvscsic with ibmvscsi in scsi-modules + - [ppc64] Use symlinks to follow powerpc/powerpc64 configuration + - [powerpcspe] Use symlinks to follow powerpc configuration + (Closes: #708336, #708662) + - Add raid6_pq to md-modules, and make btrfs-modules depend on it + * netfilter: Enable NETFILTER_XT_MATCH_BPF, NETFILTER_XT_MATCH_CONNLABEL + as modules + * bridge: Enable BRIDGE_VLAN_FILTERING + * batman: Enable BATMAN_ADV_DAT + * nfc: Enable NFC_LLCP + * can: Enable CAN_PEAK_USB, CAN_8DEV_USB as modules + * hci_uart: Enable BT_HCIUART_3WIRE + * [amd64,powerpc/powerpc64,ppc64] block: Enable BLK_DEV_RSXX as module + * SCSI: Enable SCSI_CHELSIO_FCOE, SCSI_MPT3SAS, SCSI_UFSHCD as modules + - udeb: Add csiostor, mpt3sas, ufshcd, ufshcd-pci to scsi-extra-modules + * md: Enable DM_CACHE as module + * net/usb: Enable USB_NET_AX88179_178A as module (Closes: #704129) + - udeb: Add ax88179_178a to nic-usb-modules + * net/wireless: Enable AR5523 (Closes: #701777), IWLMVM, + RTL8723AE (Closes: #708348), WIL6210 as modules + - udeb: Add ar5523, iwldvm, iwlmvm, rtl8723ae, wil6210 to + nic-wireless-modules + * serial: Enable SERIAL_RP2 as module + - udeb: Add rp2 to serial-modules + * hw_random: Enable HW_RANDOM_TPM as module + * [x86] watchdog: Enable IE6XX_WDT, VIA_WDT as modules + * media/usb: Enable DVB_USB_AZ6007, USB_GSPCA_JL2005BCD as modules + * stk1160: Enable VIDEO_STK1160_AC97 + * ivtv: Enable VIDEO_IVTV_ALSA as module + * radio: Enable RADIO_SHARK, RADIO_SHARK2, USB_KEENE, USB_MA901 as modules + * hda: Enable SND_HDA_CODEC_CA0132_DSP + * sound/firewire: Enable SND_SCS1X as module + * hid-holtek: Enable HOLTEK_FF + * hid: Enable HID_ICADE, HID_PS3REMOTE, HID_STEELSERIES, HID_THINGM as + modules + * usb/serial: Enable USB_SERIAL_F81232, USB_SERIAL_METRO, USB_SERIAL_QT2, + USB_SERIAL_XSENS_MT, USB_SERIAL_ZTE as modules + - udeb: Add f81232, quatech2, zte_ev to usb-serial-modules + * infiniband: Enable INFINIBAND_OCRDMA as module + * [x86] vfio: Enable VFIO, VFIO_PCI as modules + * [x86] hv: Enable HYPERV_BALLOON as module + * security: Enable SECURITY_YAMA, SECURITY_YAMA_STACKED (Closes: #704750) + * iscsi-target: fix heap buffer overflow on error (CVE-2013-2850) + + [ Aurelien Jarno ] + * [mips] Enable KEXEC. + + [ Arnaud Patard ] + * [armhf] Add armmp flavour + * [armhf] backport usb support for imx53 through chipidea and usb phy nop fixes + * [armhf] backport armada 370/xp thermal support + * [armhf] fix hard freeze when mvneta is used as module + * [arm] backport ehci split patches for omap and orion + * [armel] enable thermal + * [armel] kirkwood: enable more DT configs, thermal, POWER_RESET_* + + -- Ben Hutchings Sat, 01 Jun 2013 23:13:01 +0100 + +linux (3.8.13-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.13 + - autofs - remove autofs dentry mount check + - hugetlbfs: fix mmap failure in unaligned size request + (fixes regression in 3.4) + - perf/x86/intel/lbr: Fix LBR filter + - perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL + - ipvs: ip_vs_sip_fill_param() BUG: bad check of return value + - netfilter: ctnetlink: don't permit ct creation with random tuple + - ext4: add check for inodes_count overflow in new resize ioctl + - r8169: fix 8168evl frame padding. + - drm/prime: keep a reference from the handle to exported dma-buf (v6) + - Btrfs: compare relevant parts of delayed tree refs + - Btrfs: fix extent logging with O_DIRECT into prealloc + - kernel/audit_tree.c: tree will leak memory when failure occurs in + audit_trim_trees() + + [ Ben Hutchings ] + * udeb: Fix more configuration errors causing FTBFS: + - [m68k,mips,mipsel,ppc64,sparc64] Add crc-modules as common dependency + of btrfs-modules and xfs-modules (and others) + - [powerpc] Add llc to nic-shared-modules + * Bump ABI to 2 + + -- Ben Hutchings Thu, 16 May 2013 00:28:04 +0100 + +linux (3.8.12-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.12 + - [powerpc] spufs: Initialise inode->i_ino in spufs_new_inode() + (possibly fixes: #707175) + - iwlwifi: fix freeing uninitialized pointer + - tty: fix up atime/mtime mess, take three + - sysfs: fix use after free in case of concurrent read/write and readdir + - [ia64] Fix initialization of CMCI/CMCP interrupts + - [ia64] Wrong asm register contraints in the futex implementation + (Closes: #702641) + - [ia64] Wrong asm register contraints in the kvm implementation + (Closes: #702639) + - fs/fscache/stats.c: fix memory leak + - hrtimer: Fix ktime_add_ns() overflow on 32bit architectures + - swap: redirty page if page write fails on swap file + - mm: swap: mark swap pages writeback before queueing for direct IO + - ACPI: Fix wrong parameter passed to memblock_reserve + - cgroup: fix an off-by-one bug which may trigger BUG_ON() + - cgroup: fix broken file xattrs + - clockevents: Set dummy handler on CPU_DEAD shutdown (Closes: #700333) + - inotify: invalid mask should return a error number but not set it + (fixes regression in 3.8.1) + - exec: do not abuse ->cred_guard_mutex in threadgroup_lock() + - md: bad block list should default to disabled. + - MD: ignore discard request for hard disks of hybid raid1/raid10 array + (fixes regression in 3.6) + - nfsd4: don't close read-write opens too soon + - wireless: regulatory: fix channel disabling race condition + - ext4/jbd2: don't wait (forever) for stale tid caused by wraparound + - jbd2: fix race between jbd2_journal_remove_checkpoint and + ->j_commit_callback + - ext4: fix journal callback list traversal + - ext4: fix big-endian bug in metadata checksum calculations + - [x86] KVM: X86 emulator: fix source operand decoding for 8bit mov[zs]x + instructions + + [ Ben Hutchings ] + * [rt] Remove xen-linux-system packages and references to Xen support, + as Xen does not support real-time scheduling + * udeb: Fix configuration errors causing FTBFS: + - [armhf/vexpress] Remove ipv6-modules; ipv6 is now built-in + - [mipsel/sb1-bcm91250a,sparc] Add crc-modules as common dependency of + btrfs-modules and xfs-modules (and others) + - [powerpc] Add nic-shared-modules as common dependency of nic-modules + and nic-extra-modules + - Unify module list for nic-shared-modules across architectures [!m68k] + * [rt] Update to 3.8.11-rt8: + - time/timekeeping: shadow tk->cycle_last together with clock->cycle_last + - sched/workqueue: Only wake up idle workers if not blocked on sleeping + spin lock + * aufs: Update to aufs3.8-20130506 + - for linux-3.7, btrfs limits the link count explicitly + - for linux-3.6, push mnt_want_write() outside of i_mutex + - possible bugfix, make sure the target branch is upper + - possible bugfix, error handling in reopen_nondir() + - new copyup implementation + - pin the branch dir + - convert the plink list into hlist + * linux-doc: Include aufs documentation + * [x86] zsmalloc: Change to built-in, as it can no longer be modular + + -- Ben Hutchings Fri, 10 May 2013 04:46:36 +0100 + +linux-tools (3.8.11-1) unstable; urgency=low + + * New upstream stable update + + [ Ben Hutchings ] + * Upload to unstable (Closes: #707023) + + -- Ben Hutchings Tue, 07 May 2013 02:11:16 +0100 + +linux (3.8.11-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.6 + - sysfs: fix race between readdir and lseek + - sysfs: handle failure path correctly for readdir() + - rtlwifi: usb: add missing freeing of skbuff + - b43: A fix for DMA transmission sequence errors + - tg3: fix length overflow in VPD firmware parsing (CVE-2013-1929) + - xen-blkback: fix dispatch_rw_block_io() error path + - net/irda: add missing error path release_sock call + - usb: xhci: Fix TRB transfer length macro used for Event TRB. + - Btrfs: fix locking on ROOT_REPLACE operations in tree mod log + - Btrfs: fix race between mmap writes and compression + - USB: serial: fix use-after-free in TIOCMIWAIT + - loop: prevent bdev freeing while device in use + - virtio: console: add locking around c_ovq operations + - nfsd4: reject "negative" acl lengths + - Btrfs: fix space leak when we fail to reserve metadata space + - net: remove a WARN_ON() in net_enable_timestamp() + - 8021q: fix a potential use-after-free + - unix: fix a race condition in unix_release() + - atl1e: drop pci-msi support because of packet corruption + (possibly fixes: #577747) + - ipv6: fix bad free of addrconf_init_net + - ipv6: don't accept multicast traffic with scope 0 + - ipv6: don't accept node local multicast traffic from the wire + - pch_gbe: fix ip_summed checksum reporting on rx + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.7 + - drm/nouveau: fix handling empty channel list in ioctl's + - drm/i915: Be sure to turn hsync/vsync back on at crt enable (v2) + (fixes regression in 3.8.3) + - drm: correctly restore mappings if drm_open fails + - mm: prevent mmap_cache race in find_vma() + - mwifiex: limit channel number not to overflow memory + - spinlocks and preemption points need to be at least compiler barriers + - crypto: gcm - fix assumption that assoc has one segment + - NFSv4/4.1: Fix bugs in nfs4[01]_walk_client_list + - vfio-pci: Fix possible integer overflow + - can: gw: use kmem_cache_free() instead of kfree() + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.8 + - ipc: set msg back to -EAGAIN if copy wasn't performed + - GFS2: Fix unlock of fcntl locks during withdrawn state + - cifs: Allow passwords which begin with a delimitor (fixes + regression in 3.8) + - [i386] Fix possible incomplete TLB invalidate with PAE pagetables + - sched_clock: Prevent 64bit inatomicity on 32bit systems + - [x86] mm, paravirt: Fix vmalloc_fault oops during lazy MMU updates + - tty: don't deadlock while flushing workqueue + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.9 + - [powerpc] add a missing label in resume_kernel + - [powerpc] kvm/powerpc/e500mc: fix tlb invalidation on cpu migration + - kthread: Prevent unpark race which puts threads on the wrong cpu + - hrtimer: Don't reinitialize a cpu_base lock on CPU_UP + - hugetlbfs: add swap entry check in follow_hugetlb_page() + - kernel/signal.c: stop info leak via the tkill and the tgkill syscalls + - hfsplus: fix potential overflow in hfsplus_file_truncate() + - md: raid1,10: Handle REQ_WRITE_SAME flag in write bios + - [x86] KVM: Allow cross page reads and writes from cached translations. + (fixes regression in fix for CVE-2013-1796) + - hsched: Convert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s + - [armel] Fix kexec by setting outer_cache.inv_all for Feroceon + - ath9k_htc: accept 1.x firmware newer than 1.3 + - mac80211: fix cfg80211 interaction on auth/assoc request + - crypto: algif - suppress sending source address information in recvmsg + (CVE-2013-3076) + - vm: add and use vm_iomap_memory() helper function + - Btrfs: make sure nbytes are right after log replay + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.10 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.11 + - TTY: do not update atime/mtime on read/write + - TTY: fix atime/mtime regression + - [sparc] sparc64: Fix race in TLB batch processing. + - atm: update msg_namelen in vcc_recvmsg() (CVE-2013-3222) + - ax25: fix info leak via msg_name in ax25_recvmsg() (CVE-2013-3223) + - Bluetooth: fix possible info leak in bt_sock_recvmsg() (CVE-2013-3224) + - Bluetooth: RFCOMM - Fix missing msg_namelen update in + rfcomm_sock_recvmsg() (CVE-2013-3225) + - Bluetooth: SCO - Fix missing msg_namelen update in sco_sock_recvmsg() + - caif: Fix missing msg_namelen update in caif_seqpkt_recvmsg() + (CVE-2013-3227) + - irda: Fix missing msg_namelen update in irda_recvmsg_dgram() + (CVE-2013-3228) + - [s390] iucv: Fix missing msg_namelen update in iucv_sock_recvmsg() + (CVE-2013-3229) + - l2tp: fix info leak in l2tp_ip6_recvmsg() + - llc: Fix missing msg_namelen update in llc_ui_recvmsg() (CVE-2013-3231) + - netrom: fix info leak via msg_name in nr_recvmsg() + - NFC: llcp: fix info leaks via msg_name in llcp_sock_recvmsg() + - rose: fix info leak via msg_name in rose_recvmsg() (CVE-2013-3234) + - tipc: fix info leaks via msg_name in recv_msg/recv_stream + (CVE-2013-3235) + - atl1e: limit gso segment size to prevent generation of wrong ip length + fields (Closes: #565404) + - af_unix: If we don't care about credentials coallesce all messages + - ipv6/tcp: Stop processing ICMPv6 redirect messages + - rtnetlink: Call nlmsg_parse() with correct header length + - tcp: incoming connections might use wrong route under synflood + - tcp: Reallocate headroom if it would overflow csum_start + - net: cdc_mbim: remove bogus sizeof() + - net: fix incorrect credentials passing (CVE-2013-1979) + - net: drop dst before queueing fragments + + [ Ben Hutchings ] + * [rt] Update to 3.8.10-rt6 + * aufs: Update to aufs3.8-20130325 + - ftruncate() supports sb_{start,end}_write() + - replace mnt_drop_write_file() by __mnt_drop_write() + - support for vfs_truncate() + * udeb: Move modules and adjust dependencies to avoid duplicates + (Closes: #706646) + - Move crc16 to crc-modules; make ext4-modules and nic-usb-modules depend + on it + - Make xfs-modules depends on crc-modules + - Move pps_core and ptp to nic-common-modules or nic-modules as appropriate + * udeb: Merge redundant configuration for ext{2,3} dependency on mbcache + * Set ABI to 1 + * bug script: Remove broken sound functions (Closes: #705619) + * [i386/486] udeb: Add lxfb to fb-modules (Closes: #705780) + + -- Ben Hutchings Sat, 04 May 2013 21:45:23 +0100 + +linux (3.8.5-1~experimental.1) experimental; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.4 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.5 + + [ Ben Hutchings ] + * signal: Fix use of missing sa_restorer field (build regression + introduced by fix for CVE-2013-0914) + * udeb: Add hid-generic, hid-holtek-kbd, hid-lenovo-tpkbd, + hid-roccat-isku, hid-roccat-lua, hid-roccat-savu to input-modules + * cdc_ncm,cdc_mbim: Use NCM by default + * [rt] Update to 3.8.4-rt2 and reenable + * [rt] wireless: orinoco_usb is BROKEN + + -- Ben Hutchings Sun, 31 Mar 2013 07:35:31 +0100 + +linux (3.8.3-1~experimental.1) experimental; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.3 + + [ Ben Hutchings ] + * aufs: Update to aufs3.8-20130311 + * USB: cdc-wdm: fix buffer overflow (CVE-2013-1860) + * signal: always clear sa_restorer on execve (CVE-2013-0914) + * ext3: Fix format string issues (CVE-2013-1848) + * net/sctp: Validate parameter size for SCTP_GET_ASSOC_STATS (CVE-2013-1828) + * bridge: fix mdb info leaks + * rtnl: fix info leak on RTM_GETLINK request for VF devices + * dcbnl: fix various netlink info leaks + * ALSA: seq: Fix missing error handling in snd_seq_timer_open() + + [ Ian Campbell ] + * arm: correct path to DTB files. Patch from Nobuhiro Iwamatsu. + (Closes: #703082) + + -- Ben Hutchings Tue, 19 Mar 2013 04:52:46 +0000 + +linux-tools (3.8.2-1~experimental.1) experimental; urgency=low + + * New upstream release (Closes: #702450) + + [ Ben Hutchings ] + * linux-tools: Install bash_completion script for perf with a version- + dependent name (Closes: #701790) + + -- Ben Hutchings Thu, 07 Mar 2013 05:32:40 +0000 + +linux (3.8.2-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.8.2 + + [ Ben Hutchings ] + * linux-image: Increase minimum version of initramfs-tools to 0.110~ + which copes with the recently renamed EHCI and NFS modules + * genorig: Accept xz-compressed upstream tarballs and patches, + thanks to Sedat Dilek + * net: Enable USB_NET_CDC_MBIM as module (Closes: #701869) + * mfd,mmc,memstick: Enable MFD_RTSX_PCI, MMC_REALTEK_PCI and + MEMSTICK_REALTEK_PCI as modules, replacing RTS_PSTOR (Closes: #702108) + * [mips,mipsel] Add dependencies for HAVE_ARCH_TRANSPARENT_HUGEPAGE + (fixes FTBFS) + + [ Aurelien Jarno ] + * [mips/octeon] Change HW_RANDOM and HW_RANDOM_OCTEON to modules. + + -- Ben Hutchings Thu, 07 Mar 2013 04:00:04 +0000 + +linux (3.8-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.8 + - pidns: Support unsharing the pid namespace. (Closes: #595920) + - fsnotify: Rework locking and reference counting (Closes: #602966) + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20130204 + * sock_diag: Fix out-of-bounds access to sock_diag_handlers[] + + -- Ben Hutchings Mon, 25 Feb 2013 05:29:53 +0000 + +linux (3.7.8-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.4 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.5 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.6 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.7 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.8 + + [ Ben Hutchings ] + * Add powerpcspe architecture, thanks to Roland Stigge (Closes: #693042) + * aufs: Hide CONFIG_AUFS_PROC_MAP, which requires a patch we don't apply + (Closes: #693332) + + -- Ben Hutchings Fri, 15 Feb 2013 00:42:03 +0000 + +linux (3.7.3-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.3 + + [ Ben Hutchings ] + * [ia64] nouveau: Disable another bit of ACPI support (fixes FTBFS) + * [armhf/omap] Make OMAP_DMA built-in (fixes FTBFS) + * ath6kl: Do not use virt_addr_valid() (fixes FTBFS on mips,mipsel) + * [armel/iop32x,armel/ixp4xx,armel/orion5x] Make IPV6 a module again due + to kernel size limit (fixes FTBFS) + * ALSA: usb-audio: Avoid autopm calls after disconnection; Fix missing + autopm for MIDI input (Closes: #664068) + * [!x86] Disable ZRAM, ZSMALLOC as modules (Reopens: #676779), as they + really aren't portable yet. + * udeb: Remove ipv6-modules on all architectures/flavours where it's + now built-in (fixes FTBFS) + + [ Ian Campbell ] + * [x86/xen] Update microcode driver to use new API. + + -- Ben Hutchings Fri, 18 Jan 2013 01:36:15 +0000 + +linux (3.7.1-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * linux-headers-common: Include the include/uapi/asm-generic directory + (Closes: #696664) + * linux-headers-common: Do not use link-vmlinux.sh when cleaning external + modules (Closes: #696775) + * Enable ZRAM, ZSMALLOC as modules on all architectures (Closes: #676779) + + -- Ben Hutchings Sat, 05 Jan 2013 17:48:05 +0000 + +linux-tools (3.7.1-1~experimental.1) experimental; urgency=low + + * New upstream release + + [ Ben Hutchings ] + * [amd64] linux-tools: Enable optimisations and special-casing of x86_64 + (Closes: #694759) + + [ Uwe Kleine-König ] + * linux-kbuild: debian/control: Use Section: kernel (Closes: #545017) + + -- Jonathan Nieder Fri, 28 Dec 2012 09:29:53 -0800 + +linux (3.7.1-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.7 + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.7.1 + + [ maximilian attems ] + * Enable WIZNET_W5100, WIZNET_W5300, AMD_PHY, BCM87XX_PHY. + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20121210 + * [rt] Disable until it is updated for Linux 3.7 or later + * Make gcc-4.7 the default compiler + * [mips,mipsel,sparc] media/parpot: Disable VIDEO_PMS in all + configurations where the other parport video drivers are disabled + * [x86] fs: Re-enable PSTORE_RAM (formerly known as RAMOOPS) as module + * net/wireless: Enable WL_TI; re-enable WL1251 and WL12XX as modules + * staging: Enable RTLLIB; re-enable RTL8192E as module + * media: Enable IR_TTUSBIR as module, replacing LIRC_TTUSBIR + * media: Enable VIDEO_STK1160 as module, replacing EASYCAP + * [armhf/mx5] Update configuration: + - Enable MACH_IMX51_DT, replacing MACH_MX51_EFIKAMX (but not fully + working in this kernel version) + - Enable SOC_IMX53, replacing MACH_MX53_{EVK,SMD,LOCO,ARD} + - Re-enable MFD_MC13XXX_SPI (formerly included in MFD_MC13XXX) + - Enable PWM and re-enable PWM_IMX (formerly known as MXC_PWM) + * [i386] comedi: Re-enable COMEDI_ISA_DRIVERS + * [i386,alpha] media/radio: Enable V4L_RADIO_ISA_DRIVERS and re-enable + the ISA drivers + * PCI: Enable PCI_REALLOC_ENABLE_AUTO + * [x86] PCI: Enable PCI_PRI, PCI_PASID, PCI_IOAPIC + * [amd64] ACPI: Enable ACPI_BGRT + * net: Enable INET_UDP_DIAG, NET_IPVTI, PACKET_DIAG, UNIX_DIAG as modules + * netfilter: Enable NF_NAT_IPV6, IP6_NF_TARGET_MASQUERADE, IP6_NF_TARGET_NPT, + NF_CT_NETLINK_HELPER as modules + * net/sched: Enable NET_EMATCH_CANID, NET_EMATCH_IPSET as modules + * can: Enable CAN_PEAK_PCIEC, CAN_PEAK_PCMCIA, CAN_PEAK_USB as modules + * [i386] can: Enable CAN_CC770, CAN_CC770_ISA as module + * block: Enable BLK_DEV_NVME, BLK_DEV_PCIESSD_MTIP32XX as modules + * qla2xxx: Enable TCM_QLA2XXX as module + * team: Enable NET_TEAM_MODE_BROADCAST as module + * net: Enable VXLAN as module + * phy: Enable AT803X_PHY as module + * rt2800pci: Enable RT2800PCI_RT3290 + * wireless/ti: Enable WL18XX as module + * ptp: Enable clock drivers along with associated net/PHY drivers + * [!x86] drm: Disable DRM_VMWGFX + * drm: Enable DRM_UDL as module + - Disable autoloading as it is incompatible with older versions of + xserver-xorg-video-displaylink + * [x86] drm: Enable DRM_AST, DRM_MGAG200 as modules + - Disable autoloading as they are incompatible with older versions of + xserver-xorg-video-ast and xserver-xorg-video-mga + + -- Ben Hutchings Mon, 24 Dec 2012 02:50:21 +0000 + +linux (3.6.9-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.9 + + [ maximilian attems ] + * Enable NETFILTER_XT_TARGET_HMARK, NET_EMATCH_IPSET, USB_NET_QMI_WWAN. + * Enable more HID drivers. + * [x86] Enable INTEL_MEI. + * [ARM]: 7492/1: add strstr declaration for decompressors. + + [ Ben Hutchings ] + * HID: Add Apple wireless keyboard 2011 ANSI to special driver list + (Closes: #694546) + + [ Arnaud Patard ] + * [ARM]: add patch from staging-next to fix lis3l02dq on omap + * [ARM]: backport omap usb fixes to make it build again. + * Change musb Kconfig so that our configuration of USB_MUSB_OMAP2PLUS + is used and not set to 'm'. + + -- maximilian attems Wed, 05 Dec 2012 16:16:50 +0100 + +linux (3.6.8-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.7 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.8 + + [ Bastian Blank ] + * Enable POWER_SUPPLY, BLK_DEV_THROTTLING and NETPRIO_CGROUP. + * [amd64] Enable CRYPTO_CAMELLIA_X86_64, CRYPTO_SERPENT_AVX_X86_64 and + CRYPTO_TWOFISH_AVX_X86_64. + * [x86] Enable more platform drivers. + * [s390/s390x-tape, s390x/s390x-tape] Remove not longer supported image + variant. + * [s390, s390x] Enable support for transparent hugepages. + * Use XZ for kernel images if supported. + + [ maximilian attems ] + * Enable DVB_USB_RTL28XXU. (closes: #692749) + * Enable SBP_TARGET. (closes: #685341) + + -- maximilian attems Wed, 28 Nov 2012 18:35:41 +0100 + +linux-tools (3.6-1~experimental.1) experimental; urgency=low + + * New upstream release (Closes: #690011) + + [ Ben Hutchings ] + * genorig: Accept xz-compressed upstream tarballs and patches, and + generate an xz-compressed orig tarball, thanks to Sedat Dilek + * source: Enable xz-compression for debian directory tarball + + [ Jonathan Nieder ] + * Add myself to uploaders list. + + -- Jonathan Nieder Sat, 24 Nov 2012 13:40:28 -0800 + +linux (3.6.6-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.5 + - [x86] mm: Find_early_table_space based on ranges that are actually + being mapped (Closes: #692067) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.6 + - ext4: fix unjournaled inode bitmap modification (Closes: #692411) + + [ Uwe Kleine-König ] + * [rt] bump to 3.6.4-rt10 + + [ Ben Hutchings ] + * [x86] staging: Re-enable ZSMALLOC as module, previously selected by + ZRAM but now a dependency (Closes: #692024) + * fs: Re-enable link security restrictions that are disabled by default + in 3.6.5 + * [rt] Update to 3.6.6-rt17 + * rc: Enable RC_DEVICES; re-enable LIRC; re-enable the drivers that + depend on those; enable IR_SANYO_DECODER and IR_IGUANA as modules + + [ Bastian Blank ] + * [sparc] Remove IP_PNP, IP_PNP_RARP, NET_IPGRE and ARPD overrides. + * Enable IPv6 globally. + + -- Ben Hutchings Thu, 15 Nov 2012 04:49:50 +0000 + +linux (3.6.4-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.6 + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.6.4 + + [ Ben Hutchings ] + * aufs: Update to aufs3.6-20121015 + * cirrus: Disable by default, as it is currently incompatible with + xserver-xorg-video-cirrus. It can be forced to load with module + parameter modeset=1. + + [ Uwe Kleine-König ] + * reenable the rt featureset using 3.6.3-rt8 + + -- Ben Hutchings Mon, 29 Oct 2012 04:22:02 +0000 + +linux (3.5.5-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.4 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.5 + + [ Ben Hutchings ] + * mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver + (Closes: #686040) + * drm: Enable various drivers (Closes: #685479): + - [x86] Enable DRM_GMA500 (previously DRM_PSB) as module + - Enable DRM_CIRRUS_QEMU as module + * media/dvb: Enable DVB_USB_AF9035 as module (Closes: #687050) + + [ Bastian Blank ] + * Remove superfluous dependency in debugging packages. + + -- Bastian Blank Thu, 04 Oct 2012 15:19:30 +0200 + +linux-tools (3.5-1~experimental.1) experimental; urgency=low + + * New upstream release + + -- Ben Hutchings Mon, 20 Aug 2012 00:57:12 +0100 + +linux (3.5.2-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.5.2 + + [ Ben Hutchings ] + * genorig: Fix linux_upstream_full compute for version with modifier, + thanks to Julien Danjou (Closes: #683824) + + -- Ben Hutchings Sun, 19 Aug 2012 21:36:04 +0100 + +linux (3.5-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.5 + + [ Ben Hutchings ] + * net: Enable OPENVSWITCH as module (Closes: #675010) + * aufs: Update to aufs3.5-20120730 + * rt: Disable until it is updated for Linux 3.5 or later + * debian/copyright: Convert to machine-readable format (fka DEP-5) + * debian/copyright: Add copyright notice for newly-added Unicode data + * [x86] seccomp: Enable SECCOMP_FILTER + * [x86] applesmc: Update to Linux 3.6, including fixes for new MacBook models + + -- Ben Hutchings Wed, 01 Aug 2012 14:08:55 +0100 + +linux (3.4.4-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.4 + + [ Ben Hutchings ] + * [ia64] Export to userland (fixes FTBFS) + * [x86] Enable BATTERY_SBS as module (Closes: #662902) + * team: Enable NET_TEAM_MODE_LOADBALANCE as module + * [x32] Build a linux-libc-dev package + * input: Enable MOUSE_SYNAPTICS_USB (Closes: #678071) + * [x86] staging: zsmalloc: Finish conversion to a separate module + (Closes: #677273) + * [rt] Update to 3.4.4-rt13 + + [ Arnaud Patard ] + * [armel] disable FIPS, VGA_ARB, FTRACE on iop32x and ixp4xx to reduce + kernel size. + * [armel] disable virtio modules on all platforms except versatile + * [armel] enable PHYSMAP on all platforms except ixp4xx + + -- Ben Hutchings Tue, 26 Jun 2012 07:28:41 +0100 + +linux-tools (3.4-1~experimental.1) experimental; urgency=low + + * New upstream release + * Build-Depend on bison and flex, now required to build perf + * Fix version insertion in perf man pages + + -- Ben Hutchings Sat, 09 Jun 2012 20:51:12 +0100 + +linux-2.6 (3.4.1-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.4 + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.1 + + [ maximilian attems ] + * Enable DM_VERITY, NF_CONNTRACK_TIMEOUT, NF_CT_NETLINK_TIMEOUT, + IP_NF_MATCH_RPFILTER, IP6_NF_MATCH_RPFILTER, NETFILTER_NETLINK_ACCT, + NETFILTER_XT_MATCH_NFACCT, NET_SCH_PLUG, SCSI_UFSHCD, SCSI_VIRTIO, + NET_TEAM, ATH6KL. + + [ Ben Hutchings ] + * DFSG: Remove the new vs6624 driver, which contains non-free firmware + * aufs: Update to aufs3.4-20120521 + * [rt] Update to 3.4-rt8 and reenable + + -- maximilian attems Wed, 06 Jun 2012 10:25:57 +0200 + +linux-2.6 (3.3.6-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.5 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.6 + - USB: cdc-wdm: fix race leading leading to memory corruption + - autofs: make the autofsv5 packet file descriptor use a packetized pipe + (Closes: #633423) + - PM / Hibernate: fix the number of pages used for hibernate/thaw buffering + (Closes: #659363) + - efi: Validate UEFI boot variables + - efivars: Improve variable validation + - fs/cifs: fix parsing of dfs referrals + - hfsplus: Fix potential buffer overflows (CVE-2012-2319) + - exit_signal: fix the "parent has changed security domain" logic + - net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg + - sky2: fix receive length error in mixed non-VLAN/VLAN traffic + (Closes: #492853) + - [s390] KVM: do store status after handling STOP_ON_STOP bit + - [s390] KVM: Sanitize fpc registers for KVM_SET_FPU + - KVM: Fix write protection race during dirty logging + - KVM: mmu_notifier: Flush TLBs before releasing mmu_lock + - KVM: Ensure all vcpus are consistent with in-kernel irqchip settings + (CVE-2012-1601) + - KVM: nVMX: Fix erroneous exception bitmap check + - KVM: VMX: Fix kvm_set_shared_msr() called in preemptible context + - KVM: lock slots_lock around device assignment + - hugepages: fix use after free bug in "quota" handling + + -- Ben Hutchings Fri, 18 May 2012 03:53:16 +0100 + +linux-2.6 (3.3.4-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.4 + + [ Ben Hutchings ] + * [x86] dell-laptop: Terminate quirks list properly + + -- Ben Hutchings Tue, 01 May 2012 01:23:59 +0100 + +linux-2.6 (3.3.2-1~experimental.1) experimental; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.1 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.2 + + [ Ben Hutchings ] + * [armel/iop32x] Add missing #includes (fixes FTBFS) + + -- Ben Hutchings Sun, 15 Apr 2012 16:36:13 +0100 + +linux-tools (3.3-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + * linux-kbuild: debian/control: Set Multi-Arch: foreign + * linux-tools: Build perf on alpha and hppa (Closes: #664834) + + -- Ben Hutchings Sat, 24 Mar 2012 23:15:59 +0000 + +linux-2.6 (3.3-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.3 + + [ Ben Hutchings ] + * [x86] crypto: Enable CRYPTO_SERPENT_SSE2_586, CRYPTO_SERPENT_SSE2_X86_64 + * aufs: Update to aufs3.x-rcN-20120312 + * IB: Enable INFINIBAND_SRPT as module (Closes: #663041) + + -- Ben Hutchings Wed, 21 Mar 2012 03:08:36 +0000 + +linux-2.6 (3.3~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20120123 + * rt: Disable until it is updated for Linux 3.3 or later + + -- Ben Hutchings Sun, 04 Mar 2012 20:27:42 +0000 + +linux (3.2.41-2) unstable; urgency=low + + * [ia64] udeb: Remove efi-modules package; make kernel-image provide + efi-modules (fixes FTBFS) + * linux-headers: Fix file installation on architectures without + Kbuild.platforms (Closes: #703800) + * [x86] drm/i915: bounds check execbuffer relocation count (CVE-2013-0913) + * [x86] drm: Enable DRM_GMA500 as module, replacing DRM_PSB (Closes: #703506) + - Enable DRM_GMA600, DRM_GMA3600, DRM_MEDFIELD + * [x86] KVM: x86: fix for buffer overflow in handling of MSR_KVM_SYSTEM_TIME + (CVE-2013-1796) + * [x86] KVM: x86: Convert MSR_KVM_SYSTEM_TIME to use gfn_to_hva_cache + functions (CVE-2013-1797) + * KVM: Fix bounds checking in ioapic indirect register reads (CVE-2013-1798) + + -- Ben Hutchings Mon, 25 Mar 2013 15:17:44 +0000 + +linux (3.2.41-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.40 + - ext4: return ENOMEM if sb_getblk() fails + - ext4: fix possible use-after-free with AIO + - s390/kvm: Fix store status for ACRS/FPRS + - staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors + - ext4: fix race in ext4_mb_add_n_trim() + - UBIFS: fix double free of ubifs_orphan objects + - hrtimer: Prevent hrtimer_enqueue_reprogram race + - nfsd: Fix memleak + - x86: Do not leak kernel page mapping locations + - USB: usb-storage: unusual_devs update for Super TOP SATA bridge + - posix-cpu-timers: Fix nanosleep task_struct leak + - NFSv4.1: Don't decode skipped layoutgets + - cgroup: fix exit() vs rmdir() race + - cpuset: fix cpuset_print_task_mems_allowed() vs rename() race + - ext4: fix xattr block allocation/release with bigalloc + - mm: fix pageblock bitmap allocation + - target: Add missing mapped_lun bounds checking during make_mappedlun + setup + - b43: Increase number of RX DMA slots + - posix-timer: Don't call idr_find() with out-of-range ID + - fs: Fix possible use-after-free with AIO + - powerpc/kexec: Disable hard IRQ before kexec + - mmu_notifier_unregister NULL Pointer deref and multiple ->release() + callouts + - tmpfs: fix use-after-free of mempolicy object (CVE-2013-1767) + - ocfs2: fix possible use-after-free with AIO + - ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly + - ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink + - idr: fix a subtle bug in idr_get_next() + - idr: make idr_get_next() good for rcu_read_lock() + - idr: fix top layer handling + - sysctl: fix null checking in bin_dn_node_address() + - nbd: fsync and kill block device on shutdown + - s390/timer: avoid overflow when programming clock comparator + (regression in 3.2.38) + - xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}() + (CVE-2013-0231) + - xen-netback: correctly return errors from netbk_count_requests() + - xen-netback: cancel the credit timer when taking the vif down + - ipv6: use a stronger hash for tcp + - staging: comedi: ni_labpc: correct differential channel sequence for + AI commands + - staging: comedi: ni_labpc: set up command4 register *after* command3 + - vhost: fix length for cross region descriptor (CVE-2013-0311) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.41 + - NFS: Don't allow NFS silly-renamed files to be deleted, no signal + - ARM: VFP: fix emulation of second VFP instruction + - md: fix two bugs when attempting to resize RAID0 array. + - proc connector: reject unprivileged listener bumps + - cifs: ensure that cifs_get_root() only traverses directories + - dm: fix truncated status strings + - hw_random: make buffer usable in scatterlist. (real fix for #701784) + - efi_pstore: Check remaining space with QueryVariableInfo() before + writing data + - efi: be more paranoid about available space when creating variables + (Closes: #703574) + - vfs: fix pipe counter breakage + - xen/pciback: Don't disable a PCI device that is already disabled. + - ALSA: seq: Fix missing error handling in snd_seq_timer_open() + - ext3: Fix format string issues (CVE-2013-1848) + - keys: fix race with concurrent install_user_keyrings() (CVE-2013-1792) + - USB: cdc-wdm: fix buffer overflow (CVE-2013-1860) + - signal: always clear sa_restorer on execve (CVE-2013-0914) + - crypto: user - fix info leaks in report API (CVE-2013-2546, + CVE-2013-2547, CVE-2013-2548) + - Fix: compat_rw_copy_check_uvector() misuse in aio, readv, writev, and + security keys + - batman-adv: bat_socket_read missing checks + - batman-adv: Only write requested number of byte to user buffer + - mm/hotplug: correctly add new zone to all other nodes' zone lists + (CVE-2012-5517) + - btrfs: use rcu_barrier() to wait for bdev puts at unmount + + [ Aurelien Jarno] + * [mips,mipsel] Disable VGA_CONSOLE and ignore the corresponding ABI + change. It is completely broken on MIPS. + * headers: Include Kbuild.platforms and Platform files in -common to + fix out-of-tree building on mips and mipsel. + * [{mips,mipsel}/{4,5}kc-malta] Enable HW_RANDOM as module so that both + flavours have a consistent configuration. + + [ Ben Hutchings ] + * [x86] ata_piix: reenable MS Virtual PC guests (fixes regression in + 3.2.19-1) + * test-patches: Clean up all previous test patches, whether or not they + were applied + * test-patches: Add --fuzz option to allow testing patches that have fuzz + * [x86] efi: Fix processor-specific memcpy() build error (Closes: #698581) + * udeb: Add hid-topseed to input-modules (Closes: #702611) + * [x86] drm/i915: Unconditionally initialise the interrupt workers, + thanks to Bjørn Mork (Closes: #692607) + * efi: Ensure efivars is loaded on EFI systems (Closes: #703363) + - [x86] Use a platform device to trigger loading of efivars + - [ia64] Change EFI_VARS from module to built-in + * efivars: Work around serious firmware bugs + - Allow disabling use as a pstore backend + - Add module parameter to disable use as a pstore backend + * [x86] Set EFI_VARS_PSTORE_DEFAULT_DISABLE=y + - explicitly calculate length of VariableName + - Handle duplicate names from get_next_variable() + * efi_pstore: Introducing workqueue updating sysfs + * efivars: pstore: Do not check size when erasing variable + * efivars: Remove check for 50% full on write + * kmsg_dump: Only dump kernel log in error cases (Closes: #703386) + - kexec: remove KMSG_DUMP_KEXEC + - kmsg_dump: don't run on non-error paths by default + * [x86] i915: initialize CADL in opregion (Closes: #703271) + * drm, agp: Update to 3.4.37: + - drm/radeon/dce6: fix display powergating + - drm: don't add inferred modes for monitors that don't support them + - drm/i915: Increase the RC6p threshold. + * signal: Fix use of missing sa_restorer field (build regression + introduced by fix for CVE-2013-0914) + * rds: limit the size allocated by rds_message_alloc() + * rtnl: fix info leak on RTM_GETLINK request for VF devices + * dcbnl: fix various netlink info leaks + * [s390] mm: fix flush_tlb_kernel_range() + * [powerpc] Fix cputable entry for 970MP rev 1.0 + * vhost/net: fix heads usage of ubuf_info + * udf: avoid info leak on export (CVE-2012-6548) + * isofs: avoid info leak on export (CVE-2012-6549) + * [x86,powerpc/powerpc64] random: Change HW_RANDOM back from built-in to + module, as we now have a real fix for #701784 + * [rt] Update to 3.2.40-rt60 + + -- Ben Hutchings Sat, 23 Mar 2013 03:54:34 +0000 + +linux (3.2.39-2) unstable; urgency=high + + * [s390,s390x] virtio: Ignore ABI changes in 3.2.39 (fixes FTBFS) + * [sparc] drm: Ignore ABI changes in 3.2.39 (fixes FTBFS) + * [sparc] drm: Change from built-in to module + * [rt] Update to 3.2.39-rt59: + - acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t + - printk: Fix rq->lock vs logbuf_lock unlock lock inversion + - wait-simple: Simple waitqueue implementation + - rcutiny: Use simple waitqueue + * [x86] efi: Fix ABI change for introduction of efi_enabled() function + in 3.2.38 (Closes: #701690) + * [armel/versatile] i2c: Re-enable I2C_PCA_PLATFORM as module, erroneously + disabled in 3.2.39-1 (fixes FTBFS) + * [x86,powerpc/powerpc64] random: Change HW_RANDOM from module to built-in, + to work around virtio-rng bug (Closes: #701784) + + -- Ben Hutchings Wed, 27 Feb 2013 03:48:30 +0000 + +linux (3.2.39-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.36 + - freezer: PF_FREEZER_NOSIG should be cleared along with PF_NOFREEZE + (Closes: #697077) + - tmpfs: fix shared mempolicy leak + - virtio: 9p: correctly pass physical address to userspace for high pages + - virtio: force vring descriptors to be allocated from lowmem + - USB: EHCI: bugfix: urb->hcpriv should not be NULL + - rcu: Fix batch-limit size problem + - Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] + (Closes: #700550) + - mvsas: fix undefined bit shift + - ALSA: usb-audio: Avoid autopm calls after disconnection; Fix missing + autopm for MIDI input (Closes: #664068) + - target/file: Fix 32-bit highmem breakage for SGL -> iovec mapping + - SCSI: fix Null pointer dereference on disk error + - proc: pid/status: show all supplementary groups + - nfsd4: fix oops on unusual readlike compound + - ARM: missing ->mmap_sem around find_vma() in swp_emulate.c + - sctp: fix memory leak in sctp_datamsg_from_user() when copy from user + space fails + - ne2000: add the right platform device + - irda: sir_dev: Fix copy/paste typo + - ipv4: ip_check_defrag must not modify skb before unsharing + - telephony: ijx: buffer overflow in ixj_write_cid() + - udf: fix memory leak while allocating blocks during write + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.37 + - ext4: fix extent tree corruption caused by hole punch + - jbd2: fix assertion failure in jbd2_journal_flush() + - tmpfs mempolicy: fix /proc/mounts corrupting memory + - sparc: huge_ptep_set_* functions need to call set_huge_pte_at() + - inet: Fix kmemleak in tcp_v4/6_syn_recv_sock and + dccp_v4/6_request_recv_sock + - net: sched: integer overflow fix + - tcp: implement RFC 5961 3.2 + - tcp: implement RFC 5961 4.2 + - tcp: refine SYN handling in tcp_validate_incoming + - tcp: tcp_replace_ts_recent() should not be called from + tcp_validate_incoming() + - tcp: RFC 5961 5.2 Blind Data Injection Attack Mitigation + - RDMA/nes: Fix for crash when registering zero length MR for CQ + - ACPI : do not use Lid and Sleep button for S5 wakeup + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.38 + - staging: comedi: comedi_test: fix race when cancelling command + - mm: use aligned zone start for pfn_to_bitidx calculation + - [s390] s390/time: fix sched_clock() overflow (Closes: #698382) + - [i386] xen: Fix stack corruption in xen_failsafe_callback for 32bit + PVOPS guests. (CVE-2013-0190) + - KVM: PPC: Emulate dcbf + - evm: checking if removexattr is not a NULL + - ath9k_htc: Fix memory leak + - ath9k: do not link receive buffers during flush + - ath9k: fix double-free bug on beacon generate failure + - x86/msr: Add capabilities check + - can: c_can: fix invalid error codes + - can: ti_hecc: fix invalid error codes + - can: pch_can: fix invalid error codes + - smp: Fix SMP function call empty cpu mask race + - xfs: Fix possible use-after-free with AIO + - EDAC: Test correct variable in ->store function + - samsung-laptop: Disable on EFI hardware, to avoid damaging it + - NFS: Don't silently fail setattr() requests on mountpoints + - intel-iommu: Prevent devices with RMRRs from being placed into SI Domain + - ALSA: usb-audio: Fix regression by disconnection-race-fix patch + (Closes: #696321) + - printk: fix buffer overflow when calling log_prefix function from + call_console_drivers + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.39 + - USB: XHCI: fix memory leak of URB-private data + - sched/rt: Use root_domain of rt_rq not current processor + - mwifiex: fix incomplete scan in case of IE parsing error + - x86-64: Replace left over sti/cli in ia32 audit exit code + - Bluetooth: Fix handling of unexpected SMP PDUs + - ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic + - Fix race condition with PTRACE_SETREGS and fatal signal (CVE-2013-0871) + + ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up() + + ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL + + wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED + task + - net: prevent setting ttl=0 via IP_TTL + - ipv6: fix header length calculation in ip6_append_data() + - netxen: fix off by one bug in netxen_release_tx_buffer() + - r8169: remove the obsolete and incorrect AMD workaround + - net: loopback: fix a dst refcounting issue + - packet: fix leakage of tx_ring memory + - net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree + - net: sctp: sctp_endpoint_free: zero out secret key data + - xen/netback: shutdown the ring if it contains garbage. (CVE-2013-0216) + - xen/netback: don't leak pages on failure in xen_netbk_tx_check_gop. + - xen/netback: free already allocated memory on failure in + xen_netbk_get_requests + - netback: correct netbk_tx_err to handle wrap around. (CVE-2013-0217) + - tcp: frto should not set snd_cwnd to 0 + - tcp: fix for zero packets_in_flight was too broad + - tcp: fix MSG_SENDPAGE_NOTLAST logic + - bridge: Pull ip header into skb->data before looking into ip header. + (Closes: #697903) + - x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS. + (CVE-2013-0228) + + [ Aurelien Jarno ] + * [armhf/vexpress] Add kernel udebs. + + [ Julien Cristau ] + * Backport drm and agp subsystems from Linux 3.4.29 (closes: #687442) + - [x86] i915: Fixes freezes on Ivy Bridge (Closes: #689268) + - nouveau: Support for newer nvidia chipsets (Closes: #690284) + - radeon: Support for HD7000 'Southern Islands' chips + - [x86] drm/i915: add Ivy Bridge GT2 Server entries (Closes: #684767) + - [x86] drm/i915: Close race between processing unpin task and queueing + the flip + + [ Ben Hutchings ] + * Input: wacom - fix touch support for Bamboo Fun CTH-461 + * media/rc: Add iguanair driver from Linux 3.7 (Closes: #696925) + * rt2800: add chipset revision RT5390R support (Closes: #696592) + * [armhf/mx5] mtd: Enable MTD_BLOCK as module + * [armhf/mx5] udeb: Add missing storage drivers (Closes: #697128) + - Add ata-modules including libata, pata-modules including pata_imx, + sata-modules including ahci_platform + - Add sdhci-esdhc-imx to mmc-modules + - Add mtd-modules including mtd, mtdblock and m25p80 + * [armhf] udeb: Fix network driver selection + - [armhf/mx5] Remove nic-modules + - [armhf/vexpress] Add usb-modules + - Add standard set of USB drivers to nic-usb-modules + - Add nic-wireless-modules + * be2net: Apply backported fixes requested by Emulex (Closes: #697479) + - be2net: do not modify PCI MaxReadReq size + - be2net: fix reporting number of actual rx queues + - be2net: do not use SCRATCHPAD register + - be2net: reduce gso_max_size setting to account for ethernet header. + - be2net: Increase statistics structure size for skyhawk. + - be2net: Explicitly clear the reserved field in the Tx Descriptor + - be2net: Regression bug wherein VFs creation broken for multiple cards. + - be2net: Fix to trim skb for padded vlan packets to workaround an ASIC Bug + - be2net: Fix Endian + - be2net: Enable RSS UDP hashing for Lancer and Skyhawk + - be2net: dont pull too much data in skb linear part + - be2net: Fix to parse RSS hash from Receive completions correctly. + - be2net: Avoid disabling BH in be_poll() + * udeb: Add specialised USB keyboard/mouse drivers to input-modules: + hid-a4tech, hid-cypress, hid-ezkey (Closes: #697035), hid-kensington, + hid-keytouch, hid-kye, hid-multitouch, hid-ortek, hid-primax, + hid-quanta, hid-samsung, hid-speedlink + * radeon: Firmware is required for DRM and KMS on R600 onward, but not + for KMS on earlier chips (Closes: #697229) + * [!powerpc] radeon: Reenable DRM_RADEON_KMS, as it apparently works on + most non-PowerMac systems + * fs: cachefiles: add support for large files in filesystem caching + (Closes: #698376) + * [rt] Update to 3.2.38-rt57: + - sched: Adjust sched_reset_on_fork when nothing else changes + - sched: Queue RT tasks to head when prio drops + - sched: Consider pi boosting in setscheduler + - sched: Init idle->on_rq in init_idle() + - sched: Check for idle task in might_sleep() + - mm: swap: Initialize local locks early + * [armel/versatile,armhf/vexpress] i2c: Enable I2C, I2C_VERSATILE as modules + (Closes: #696182) + * ext4: Fix corruption by hole punch in large files (Closes: #685726) + - rewrite punch hole to use ext4_ext_remove_space() + - fix hole punch failure when depth is greater than 0 + - fix kernel BUG on large-scale rm -rf commands + * md: protect against crash upon fsync on ro array (Closes: #696650) + * net: Add alx driver for Atheros AR8161 and AR8162 (Closes: #699129) + - Mark as staging, since it has not been accepted upstream + * [armel/kirkwood] rtc-s35390a: add wakealarm support (Closes: #693997) + * [x86] i915: Invert backlight brightness control for various models + including Packard Bell NCL20 (Closes: #627372) and eMachines G725 + (Closes: #680737) + - Also allow this behaviour to be enabled via module parameter + invert_brightness=1 + * [amd64] edac: Enable EDAC_SBRIDGE as module (Closes: #699283) + * SCSI: Add virtio_scsi driver (Closes: #686636) + * [x86] sound: Enable LINE6_USB as module (Closes: #700211) + - Apply upstream changes up to Linux 3.8-rc1 + * [armhf/mx5] Update description to mention i.MX53 + * mm: Try harder to allocate vmemmap blocks (Closes: #699913) + * aufs: Update to aufs3.2-20130204: + - support for syncfs(2) + - possible bugfix, race in lookup + - bugfix, half refreshed iinfo + - possible bugfix, au_lkup_by_ino() returns ESTALE + * [x86] efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by "noefi" boot + parameter + * [x86] efi: Make "noefi" really disable EFI runtime serivces + * drm, agp: Update to 3.4.32 + - drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN + - drm/radeon: prevent crash in the ring space allocation + * linux-image-dbg: Add symlinks to vmlinux from the locations expected by + kdump-tools (Closes: #700418), systemtap and others + * mm: fix pageblock bitmap allocation (fixes regression in 3.2.38) + * USB: usb-storage: unusual_devs update for Super TOP SATA bridge + + [ Cyril Brulebois ] + * Bump python build-dep, needed since the switch from local SortedDict + to collections.OrderedDict (new in version 2.7). (Closes: #697740) + + -- Ben Hutchings Mon, 25 Feb 2013 00:36:51 +0000 + +linux (3.2.35-2) unstable; urgency=low + + * [ia64] Make IPV6 built-in (fixes FTBFS) + * [rt] Update to 3.2.35-rt52 + * audit: Increase maximum number of names logged per syscall to 30 + (Closes: #631799) + * asix: Add support for Lenovo 10/100 USB dongle (Closes: #696248) + * udeb: Add ums-eneub6250, ums-realtek (Closes: #694348) to + usb-storage-modules + + -- Ben Hutchings Wed, 19 Dec 2012 03:41:35 +0000 + +linux (3.2.35-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.33 + - samsung-laptop: don't handle backlight if handled by acpi/video + (Closes: #693190) + - e1000: fix vlan processing regression (Closes: #690956) + - [x86] drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 + (Closes: #691122) + - au0828: fix case where STREAMOFF being called on stopped stream + causes BUG() + - net: Fix skb_under_panic oops in neigh_resolve_output + - vlan: don't deliver frames for unknown vlans to protocols + - RDS: fix rds-ping spinlock recursion + - tcp: resets are misrouted + - nfsd4: fix nfs4 stateid leak + - [arm] vfp: fix saving d16-d31 vfp registers on v6+ kernels + - scsi_debug: Fix off-by-one bug when unmapping region + - storvsc: Account for in-transit packets in the RESET path + - tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking + - ext4: race-condition protection for ext4_convert_unwritten_extents_endio + (CVE-2012-4508) + - md/raid10: use correct limit variable + - net/wireless: ipw2200: Fix panic occurring in ipw_handle_promiscuous_tx() + - USB: cdc-acm: fix pipe type of write endpoint + - [x86] xen: don't corrupt %eip when returning from a signal handler + - sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat() + - fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check + - netfilter: nf_conntrack: fix racy timer handling with reliable events + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.34 + - x86: Remove the ancient and deprecated disable_hlt() and enable_hlt() + facility (Closes: #667501) + - ALSA: PCM: Fix some races at disconnection + - ALSA: usb-audio: Fix races at disconnection + - crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent + data corruption + - mac80211: Only process mesh config header on frames that RA_MATCH + - mac80211: fix SSID copy on IBSS JOIN + - mac80211: check management frame header length + - mac80211: verify that skb data is present + - mac80211: make sure data is accessible in EAPOL check + - ath9k: Test for TID only in BlockAcks while checking tx status + - nfs: Show original device name verbatim in /proc/*/mount{s,info} + (Closes: #669314) + - target: Avoid integer overflow in se_dev_align_max_sectors() + - hwmon: (w83627ehf) Force initial bank selection + - xfs: fix reading of wrapped log data + - fanotify: fix missing break + - drm/vmwgfx: Fix a case where the code would BUG when trying to pin + GMR memory + - sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter() + - netlink: use kfree_rcu() in netlink_release() + - tcp: fix FIONREAD/SIOCINQ + - net: fix divide by zero in tcp algorithm illinois (CVE-2012-4565) + - af-packet: fix oops when socket is not present + - r8169: Fix WoL on RTL8168d/8111d. (Closes: #674154) + - sky2: Fix for interrupt handler (Closes: #681280) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.35 + - UBIFS: fix mounting problems after power cuts + - [s390] gup: add missing TASK_SIZE check to get_user_pages_fast() + - [x86] Exclude E820_RESERVED regions and memory holes above 4 GB from + direct mapping. + - netfilter: Mark SYN/ACK packets as invalid from original direction + - netfilter: Validate the sequence number of dataless ACK packets as well + - ipv4: avoid undefined behavior in do_ip_setsockopt() + - Input: i8042 - also perform controller reset when suspending + (Closes: #693934) + - brcm80211: smac: only print block-ack timeout message at trace level + (Closes: #674430) + - GFS2: Test bufdata with buffer locked and gfs2_log_lock held + - [x86] mce, therm_throt: Don't report power limit and package level + thermal throttle events in mcelog (Closes: #695209) + - [hppa] fix virtual aliasing issue in get_shared_area() + - xfs: drop buffer io reference when a bad bio is built + - reiserfs: Protect reiserfs_quota_{on,write}() with write lock + - md: Reassigned the parameters if read_seqretry returned true in func + md_is_badblock. + - md: Avoid write invalid address if read_seqretry returned true. + - [i386] Fix invalid stack address while in softirq + - selinux: fix sel_netnode_insert() suspicious rcu dereference + - [hppa] fix user-triggerable panic on parisc + - block: Don't access request after it might be freed + - futex: avoid wake_futex() for a PI futex_q + + [ Ben Hutchings ] + * [x86] udeb: Re-add isci to scsi-extra-modules (Closes: #690886; + regression of #652897 in version 3.2~rc7-1~experimental.1 due to + mis-merge) + * udeb: Add missing net drivers: + - Add 8021q (Closes: #689159), cxgb4, cxgb4vf, igbvf, ixgbevf, micrel, + mlx4_en, pch_gbe, qlge, smsc9420, tehuti, vxge to nic-extra-modules + - Add int51x1, smsc75xx, smsc95xx to nic-usb-modules + - Add adm8211, at76c50x-usb, b43legacy, iwl4965, libertas_tf_usb, + mwifiex_pcie, mwl8k, orinoco_usb, prism2_usb, r8187se, r8192e_pci, + r8712u, rtl8192ce (Closes: #686605), rtl8192cu, rtl8192de, rtl8192se + vt6656_stage to nic-wireless-modules + - Move broadcom to nic-modules, as it may be needed by tg3 + * udeb: Add bnx2fc, fnic, pmcraid to scsi-extra-modules + * udeb: Move rtl8180 to nic-wireless-modules + * [x86] asus-laptop: Do not call HWRS on init (Closes: #692436) + * [x86] drm/i915: Only kick out vesafb if we takeover the fbcon with KMS + (Closes: #686284) + * [!x86] radeon: Disable DRM_RADEON_KMS, as this is still not expected to + work (Closes: #628972) + * radeon: Disable KMS earlier if firmware is not installed (Closes: #607194) + * [amd64] linux-image: Include VIA Nano in package description + * linux-image-dbg: Change package description to use the phrase + 'debugging symbols' and correct grammar + * usb: Disable UAS; it is known to be broken, and the supported devices + can also work with usb-storage + * ipv6: Treat ND option 31 as userland (DNSSL support) (Closes: #694522) + * rt2x00: Add device IDs 5362, 5392, 539b (Closes: #694312) + * udeb: Add pata_piccolo to pata-modules (Closes: #695437) + * firmware_class: Log every success and failure against given device + * firmware: Remove redundant log messages from drivers + * [x86] ACPI / video: ignore BIOS initial backlight value for + HP Folio 13-2000 (Closes: #692361) + * [x86] KVM: x86: invalid opcode oops on SET_SREGS with OSXSAVE bit set + (CVE-2012-4461) + * kmod: make __request_module() killable (CVE-2012-4398) + * exec: do not leave bprm->interp on stack (CVE-2012-4530) + * exec: use -ELOOP for max recursion depth + * [rt] Update to 3.2.34-rt51: + - hrtimer: Raise softirq if hrtimer irq stalled + - rcu: Disable RCU_FAST_NO_HZ on RT + - net: netfilter: Serialize xt_write_recseq sections on RT + * megaraid_sas: fix memory leak if SGL has zero length entries + (Closes: #688198) + + [ Ian Campbell ] + * [xen] add support for microcode updating. (Closes: #693053) + + -- Ben Hutchings Mon, 10 Dec 2012 00:14:55 +0000 + +linux (3.2.32-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.31 + - target: Fix ->data_length re-assignment bug with SCSI overflow + - hpsa: fix handling of protocol error + - cifs: fix return value in cifsConvertToUTF16 + - asix: Support DLink DUB-E100 H/W Ver C1 (Closes: #687567) + - dj: memory scribble in logi_dj + - dm: handle requests beyond end of device instead of using BUG_ON + - md/raid10: fix "enough" function for detecting if array is failed. + - libata: Prevent interface errors with Seagate FreeAgent GoFlex + - vfs: dcache: fix deadlock in tree traversal + - Revert "drm/radeon: rework pll selection (v3)" (regression in 3.2.30) + - HID: hidraw: don't deallocate memory when it is in use + - xfrm: Workaround incompatibility of ESN and async crypto + - xfrm_user: fix various information leaks + - xfrm_user: ensure user supplied esn replay window is valid + - net: guard tcp_set_keepalive() to tcp sockets + - ipv4: raw: fix icmp_filter() + - ipv6: raw: fix icmpv6_filter() + - ipv6: mip6: fix mip6_mh_filter() + - netrom: copy_datagram_iovec can fail + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.32 + - mtd: nand: Use the mirror BBT descriptor when reading its version + - TTY: ttyprintk, don't touch behind tty->write_buf + - n_gsm: fix various serious bugs + - hpsa: Use LUN reset instead of target reset + - staging: comedi: don't dereference user memory for INSN_INTTRIG + - ext4: fix potential deadlock in ext4_nonda_switch() + - staging: comedi: fix memory leak for saved channel list + - scsi_remove_target: fix softlockup regression on hot remove + (Closes: #690990) + - usb: host: xhci: Fix Null pointer dereferencing with 71c731a for + non-x86 systems (regression in 3.2.30) + - ext4: online defrag is not supported for journaled files + - staging: comedi: s626: don't dereference insn->data + - serial: pl011: handle corruption at high clock speeds + - ext4: always set i_op in ext4_mknod() + - ext4: fix fdatasync() for files with only i_size changes + - [x86] drm/i915: use adjusted_mode instead of mode for checking the + 6bpc force flag (regression in 3.2.29) + - staging: comedi: jr3_pci: fix iomem dereference + - JFFS2: don't fail on bitflips in OOB + - mtd: nandsim: bugfix: fail if overridesize is too big + - pnfsblock: fix partial page buffer wirte + - target/file: Re-enable optional fd_buffered_io=1 operation + - iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp + - rapidio/rionet: fix multicast packet transmit logic + - ALSA: aloop - add locking to timer access + - [armhf/omap] counter: add locking to read_persistent_clock + - mm: fix invalidate_complete_page2() lock ordering + - mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP + - mm: hugetlb: fix pgoff computation when unmapping page from vma + - hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach + - [x86] firewire: cdev: fix user memory corruption (i386 userland on + amd64 kernel) + - udf: fix retun value on error path in udf_load_logicalvol + - eCryptfs: Unlink lower inode when ecryptfs_create() fails + - eCryptfs: Initialize empty lower files when opening them + - eCryptfs: Revert to a writethrough cache model + - eCryptfs: Write out all dirty pages just before releasing the lower file + - eCryptfs: Call lower ->flush() from ecryptfs_flush() + - mempolicy: remove mempolicy sharing + - mempolicy: fix a race in shared_policy_replace() + - mempolicy: fix refcount leak in mpol_set_shared_policy() + - mempolicy: fix a memory corruption by refcount imbalance in + alloc_pages_vma() + - hpsa: dial down lockup detection during firmware flash + - netfilter: nf_ct_ipv4: packets with wrong ihl are invalid + - netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP + expectation + - netfilter: nf_ct_expect: fix possible access to uninitialized timer + - ipvs: fix oops on NAT reply in br_nf context + + [ Ben Hutchings ] + * codel: refine one condition to avoid a nul rec_inv_sqrt + * [mips,mipsel] Ignore NFS/SunRPC ABI changes in 3.2.30 (fixes FTBFS) + * tg3: Fix TSO CAP for 5704 devs w / ASF enabled + * SUNRPC: Set alloc_slot for backchannel tcp ops (regression in 3.2.30) + * iwlwifi: Do not request unreleased firmware for IWL6000 (Closes: #689416) + * aufs: Update to aufs3.2-20120827: + - Fix statfs() values when different block sizes are in use + * udeb: Add hid-logitech-dj to input-modules (Closes: #661379) + * connector: Make CONNECTOR built-in; enable PROC_EVENTS (Closes: #588200) + * e1000e: Change wthresh to 1 to avoid possible Tx stalls + * [x86] efi: Build EFI stub with EFI-appropriate options + * [rt] Update to 3.2.32-rt48: + - random: Make add_interrupt_randomness() work on rt + - softirq: Init softirq local lock after per cpu section is set up + - mm: slab: Fix potential deadlock + - mm: page_alloc: Use local_lock_on() instead of plain spinlock + - rt: rwsem/rwlock: lockdep annotations + - sched: Better debug output for might sleep + - stomp_machine: Use mutex_trylock when called from inactive cpu + * [x86] storvsc: Account for in-transit packets in the RESET path + * fs: handle failed audit_log_start properly + * fs: prevent use after free in auditing when symlink following was denied + * kernel/sys.c: fix stack memory content leak via UNAME26 (CVE-2012-0957) + * ALSA: hda: Fix oops caused by "Fix internal mic for Lenovo Ideapad U300s" + in 3.2.32 + + -- Ben Hutchings Mon, 22 Oct 2012 06:25:37 +0100 + +linux (3.2.30-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.30 + - ext3: Fix fdatasync() for files with only i_size changes + - UBI: fix a horrible memory deallocation bug + - fuse: fix retrieve length + - mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption + - udf: Fix data corruption for files in ICB + - xen: Use correct masking in xen_swiotlb_alloc_coherent. + - CIFS: Fix error handling in cifs_push_mandatory_locks + - [x86] drm/i915: Wait for all pending operations to the fb before + disabling the pipe + - xhci: Fix bug after deq ptr set to link TRB + - NFS: Fix the initialisation of the readdir 'cookieverf' array + - staging: comedi: das08: Correct AI encoding for das08jr-16-ao + - staging: comedi: das08: Correct AO output for das08jr-16-ao + - rt2800usb: Added rx packet length validity check + - staging: zcache: fix cleancache race condition with shrinker + - NFS: return error from decode_getfh in decode open + - ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path + - ahci: Add alternate identifier for the 88SE9172 + + [ Ben Hutchings ] + * [s390/s390x-tape] udeb: Remove fuse-modules configuration (fixes FTBFS) + + -- dann frazier Wed, 26 Sep 2012 16:00:58 +0900 + +linux (3.2.29-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.24 + - sched/nohz: Rewrite and fix load-avg computation -- again + (Closes: #674153) + - libsas: fix taskfile corruption in sas_ata_qc_fill_rtf + - md/raid1: fix use-after-free bug in RAID1 data-check code. + - PCI: EHCI: fix crash during suspend on ASUS computers + - cpufreq / ACPI: Fix not loading acpi-cpufreq driver (regression in 3.2.2) + - block: fix infinite loop in __getblk_slow (regression in 3.2.19) + (Closes: #684293) + - PM / Hibernate: Hibernate/thaw fixes/improvements + - tcm_fc: Fix crash seen with aborts and large reads + - fifo: Do not restart open() if it already found a partner + - cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap space + - UBIFS: fix a bug in empty space fix-up + - ore: Fix NFS crash by supporting any unaligned RAID IO + - ore: Remove support of partial IO request (NFS crash) + - pnfs-obj: don't leak objio_state if ore_write/read fails + - pnfs-obj: Fix __r4w_get_page when offset is beyond i_size + - dm raid1: fix crash with mirror recovery and discard + - dm raid1: set discard_zeroes_data_unsupported + - time: Fix bugs in leap-second handling (Closes: #679882) + + ntp: Fix leap-second hrtimer livelock + + timekeeping: Fix leapsecond triggered load spike issue + - bnx2x: fix checksum validation + - bnx2x: fix panic when TX ring is full + - eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files + - ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.25 + - mm: Fix various performance problems, particularly affecting use of + transparent hugepages (Closes: #675493) + - target: Add range checking to UNMAP emulation + - target: Fix reading of data length fields for UNMAP commands + - target: Fix possible integer underflow in UNMAP emulation + - target: Check number of unmap descriptors against our limit + - ext4: don't let i_reserved_meta_blocks go negative + - ext4: undo ext4_calc_metadata_amount if we fail to claim space + - locks: fix checking of fcntl_setlease argument + - Btrfs: call the ordered free operation without any locks held + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.26 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.27 + - lirc_sir: make device registration work (Closes: #680762) + - random: Improve random number generation on non-interactive systems + + random: Use arch_get_random_int instead of cycle counter if avail + + random: Use arch-specific RNG to initialize the entropy store + + random: make 'add_interrupt_randomness()' do something sane + + usb: feed USB device information to the /dev/random driver + + net: feed /dev/random with the MAC address when registering a device + + rtc: wm831x: Feed the write counter into device_add_randomness() + + mfd: wm831x: Feed the device UUID into device_add_randomness() + - futex: Test for pi_mutex on fault in futex_wait_requeue_pi() + - futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi() + - s390/mm: downgrade page table after fork of a 31 bit process + - asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID. + (Closes: #679158) + - md/raid1: don't abort a resync on the first badblock. + - [arm] 7467/1: mutex: use generic xchg-based implementation for ARMv6+ + - [arm] 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend + - [arm] 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP + - [arm] 7478/1: errata: extend workaround for erratum #720789 + - [arm] Fix undefined instruction exception handling + - mm: mmu_notifier: fix freed page still mapped in secondary MMU + - mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.28 + - bnx2: Fix bug in bnx2_free_tx_skbs(). + - sch_sfb: Fix missing NULL check + - sctp: Fix list corruption resulting from freeing an association on a list + - cipso: don't follow a NULL pointer when setsockopt() is called + - caif: fix NULL pointer check + - net/tun: fix ioctl() based info leaks + - rtlwifi: rtl8192cu: Change buffer allocation for synchronous reads + - hfsplus: fix overflow in sector calculations in hfsplus_submit_bio + - drm/i915: fixup seqno allocation logic for lazy_request + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.29 + - pnfs: defer release of pages in layoutget + - fuse: verify all ioctl retry iov elements + - usb: serial: mos7840: Fixup mos7840_chars_in_buffer() + - sched: fix divide by zero at {thread_group,task}_times + - vfs: canonicalize create mode in build_open_flags() + - dccp: check ccid before dereferencing + - md: Don't truncate size at 4TB for RAID0 and Linear + - target: fix NULL pointer dereference bug alloc_page() fails to get memory + - USB: CDC ACM: Fix NULL pointer dereference + - alpha: Don't export SOCK_NONBLOCK to user space. (Closes: #658460) + - radeon: Fix various bugs in reading vbios (Closes: #685604) + - vfs: missed source of ->f_pos races + - svcrpc: fix BUG() in svc_tcp_clear_pages + - svcrpc: sends on closed socket should stop immediately + - fbcon: fix race condition between console lock and cursor timer (v1.1) + - mm: hugetlbfs: correctly populate shared pmd + - fs/buffer.c: remove BUG() in possible but rare condition + - block: replace __getblk_slow misfix by grow_dev_page fix + - Staging: speakup: fix an improperly-declared variable. (Closes: #685953) + - NFS: Fix Oopses in nfs_lookup_revalidate and nfs4_lookup_revalidate + + [ Ben Hutchings ] + * Bump ABI to 4 + * linux-image: Include package version in utsname version string + ('uname -v' output) (Closes: #638878) + * linux-source: Drop support for version.$DISTRIBUTION + * [arm,ia64,powerpc,s390,sh,x86] linux-image: Include package version + in stack traces from WARN, BUG, Oops etc. + * udeb: Add snd-hda-codec-ca0132 to sound-modules (Closes: #682368) + * linux-source: Suggest pkg-config, needed to build kconfig GUIs + (Closes: #682726) + * debugfs: Add mode, uid and gid mount options; set default mode to 700 + (Closes: #681418) + * net: new counter for tx_timeout errors in sysfs + * net: Add byte queue limits (bql) for reduced buffer-bloat + * bnx2,bnx2x,e1000e,forcedeth,igb,ixgbe,sfc,skge,sky2,tg3: + Add support for bql + * fs: Update link security restrictions to match Linux 3.6: + - Drop kconfig options; restrictions can only be disabled by sysctl + - Change the audit message type from AUDIT_AVC (1400) to + AUDIT_ANON_LINK (1702) + * [rt] Update to 3.2.28-rt42: + - time/rt: Fix up leap-second backport for RT changes + - fix printk flush of messages + * rds: set correct msg_namelen (CVE-2012-3430) + * e1000: add dropped DMA receive enable back in for WoL (Closes: #684618) + * PCI/PM/Runtime: make PCI traces quieter (Closes: #684049) + * rc: ite-cir: Initialise ite_dev::rdev earlier (Closes: #684441) + * input: Enable TOUCHSCREEN_ATMEL_MXT as module (Closes: #685123) + * usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams + (Closes: #668211) + * [alpha] Use gcc-4.6 (Closes: #685894) + - Use large data model to work around link failure + * [i386/486] video: Change FB_GEODE_LX from built-in to module (lxfb) + (Closes: #686528) + * [i386/686-pae] video: Disable Geode framebuffer drivers, not used with + any chips that support PAE + * [x86] drm/i915: Fix i8xx interrupt handling (Closes: #655152) + * [armel/kirkwood] ahci: Add JMicron 362 device IDs (Closes: #634180) + * speakup: lower default software speech rate (Closes: #686742) + * e1000e: Fix potential DoS when TSO enabled + * mm: Remove user-triggerable BUG from mpol_to_str + * sfc: Fix maximum number of TSO segments and minimum TX queue size + (CVE-2012-3412) + - tcp: Apply device TSO segment limit earlier + * net_sched: gact: Fix potential panic in tcf_gact(). + * af_packet: remove BUG statement in tpacket_destruct_skb + * net: Fix various information leaks + * af_packet: don't emit packet on orig fanout group + * af_netlink: force credentials passing (CVE-2012-3520) + * netlink: fix possible spoofing from non-root processes + * net: ipv4: ipmr_expire_timer causes crash when removing net namespace + * [i386] i810fb: Enable FB_I810_GTF, FB_I810_I2C (Closes: #687644) + * udeb: Add fuse-modules to support os-prober (see #684265) + + [ Bastian Blank ] + * Make xen-linux-system meta-packages depend on xen-system. This allows + automatic updates. (closes: #681637) + + -- Ben Hutchings Sun, 16 Sep 2012 06:16:38 +0100 + +linux (3.2.23-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.22 + - nilfs2: ensure proper cache clearing for gc-inodes + - ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.23 + - splice: fix racy pipe->buffers uses + - NFC: Prevent multiple buffer overflows in NCI (CVE-2012-3364) + - NFC: Return from rawsock_release when sk is NULL + - md/raid5: Do not add data_offset before call to is_badblock + - md/raid5: In ops_run_io, inc nr_pending before calling + md_wait_for_blocked_rdev + - md/raid10: fix failure when trying to repair a read error. + - udf: Improve sanity checking of filesystem metadata (CVE-2012-3400) + + udf: Avoid run away loop when partition table length is corrupted + + udf: Fortify loading of sparing table + - l2tp: fix a race in l2tp_ip_sendmsg() + - netpoll: fix netpoll_send_udp() bugs + - Btrfs: run delayed directory updates during log replay + - ocfs2: clear unaligned io flag when dio fails + - aio: make kiocb->private NUll in init_sync_kiocb() + - mm: Hold a file reference in madvise_remove + + [ Ben Hutchings ] + * linux-libc-dev: Fix redundant 'GNU glibc' in description (Closes: #631228) + * README.source: Correct name of main patch series file + * [sh] Fix up store queue code for subsys_interface changes (Closes: #680025) + * scsi: Silence unnecessary warnings about ioctl to partition + (Closes: #656899) + * Update Czech debconf template translations (Michal Simunek) + (Closes: #679674) + * linux-image: Remove versioned relations where stable version is new enough + * udf: Improve table length check to avoid possible overflow + * CIFS: Respect negotiated MaxMpxCount (deferred from 3.2.14) + * epoll: clear the tfile_check_list on -ELOOP (CVE-2012-3375) + * nouveau: Update to support Fermi (NVC0+) acceleration (Closes: #679566) + - Refactor sub-channel use + - Bump version to 1.0.0 + * e100: ucode is optional in some cases + * [x86] drm/i915: prefer wide & slow to fast & narrow in DP configs + (Closes: #658662) + * cipso: don't follow a NULL pointer when setsockopt() is called + * [x86] hwmon: Enable SENSORS_SCH5636 as module (Closes: #680934) + * atl1c: fix issue of transmit queue 0 timed out + * raid5: delayed stripe fix (Closes: #680366) + * fs: Remove easily user-triggerable BUG from generic_setlease + * tcp: drop SYN+FIN messages + * fifo: Do not restart open() if it already found a partner (Closes: #678852) + * [rt] linux-source: Include -rt version suffix + * [rt] Update to 3.2.23-rt37: + - Latency histogramms: Cope with backwards running local trace clock + - Latency histograms: Adjust timer, if already elapsed when programmed + - Disable RT_GROUP_SCHED in PREEMPT_RT_FULL + - Latency histograms: Detect another yet overlooked sharedprio condition + - slab: Prevent local lock deadlock + - fs, jbd: pull your plug when waiting for space + - perf: Make swevent hrtimer run in irq instead of softirq + - cpu/rt: Rework cpu down for PREEMPT_RT + - cpu/rt: Fix cpu_hotplug variable initialization + - workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse + - workqueue: Revert workqueue: Fix cpuhotplug trainwreck + + [ Arnaud Patard ] + * [mipsel] add r8169 to d-i udeb. + + -- Ben Hutchings Sun, 22 Jul 2012 23:25:47 +0100 + +linux (3.2.21-3) unstable; urgency=low + + * driver core: remove __must_check from device_create_file + (fixes FTBFS on sparc) + * i2400m: Disable I2400M_SDIO; hardware did not reach production + * apparmor: remove advertising the support of network rules from + compat iface (Closes: #676515) + * xen/netfront: teardown the device before unregistering it (Closes: #675190) + * linux-{doc,manual,source,support}: Mark as capable of satisfying + relations from foreign packages (Multi-Arch: foreign) (Closes: #679202) + + -- Ben Hutchings Thu, 28 Jun 2012 04:58:18 +0100 + +linux (3.2.21-2) unstable; urgency=low + + * [i386] cpufreq/gx: Fix the compile error + * [powerpc] Enable PPC_DISABLE_WERROR (fixes FTBFS) + * tracing/mm: Move include of trace/events/kmem.h out of header into slab.c + (fixes FTBFS on sparc) + * [i386] Disable incomplete lguest support + * udeb: Add missing dependencies for various modules (see #678587) + - [armel/kirkwood] fb-modules depends on kernel-image + - [ia64] nic-usb-modules depends on kernel-image, nic-shared-modules, + usb-modules + - [ia64] sata-modules depends on kernel-image, scsi-core-modules + - [ia64] scsi-modules depends on scsi-core-modules + - [ia64,powerpc,ppc64] pcmcia-modules depends on kernel-image + - [powerpc,ppc64] nic-pcmcia-modules depends on kernel-image, + nic-shared-modules, pcmcia-modules + - [powerpc,ppc64,x86] scsi-modules depends on ata-modules + - [x86] nic-extra-modules depends on i2c-modules + * wacom: do not crash when retrieving touch_max (Closes: #678798) + * wacom: Revert unintended changes to handling of Tablet PCs + (Closes: #677164) + * linux-image, README.Debian: Suggest debian-kernel-handbook package + + [ Arnaud Patard ] + * [armel, armhf] backport BPF JIT support + + -- Ben Hutchings Tue, 26 Jun 2012 01:56:42 +0100 + +linux-tools (3.2.17-1) unstable; urgency=low + + * New upstream stable updates: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.15 + - modpost: fix ALL_INIT_DATA_SECTIONS + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.16 + - perf hists: Catch and handle out-of-date hist entry maps. + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.17 + - Perf: fix build breakage + + * Fix version insertion in perf man pages + * Build usbip userland packages (Closes: #568362) + - Do not build a shared library package; the API and ABI have changed + from libusbip0 but there has been no upstream soversion change + * usbipd: Enable TCP wrappers for access control + + -- Ben Hutchings Sun, 24 Jun 2012 02:52:26 +0100 + +linux (3.2.21-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.21 + - NFSv4.1: Fix a request leak on the back channel + - target: Return error to initiator if SET TARGET PORT GROUPS emulation + fails + - USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2 + - USB: fix gathering of interface associations + + [ Ben Hutchings ] + * [ia64,powerpc] udeb: Add crc-itu-t to crc-modules; make + firewire-core-modules depend on it (fixes FTBFS) + * [arm,m68k,sh4] udeb: Build ipv6-modules + * ethtool: allow ETHTOOL_GSSET_INFO for users + * [rt] bump version to 3.2.20-rt32 + * cpu: Convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem + * [x86] Add driver auto probing for x86 features + - crypto: Add support for x86 cpuid auto loading for x86 crypto drivers + (Closes: #568008) + - intel-idle: convert to x86_cpu_id auto probing + - HWMON: Convert coretemp to x86 cpuid autoprobing + - HWMON: Convert via-cputemp to x86 cpuid autoprobing + - cpufreq: Add support for x86 cpuinfo auto loading (Closes: #664813) + * [x86] ACPI: Load acpi-cpufreq from processor driver automatically + * Bump ABI to 3 + * input: Add Synaptics USB device driver (Closes: #678071) + * [x86] udeb: Fix dependencies for nic-wireless-modules + + [ Aurelien Jarno ] + * [mips,mipsel] udeb: Remove rivafb and nvidiafb. + * [ppc64]: add udebs, based on powerpc/powerpc64. + + [ Bastian Blank ] + * Support build-arch and build-indep make targets. + + [ Arnaud Patard ] + * [armel/kirkwood] Add dreamplug and iconnect support (Closes: #675922) + + -- Ben Hutchings Fri, 22 Jun 2012 13:54:15 +0100 + +linux (3.2.20-1) unstable; urgency=low + + * The "Confused? You Won't Be" release + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.20 + - cifs: fix oops while traversing open file list (try #4) + - mm/fork: fix overflow in vma length when copying mmap on clone + - mm: fix faulty initialization in vmalloc_init() + - x86, amd, xen: Avoid NULL pointer paravirt references + - ext4: force ro mount if ext4_setup_super() fails + - ext4: disallow hard-linked directory in ext4_lookup + - ext4: add missing save_error_info() to ext4_error() + - ALSA: usb-audio: fix rate_list memory leak + - Bluetooth: btusb: typo in Broadcom SoftSailing id (Closes: #674565) + - ipv4: Do not use dead fib_info entries. + - ipv4: fix the rcu race between free_fib_info and ip_route_output_slow + - l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case + - btree: fix tree corruption in btree_get_prev() + - asix: allow full size 8021Q frames to be received (Closes: #676545) + - ext4: don't trash state flags in EXT4_IOC_SETFLAGS + - ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg + + [ Ben Hutchings ] + * Rename source package to 'linux' (Closes: #636010) + * Convert source package format to 3.0 (quilt) + - Convert patch system to quilt, except for the 'orig' patch series + - Use xz compression for upstream and Debian tarballs + - README.source: Update description of patch system to match current + usage + - linux-patch-debian: Remove; it is no longer necessary for GPL + compliance and does not work with our current patch management + * linux-image: Change package name for bugs to 'src:linux' (Closes: #644198) + * DFSG: video: Remove nvidiafb and rivafb, which include apparently + obfuscated code (Closes: #383481, #609615). The nouveau driver supports + all the same hardware, aside from RIVA 128 (NV3). + * udeb: Add udf-modules containing UDF filesystem module (Closes: #613972) + * [mipsel/loongson2f] linux-image: Recommend libc6-loongson2f + (Closes: #629410) + * Build-Depend on kmod or module-init-tools, not just the latter + * test-patches: Recognise the rt featureset automatically + * udeb: Build-Depend on kernel-wedge >= 2.84; this allows us to list + modules as required even if they are built-in in some configurations + * filter: Allow to create sk-unattached filters + * proc: Backport hidepid mount option from Linux 3.4 (Closes: #669028) + * NFSv4: Reduce the footprint of the idmapper (Closes: #657078) + * [i386] thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE + (Closes: #676360) + * linux-source: Add single patch for each featureset + * [x86] Enable CRASH_DUMP, PROC_VMCORE (Closes: #623177) + * media/dvb: Enable DVB_DDBRIDGE as module (Closes: #676952) + * net: sock: validate data_len before allocating skb in + sock_alloc_send_pskb() (CVE-2012-2136) + * macvtap: zerocopy: fix offset calculation when building skb + * macvtap: zerocopy: fix truesize underestimation + * macvtap: zerocopy: put page when fail to get all requested user pages + * macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built + successfully + * macvtap: zerocopy: validate vectors before building skb (CVE-2012-2119) + * KVM: Fix buffer overflow in kvm_set_irq() (CVE-2012-2137) + + [ Bastian Blank ] + * [s390/s390x,s390x/s390x] Build debugging symbols. + + -- Ben Hutchings Mon, 11 Jun 2012 02:46:34 +0100 + +linux-2.6 (3.2.19-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.19 + - hpsa: Fix problem with MSA2xxx devices (Closes: #661057) + - IB/core: Fix mismatch between locked and pinned pages + - iommu: Fix off by one in dmar_get_fault_reason() + - vfs: make AIO use the proper rw_verify_area() area helpers + - HID: logitech: read all 32 bits of report type bitfield (Closes: #671292) + - USB: Remove races in devio.c + - ext{3,4}: Fix error handling on inode bitmap corruption + - uvcvideo: Fix ENUMINPUT handling + - dl2k: Clean up rio_ioctl (CVE-2012-2313) + - [x86] MCE: Fix vm86 handling for 32bit mce handler + - [x86] mce: Fix check for processor context when machine check was taken. + - ethtool: Null-terminate filename passed to ethtool_ops::flash_device + - NFSv4: Fix buffer overflows in ACL support (CVE-2012-2375) + + Avoid reading past buffer when calling GETACL + + Avoid beyond bounds copy while caching ACL + + [ Ben Hutchings ] + * be2net: Backport most changes up to Linux 3.5-rc1, thanks to + Sarveshwar Bandi (Closes: #673391) + - Add support for Skyhawk cards + * net/sched: Add codel and fq_codel from Linux 3.5-rc1 + * [x86] udeb: Add hyperv-modules containing Hyper-V paravirtualised drivers + * [x86] ata_piix: defer disks to the Hyper-V drivers by default + * [x86] drm/i915:: Disable FBC on SandyBridge (Closes: #675022) + * AppArmor: compatibility patch for v5 interface (Closes: #661151) + * hugepages: fix use after free bug in "quota" handling (CVE-2012-2133) + * [x86] mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race + condition (CVE-2012-2373) + * hugetlb: fix resv_map leak in error path (CVE-2012-2390) + * [SCSI] fix scsi_wait_scan (Closes: #647436) + + -- Ben Hutchings Fri, 01 Jun 2012 13:15:48 +0100 + +linux-2.6 (3.2.18-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.18 + - hugetlb: prevent BUG_ON in hugetlb_fault() -> hugetlb_cow() + - net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg + - [sparc] sparc64: Do not clobber %g2 in xcall_fetch_glob_regs(). + - ext4: avoid deadlock on sync-mounted FS w/o journal + - brcm80211: smac: fix endless retry of A-MPDU transmissions + (Closes: #672891) + - target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups + - ALSA: hda/idt - Fix power-map for speaker-pins with some HP laptops + (Closes: #672582) + - usbnet: fix skb traversing races during unlink(v2) + - [arm] prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS + + [ Jonathan Nieder ] + * wacom: Add support for various tablet models (Closes: #671801) + * rt2800usb: Add support for Ralink RT5392/RF5372 chipset (Closes: #673186) + + [ Ben Hutchings ] + * test-patches: Fix -j option, broken since 3.1.0-1~experimental.1 + * rt2800usb: Re-enable powersaving by default, as it should work better + than in 2.6.38 + * [sparc,sparc64] Build virtio-modules-udeb for use in qemu (Closes: #673320) + * KVM: mmu_notifier: Flush TLBs before releasing mmu_lock + * [x86] KVM: nVMX: Fix erroneous exception bitmap check + * [x86] KVM: VMX: vmx_set_cr0 expects kvm->srcu locked + * [s390] KVM: do store status after handling STOP_ON_STOP bit + * [s390] KVM: Sanitize fpc registers for KVM_SET_FPU + * ACPI battery: only refresh the sysfs files when pertinent information + changes (Closes: #670958) + + -- Ben Hutchings Mon, 21 May 2012 04:07:08 +0100 + +linux-2.6 (3.2.17-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.17 + - md: fix possible corruption of array metadata on shutdown. + - ext4: fix endianness breakage in ext4_split_extent_at() + - KVM: unmap pages from the iommu when slots are removed (CVE-2012-2121) + - btrfs: btrfs_root_readonly() broken on big-endian + - ocfs2: Fix various bugs affecting big-endian architectures + - lockd: fix the endianness bug + - phonet: Check input from user before allocating + - netlink: fix races after skb queueing + - net: fix a race in sock_queue_err_skb() + - net/ethernet: ks8851_mll fix rx frame buffer overflow + - x86, apic: APIC code touches invalid MSR on P5 class machines + - drm/i915: fix integer overflow in i915_gem_execbuffer2() + - drm/i915: fix integer overflow in i915_gem_do_execbuffer() + - USB: cdc-wdm: fix race leading leading to memory corruption + - autofs: make the autofsv5 packet file descriptor use a packetized pipe + (Closes: #633423) + - efi: Validate UEFI boot variables + - efivars: Improve variable validation + - fs/cifs: fix parsing of dfs referrals + - hfsplus: Fix potential buffer overflows (CVE-2012-2319) + - exit_signal: fix the "parent has changed security domain" logic + + [ Ben Hutchings ] + * aufs: Enable AUFS_EXPORT + * ext4: Report max_batch_time option correctly (Closes: #654206) + * [i386/rt-686-pae] Enable HIGHMEM64G as intended for this configuration + * NFSv4: Revalidate uid/gid after open (Closes: #659111) + * sky2: propogate rx hash when packet is copied + * sky2: fix receive length error in mixed non-VLAN/VLAN traffic + (Closes: #492853) + * KVM: Ensure all vcpus are consistent with in-kernel irqchip settings + (CVE-2012-1601) + * KVM: lock slots_lock around device assignment (CVE-2012-2121) + * [rt] bump version to 3.2.16-rt27 + + [ Bastian Blank ] + * [s390] Enable IUCV special message support. (closes: #671238) + + [ Arnaud Patard ] + * [armhf] Add vexpress support from Vagrant Cascadian with a slightly + modified kernel configuration (Closes: #670462) + * [armel] Introduce a new udeb module for leds and use it on kirkwoord + kernel thanks to Simon Guinot (Closes: #671200) + + -- Ben Hutchings Sat, 12 May 2012 15:29:09 +0100 + +linux-2.6 (3.2.16-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.16 + - drm/i915: properly compute dp dithering for user-created modes + (Closes: #666360) + - md/bitmap: prevent bitmap_daemon_work running while initialising bitmap + - [ia64] Fix futex_atomic_cmpxchg_inatomic() (Closes: #659485) + - USB: serial: fix race between probe and open + - fcaps: clear the same personality flags as suid when fcaps are used + (CVE-2012-2123) + - ACPICA: Fix to allow region arguments to reference other scopes + (Closes: #661581) + - futex: Do not leak robust list to unprivileged process + - drm/radeon/kms: fix the regression of DVI connector check + (Closes: #670047) + + [ Ben Hutchings ] + * rt2x00: Identify rt2800usb chipsets. (Closes: #658067) + * [x86] Add EFI boot stub support (Closes: #669033) + * brcmsmac: "INTERMEDIATE but not AMPDU" only when tracing + * NFSv4: Fix error handling and improve error reporting for file locking + (Closes: #669270) + - Rate limit the state manager for lock reclaim warning messages + - Ensure that the LOCK code sets exception->inode + - Ensure that we check lock exclusive/shared type against open modes + * [x86] i915: Fix integer overflows in i915_gem_{do_execbuffer,execbuffer2} + * Revert "autofs: work around unhappy compat problem on x86-64". + Reopens #633423. + + -- Ben Hutchings Sun, 29 Apr 2012 08:00:53 +0100 + +linux-2.6 (3.2.15-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.15 + - drm/radeon/kms: fix fans after resume (Closes: #596741) + - sysctl: fix write access to dmesg_restrict/kptr_restrict + - [x86] PCI: use host bridge _CRS info on MSI MS-7253 (Closes: #619034) + - nfs: Fix length of buffer copied in __nfs4_get_acl_uncached + - [x86] ioat: fix size of 'completion' for Xen (Closes: #660554) + - cred: copy_process() should clear child->replacement_session_keyring + + [ Ben Hutchings ] + * net: fix /proc/net/dev regression (Closes: #659499) + * [armel/orion5x] Fix GPIO enable bits for MPP9 (Closes: #667446) + * [x86] drm/i915: mask transcoder select bits before setting them on LVDS + * [armhf/mx5,mipsel/loongson-2f] input: Enable INPUT_TOUCHSCREEN + (Closes: #668036) + * [x86] hv: Update all Hyper-V drivers to 3.4-rc1 (Closes: #661318) + * hugetlb: fix race condition in hugetlb_fault() + + -- Ben Hutchings Sat, 14 Apr 2012 18:23:44 +0100 + +linux-2.6 (3.2.14-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.14 + - mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem + read mode (CVE-2012-1179) + - hugetlbfs: avoid taking i_mutex from hugetlbfs_read() + - md/bitmap: ensure to load bitmap when creating via sysfs + (Closes: #661558) + - md: dont set md arrays to readonly on shutdown + - md/raid1,raid10: avoid deadlock during resync/recovery (Closes: #584881) + - md: fix clearing of the changed flags for the bad blocks list + - xfs: fix inode lookup race + - sysctl: protect poll() in entries that may go away + - NFSv4: Rate limit the state manager warning messages (Closes: #666121) + - jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer + - ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc + - ext4: fix race between sync and completed io work + - ext4: check for zero length extent + - vfs: fix d_ancestor() case in d_materialize_unique + - udf: Fix deadlock in udf_release_file() + - dm crypt: add missing error handling + - dm thin: fix stacked bi_next usage + - xfs: Fix oops on IO error during xlog_recover_process_iunlinks() + - NFSv4: Fix two infinite loops in the mount code + - drm/i915: suspend fbdev device around suspend/hibernate + (Closes: #645547) + - net: fix a potential rcu_read_lock() imbalance in rt6_fill_node() + - [x86] tls: Off by one limit check + - PCI: ASPM: Fix pcie devices with non-pcie children (Closes: #665420) + + [ Jonathan Nieder ] + * ata: Enable PATA_IT8213 as module (Closes: #666506) + + -- Ben Hutchings Thu, 05 Apr 2012 05:02:45 +0100 + +linux-2.6 (3.2.13-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.13 + + [ Ben Hutchings ] + * kbuild: do not check for ancient modutils tools + + [ Uwe Kleine-König ] + * [rt] bump version to 3.2.12-rt22 + + [ Bastian Blank ] + * [s390x] Ignore ABI change. + + -- Bastian Blank Wed, 28 Mar 2012 13:40:26 +0200 + +linux-tools (3.2.7-2) unstable; urgency=high + + * Apply upstream changes to fix various buffer overflow bugs: + - perf tools: Use scnprintf where applicable + - perf tools: Incorrect use of snprintf results in SEGV + + -- Ben Hutchings Tue, 20 Mar 2012 04:54:22 +0000 + +linux-2.6 (3.2.12-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.11 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.12 + - aio: fix io_setup/io_destroy race + - aio: fix the "too late munmap()" race + - vfs: fix double put after complete_walk() + - acer-wmi: No wifi rfkill on Lenovo machines (Closes: #655941) + - tcp: fix false reordering signal in tcp_shifted_skb + - r8169: corrupted IP fragments fix for large mtu + - tcp: don't fragment SACKed skbs in tcp_mark_head_lost() + - tcp: fix tcp_shift_skb_data() to not shift SACKed data below snd_una + - block: Fix NULL pointer dereference in sd_revalidate_disk + (Closes: #649735) + - block: fix __blkdev_get and add_disk race condition + + [ Ben Hutchings ] + * [powerpc] Enable KVM_GUEST + * [s390] Ignore arch_pick_mmap_layout version change; it should not be + needed by modules (fixes FTBFS) + * [x86] Disable POHMELFS; this version is obsolete + * epoll: Don't limit non-nested epoll paths + * CIFS: Fix a spurious error in cifs_push_posix_locks + * [rt] bump rt patch to version 3.2.11-rt20 + * aufs: Update to aufs3.2-20120312 + * tcp: fix syncookie regression + * ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu + + [ Jonathan Nieder ] + * [x86] Enable RTS5139 as module (Closes: #663912) + + -- Ben Hutchings Tue, 20 Mar 2012 04:32:51 +0000 + +linux-2.6 (3.2.10-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.10 + - regset: Prevent null pointer reference on readonly regsets + (CVE-2012-1097) + + [ Uwe Kleine-König ] + * [rt] bump rt patch to version 3.2.9-rt17 + * [rt] fix conflict between the security restrictions on links introduced in + 3.2.9-1 and rt (Closes: #663269) + + [ Aurelien Jarno ] + * [mips,mipsel] Mark ext4-modules as provided by the kernel-image udeb, remove + ide-core-modules provide. + + [ Ben Hutchings ] + * [x86,ia64] PCI/hotplug: Build-in common hotplug drivers: + - Change HOTPLUG_PCI, HOTPLUG_PCI_PCIE to built-in + - [x86] Change HOTPLUG_PCI_ACPI to built-in (Closes: #663433) + - [ia64] Enable HOTPLUG_PCI_SGI as built-in + * linux-headers: Remove unused, broken symlinks to Kbuild (Closes: #663597) + * udeb: Remove dependency of {pcmcia,usb}-storage-modules on ide-core-modules + * [mips,mipsel] Mark ata-modules as provided by the kernel-image udeb + for most flavours + + -- Bastian Blank Tue, 13 Mar 2012 17:19:32 +0100 + +linux-tools (3.2.7-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.7 + - perf tools: Fix perf stack to non executable on x86_64 + - perf evsel: Fix an issue where perf report fails to show the proper + percentage + + -- Ben Hutchings Mon, 05 Mar 2012 00:19:02 +0000 + +linux-2.6 (3.2.9-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.8 + - [i386] i387: move TS_USEDFPU flag from thread_info to task_struct + - [x86] additional refactoring of FPU/SSE state save and restore + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.9 + - vfs: fix d_inode_lookup() dentry ref leak + - target: Allow control CDBs with data > 1 page + - epoll: introduce POLLFREE to flush ->signalfd_wqh before kfree() + - epoll: ep_unregister_pollwait() can use the freed pwq->whead + - epoll: limit paths (CVE-2011-1083) + - cdrom: use copy_to_user() without the underscores + + [ Bastian Blank ] + * [mips,mipsel] Also remove ext4 modules from installer. + + [ Ben Hutchings ] + * Update debconf template translations: + - Update Dutch (Willem Kuyn) (Closes: #658736) + - Add Polish (Michał Kułach) (Closes: #658912) + * Bump ABI to 2 + * fs: Introduce and enable security restrictions on links: + - Do not follow symlinks in /tmp that are owned by other users + (sysctl: fs.protected_symlinks) + - Do not allow unprivileged users to create hard links to sensitive files + (sysctl: fs.protected_hardlinks) (Closes: #609455) + + This breaks the 'at' package in stable, which will be fixed shortly + (see #597130) + The precise restrictions are specified in Documentation/sysctl/fs.txt in + the linux-doc-3.2 and linux-source-3.2 packages. + * iwlwifi: fix key removal (Closes: #651199) + * cgroups: Set CGROUP_PERF + * hid: Enable HID_HOLTEK, HID_PRIMAX, HID_SPEEDLINK, HID_WIIMOTE as modules, + HID_ACRUX_FF + * media/rc: Enable RC_ATI_REMOTE as module + * gspca: Enable USB_GSPCA_TOPRO as module + * dvb-usb: Enable DVB_USB_PCTV452E, DVB_USB_MXL111SF as modules + + [ Uwe Kleine-König ] + * [x86] Update rt featureset to 3.2.9-rt15 + + -- Ben Hutchings Sun, 04 Mar 2012 15:32:20 +0000 + +linux-2.6 (3.2.7-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.7 + + [ Ben Hutchings ] + * Add Turkish debconf template translations (Mert Dirik) (Closes: #660117) + * [amd64] Disable BLK_DEV_IDEPNP, BLK_DEV_OPTI621, IDE_GENERIC + * Use libata-based drivers for most of the remaining PATA controllers: + - pata_legacy replaces ide-generic + - pata_isapnp replaces ide-pnp + - pata_opti replaces opti621 + - pata_hpt366 and pata_hpt37x replace hpt366 + - pata_ninja32 replaces delkin_cb + - pata_cs5535 replaces cs5535 + - pata_winbond replaces sl82c105 + - [alpha] pata_cypress replaces cy82c693 + - [hppa] pata_ns87415 replaces ns87415 + - [sparc] Various replacements, as for x86 in 2.6.32-10 + * Disable old IDE subsystem [!ia64,m68k]: + - Disable BLK_DEV_IT8172, BLK_DEV_IT8213, BLK_DEV_TC86C001, BLK_DEV_TRM290 + - [alpha] Disable BLK_DEV_4DRIVES, BLK_DEV_ALI14XX, BLK_DEV_DTC2278, + BLK_DEV_HT6560B, BLK_DEV_QD65XX, BLK_DEV_UMC8672 + * fs: Enable EFI_PARTITION in all configurations (Closes: #660582) + * [i386] Re-enable INTEL_IOMMU, IRQ_REMAP + * [mips/r5k-ip32] Enable INPUT_SGI_BTNS (previously INPUT_SGIO2_BTNS) + * [powerpc/powerpc64] Enable IBM_EMAC (previously IBM_NEW_EMAC) + * [x86] drm/i915: do not enable RC6p on Sandy Bridge (Closes: #660265) + * ipsec: be careful of non existing mac headers (Closes: #660804) + * version: Use maintainer rather than uploader address for official + binary packages + + [ Bastian Blank ] + * Don't advertise Xen support for rt images. (closes: #659988) + * [m68k,mips,mipsel] Use ext4 for all ext-variants. (closes: #660446) + * [m68k,mips,mipsel] Don't built-in ramdisk support. + * [hppa,mips,mipsel] Don't built-in cramfs support. + * [alpha,hppa] Don't built-in ext2. + * Remove IDE trigger for LED support. + * Remove all framebuffer bootup logos. + * NFSv4: Fix an Oops in the NFSv4 getacl code. + + -- Bastian Blank Tue, 28 Feb 2012 16:00:41 +0100 + +linux-2.6 (3.2.6-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.5 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.6 + - ALSA: hda - Apply 0x0f-VREF fix to all ASUS laptops with ALC861/660 + (Closes: #657302) + - [armhf] vfp: flush thread hwstate before restoring context from sigframe + - proc: mem_release() should check mm != NULL + - proc: make sure mem_open() doesnt pin the targets memory + - [arm] sched/rt: Fix task stack corruption under + __ARCH_WANT_INTERRUPTS_ON_CTXSW + - eCryptfs: Infinite loop due to overflow in ecryptfs_write() + - iscsi-target: Fix reject release handling in iscsit_free_cmd() + - iscsi-target: Fix double list_add with iscsit_alloc_buffs reject + - pcmcia: fix socket refcount decrementing on each resume + + [ Aurelien Jarno ] + * hwmon: backport IT8728F support for linux 3.3. + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.2.5-rt12 + * [i386] enable rt featureset for 686-pae + + [ Arnaud Patard ] + * Merge ixp4xx oops fix when probing mtd. + + [ Ben Hutchings ] + * Change linux-image dependencies to allow kmod as an alternative to + module-init-tools + * relay: prevent integer overflow in relay_open() + * builddeb: Don't create files in /tmp with predictable names + * ath9k: fix a WEP crypto related regression (Closes: #659484) + + -- Ben Hutchings Thu, 16 Feb 2012 02:38:38 +0000 + +linux-2.6 (3.2.4-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.3 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.4 + - eCryptfs: Sanitize write counts of /dev/ecryptfs + - eCryptfs: Make truncate path killable + - eCryptfs: Check inode changes in setattr + - drm/i915: paper over missed irq issues with force wake voodoo + - tpm_tis: add delay after aborting command (Closes: #649033) + - USB: ftdi_sio: fix initial baud rate (Closes: #658164) + - USB: Realtek cr: fix autopm scheduling while atomic (Closes: #656724) + + [ Ben Hutchings ] + * [armel] Add mv78xx0 flavour; thanks to Steve McIntyre for the config + * net: Disable FIXED_PHY; this driver only causes trouble + * PCI: Rework ASPM disable code (fixes power usage regression on some + systems) + + [ Bastian Blank ] + * Remove unneeded scmversion workaround. + + -- Bastian Blank Sun, 05 Feb 2012 15:42:21 +0100 + +linux-2.6 (3.2.2-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.2 + - ext4: fix undefined behavior in ext4_fill_flex_info() (CVE-2009-4307) + - Unused iocbs in a batch should not be accounted as active (CVE-2012-0058) + - uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map() + - [arm] proc: clear_refs: do not clear reserved pages + + [ Ben Hutchings ] + * Clean up linux-image maintainer scripts: + - Stop changing 'build' and 'source' symlinks; these now belong to the + linux-headers packages + - Remove unused configuration variables + - prerm: Remove last vestige of /usr/doc transition + - postrm: Remove modules.*.bin; currently modules.builtin.bin is left + behind + * [alpha] Build with gcc-4.5 (Closes: #657112) + * aufs: Update to aufs3.2-20120109 (fixes FTBFS on m68k) + * [m68k] Fix assembler constraint to prevent overeager gcc optimisation + * sdhci-pci: Include driver in installer + * [armel] udeb: Do not attempt to build lzo-modules udeb as lzo_compress + is now built-in (fixes FTBFS) + * [armhf] udeb: Include rt2800usb in nic-modules, replacing rt2870sta + which was removed from the kernel + * drm: Fix authentication kernel crash + * xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink() + * jbd: Issue cache flush after checkpointing + * crypto: sha512 - make it work, undo percpu message schedule + - crypto: sha512 - reduce stack usage to safe number + * [x86] xen: size struct xen_spinlock to always fit in arch_spinlock_t + * l2tp: l2tp_ip - fix possible oops on packet receive + * macvlan: fix a possible use after free + * tcp: fix tcp_trim_head() to adjust segment count with skb MSS + * [x86] KVM: fix missing checks in syscall emulation (CVE-2012-0045) + + [ Thorsten Glaser ] + * [m68k] Use gcc-4.6 like (almost) all other architectures + * Pass the cflags define as CFLAGS_KERNEL and CFLAGS_MODULE to kbuild + * [m68k] Use cflags -ffreestanding (Closes: #648996) + + [ Aurelien Jarno ] + * [mips,octeon] Disabled CONFIG_FIXED_PHY as it conflicts with the octeon + phy driver. + + -- Ben Hutchings Wed, 01 Feb 2012 01:44:05 +0000 + +linux-tools (3.2.1-2) unstable; urgency=low + + * Add Vcs-{Svn,Browser} fields + * Reduce minimum version of linux-base to 3.4~ to support backports + + -- Ben Hutchings Tue, 24 Jan 2012 04:26:24 +0000 + +linux-2.6 (3.2.1-2) unstable; urgency=high + + [ Stefan Lippers-Hollmann ] + * udeb: Add missing modules to nic-wireless-modules: + - lib80211 encryption algorithms (lib80211_crypt_{wep,ccmptkip}) + needed for e.g. ipw2x00 wlan modules (Closes: #636259) + - ath9k_htc, carl9170 and rt2800{pci,usb} drivers + (Closes: #636321, #636353, #636385) + + [ Ben Hutchings ] + * Update Vcs-Browser URL for the switch to ViewVC + * Point Vcs-{Svn,Browser} at trunk branch, since the sid branch does + not always exist + * Build linux-libc-dev without multiarch if dpkg does not support it, + to support backports + * proc: clean up and fix /proc//mem handling (CVE-2012-0056) + + [ Aurelien Jarno ] + * [x86] Backport KVM nested VMX fixes from 3.3 to fix warnings and + crashes of L1 guests. + + -- Ben Hutchings Mon, 23 Jan 2012 15:10:04 +0000 + +linux-tools (3.2.1-1) unstable; urgency=low + + * New upstream release + + -- Ben Hutchings Thu, 19 Jan 2012 04:17:19 +0000 + +linux-2.6 (3.2.1-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.2 + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.1 + + [ Aurelien Jarno ] + * [arm, mips, mipsel, sh4] Add a virtio-modules udeb on flavours which + can be emulated by QEMU. + + [ Ben Hutchings ] + * media/dvb: Enable DVB_USB_IT913X as module (Closes: #653776) + * [arm] Remove use of possibly undefined BUILD_BUG_ON in + (fixes FTBFS) + * Install /lib/modules//modules.builtin in linux-image + packages + * [ia64] Add accept4() syscall (Closes: #647825) + * [x86] staging: Enable STAGING_MEDIA, which various drivers now depend on + (Closes: #654800) + * [um,m68k] Register a generic CPU device (fixes regression introduced by + the fix for #649216) + * [alpha] add io{read,write}{16,32}be functions, thanks to Michael Cree + * net: reintroduce missing rcu_assign_pointer() calls + * Input: ALPS - add support for protocol versions 3 and 4 + (Closes: #618422, #648207) + * [powerpc/powerpc64] udeb: Drop zlib-modules; ZLIB_DEFLATE is built-in + * [amd64] iommu: Enable INTEL_IOMMU, INTEL_IOMMU_FLOPPY_WA, IRQ_REMAP + * [amd64] cpufreq: Enable X86_P4_CLOCKMOD (Closes: #656328) + * Refresh list of related firmware packages for bug script + + [ Bastian Blank ] + * [amd64] crypt: Enable some amd64 only ciphers. + * Packaging updates: + - Use unicode. + - Cleanup config handling. + - Remove support for plain-xen image type. + - Allow disabling debug infos for unreleased builds. + + [ Arnaud Patard ] + * [armel] disable tomoyo and apparmor to allow kernel image to fit into flash. + * [armel] add back ixp4xx gpiolib patch + * [arm] backport topdown mmap support from rmk's tree + * [armel] Enable support from LaCIE kirkwood devices, thanks to Simon Guinot + (Closes: #655344) + * [armel] Backport 88f6282 A1 support + + [ Jurij Smakov ] + * [sparc] Add mpt2sas to scsi-common-modules udeb on sparc and sparc64, + needed by Niagara T3 machines. + + -- Ben Hutchings Wed, 18 Jan 2012 16:14:12 +0000 + +linux-2.6 (3.2~rc7-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - [powerpc] pasemi_mac: Fix building as module + - [x86] mpparse: Account for bus types other than ISA and PCI + (Closes: #586494) + - EHCI : Fix a regression in the ISO scheduler (Closes: #651382) + - [arm] setup: initialize arm_dma_zone_size earlier (Closes: #651215) + + [ Ben Hutchings ] + * [x86] et131x: Include driver in installer (Closes: #651440) + * security: Enable APPARMOR (Closes: #598408) + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.2-rc5-rt8 + + [ Bastian Blank ] + * Use xz compression for all packages. + + -- Bastian Blank Wed, 28 Dec 2011 14:55:38 +0100 + +linux-tools (3.2~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + -- Ben Hutchings Wed, 07 Dec 2011 01:53:15 +0000 + +linux-2.6 (3.2~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Update to aufs3.x-rcN-20111114 + * ieee802154: Enable IEEE802154_6LOWPAN as module + * can: Enable CAN_GW, CAN_EMS_PCMCIA, CAN_PEAK_PCI as modules + * nfc: enable NFC_NCI as module + * scsi: Enable MVUMI as module + * dm: Enable DM_THIN_PROVISIONING as module + * b43: Enable B43_PHY_HT + * [ia64,powerpc,sparc,x86] wireless: Enable MWIFIEX_PCIE as module + * udeb: Update configuration for 3.2: + - Provide the default configuration instead of including it from the + kernel-wedge package + - iwlagn is renamed to iwlwifi + - blowfish is renamed to blowfish_generic + + [ Uwe Kleine-König ] + * [amd64] reenable rt featureset with 3.2-rc4-rt5 + + -- Ben Hutchings Sat, 03 Dec 2011 23:07:41 +0000 + +linux-2.6 (3.1.8-2) unstable; urgency=high + + * igmp: Avoid zero delay when receiving odd mixture of IGMP queries + (Closes: #654876) (CVE-2012-0207) + + -- Ben Hutchings Tue, 10 Jan 2012 00:14:39 +0000 + +linux-2.6 (3.1.8-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.7 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.8 + - Revert "clockevents: Set noop handler in clockevents_exchange_device()", + included in stable update 3.1.5 (Closes: #653398) + - cfq-iosched: fix cfq_cic_link() race condition + - binary_sysctl(): fix memory leak + - cgroups: fix a css_set not found bug in cgroup_attach_proc + - iwlwifi: allow to switch to HT40 if not associated (Closes: #653423) + - futex: Fix uninterruptible loop due to gate_area + - drm/radeon/kms: bail on BTC parts if MC ucode is missing + - [sparc] sparc64: Fix masking and shifting in VIS fpcmp emulation. + - llc: llc_cmsg_rcv was getting called after sk_eat_skb. + - ipv4: reintroduce route cache garbage collector + - Revert "rtc: Disable the alarm in the hardware" (Closes: #652869) + + [ Ben Hutchings ] + * snapshot: Implement compat_ioctl (Closes: #502816) + * drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU + (Closes: #646376) + * rtc: Fix alarm rollover when day or month is out-of-range (Closes: #646429) + * l2tp: ensure sk->dst is still valid (Closes: #652503) + * Update Russian debconf template translations (Yuri Kozlov) + (Closes: #653716) + * v4l2-ioctl: integer overflow in video_usercopy() + * Restrict ioctl forwarding on partitions and logical volumes (CVE-2011-4127) + * [x86] KVM: Prevent starting PIT timers in the absence of irqchip support + (CVE-2011-4622) + + [ Jonathan Nieder ] + * prerm: Print an error message when aborting removal of the running + kernel (Closes: #601962) + + [ Aurelien Jarno ] + * [sh4] Remove core-modules udeb as it is empty. + * [sh4/sh7751r] Disable CONFIG_RTS7751R2D_1. Support for this board + implies IRQless IDE, which causes data corruption. + + -- Ben Hutchings Sun, 08 Jan 2012 16:31:16 +0000 + +linux-2.6 (3.1.6-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.6 + - staging: r8712u: Add new USB ID (Closes: #651622) + - [arm] setup: initialize arm_dma_zone_size earlier (Closes: #651215) + + [ Ben Hutchings ] + * [x86] Enable HYPERV, HYPERV_STORAGE, HYPERV_NET, HYPERV_UTILS, + HYPERV_MOUSE as modules (Closes: #652014) + * cciss: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler + (Closes: #650119) + * udeb: Update configuration: + - Provide the default configuration instead of including it from the + kernel-wedge package + - [x86] Include et131x (Closes: #651440) + - [x86] Include isci (Closes: #652897) + + -- Bastian Blank Fri, 23 Dec 2011 17:02:26 +0100 + +linux-tools (3.1.1-3) unstable; urgency=low + + * Fix s390x support. + + -- Aurelien Jarno Sun, 18 Dec 2011 19:32:12 +0100 + +linux-2.6 (3.1.5-1) unstable; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.5 + - bridge: correct IPv6 checksum after pull (Closes: #651469) + - USB: EHCI: fix HUB TT scheduling issue with iso transfer + (Closes: #651015) + - [x86] mpparse: Account for bus types other than ISA and PCI + (Closes: #586494) + + [ Bastian Blank ] + * Fix generation of revisions for the patch list. + + [ Hector Oron ] + * regulator: backport fix for nullpointer dereference in core. + + [ Ben Hutchings ] + * [x86] Enable MEMTEST (Closes: #613321, #646361) + - If bad RAM is detected, WARN and recommend a more thorough test + * brcmsmac: Fix I/O functions for MIPS and for big-endian architectures + * [x86] Enable GPIO_PCH, GPIO_ML_IOH, I2C_EG20T, PCH_CAN, PCH_DMA, + PCH_GBE, PCH_PHUB, SERIAL_PCH_UART, SPI_TOPCLIFF_PCH, USB_GADGET, + USB_EG20T as modules + + -- Ben Hutchings Sun, 11 Dec 2011 05:28:40 +0000 + +linux-2.6 (3.1.4-1) unstable; urgency=low + + * New upstream stable updates: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.2 + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.3 + - TTY: ldisc, wait for ldisc infinitely in hangup (Closes: #645071) + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.4 + + [ Martin Michlmayr ] + * [armel] Set the priority of pata-modules to standard since the + GLAN Tank uses PATA. + + [ Ben Hutchings ] + * Enable BCMA as module, BCMA_HOST_PCI and B43_BCMA (Closes: #649567) + but limit these to devices not supported by brcmsmac + * brcmsmac: Enable as module for all architectures + * Include module taint flags in bug reports + * lirc_serial: Fix various bugs that may result in a crash, deadlock or + other failure (Closes: #645811) + * amilo-rfkill: Use proper functions to write to the i8042 safely + * topology: Provide CPU topology in sysfs in !SMP configurations + (Closes: #649216) + + [ Bastian Blank ] + * Include generated headers. (closes: #650085) + + -- Bastian Blank Tue, 29 Nov 2011 14:14:14 +0100 + +linux-tools (3.1.1-2) unstable; urgency=low + + * Change the check for stale debian/control to tolerate binNMUs + (Closes: #649005) + * Rebuild with perl 5.14 (Closes: #649006) + + -- Ben Hutchings Thu, 17 Nov 2011 03:18:03 +0000 + +linux-tools (3.1.1-1) unstable; urgency=low + + * New upstream release + + [ Bastian Blank ] + * Rename to linux-tools. + * Use 3.0 (quilt) source format. + * Properly patch modpost symbol prefix setting. + * Build linux-tools binary package. + + -- Ben Hutchings Mon, 14 Nov 2011 04:57:47 +0000 + +linux-2.6 (3.1.1-1) unstable; urgency=high + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.1 + + [ Aurelien Jarno ] + * [s390x] Add s390x udebs, based on linux-kernel-di-s390x-2.6. + * [sparc64] Sync udebs with sparc. + + [ Ben Hutchings ] + * [powerpc] Fix module selection for {ata,ide,scsi-core}-modules udebs + * [alpha] wire up accept4 syscall, thanks to Michael Cree + * iwlagn: fix modinfo display for 135 ucode (Closes: #647958) + * [powerpc] ptrace: Fix build with gcc 4.6 + * [arm] add io{read,write}{16,32}be functions (fixes FTBFS) + * cifs, freezer: add wait_event_freezekillable and have cifs use it + (Closes: #488794) + * [alpha] Remove old, broken udeb configuration (Closes: #647586) + * DFSG: Remove drivers/staging/ft1000/ft1000-*/*.img, non-free + firmware for drivers we don't build + * hfs: fix hfs_find_init() sb->ext_tree NULL ptr oops (CVE-2011-2203) + * vmscan: fix shrinker callback bug in fs/super.c + * block: Always check length of all iov entries in blk_rq_map_user_iov() + * [x86] Add amilo-rfkill driver for some Fujitsu-Siemens Amilo laptops + (Closes: #631664) + + [ Arnaud Patard ] + * [arm] add missing ioread/write be functions to ixp4xx to fix FTBFS + * [armhf] allow to build kernel image for iMX51 and iMX53 and enable some + iMX53 platforms. + * [armhf] add ahci for iMX53, pata for iMX51 + + -- Ben Hutchings Sun, 13 Nov 2011 20:08:09 +0000 + +linux-2.6 (3.1.0-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.1 + - drm/i915: FBC off for ironlake and older, otherwise on by default + (Closes: #641622) + - drm/radeon: Update AVIVO cursor coordinate origin before x/yorigin + calculation (Closes: #585130) + - crypto: ghash - Avoid null pointer dereference if no key is set + + [ Ben Hutchings ] + * [powerpc/powerpc64] Add missing #include to LPAR console selection fix + * Make kernel-wedge package checks non-fatal in experimental builds + * [x86/!486] Enable INTEL_IDLE + * aufs: Update to aufs3.1-20111031 (Closes: #644687) + + [ Bastian Blank ] + * Use xz compression for debug packages. + * Make gcc-4.6 the default compiler. + * Use shorter versions in the package names. + * Remove linux-tools-* binary package. + * Drop external module packages stuff. + * Set default security module to Unix Discretionary Access Controls. + - Remove unneeded selinux boot parameter. + + -- Bastian Blank Thu, 03 Nov 2011 20:03:14 +0100 + +linux-2.6 (3.1.0~rc7-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * Build udebs for the installer + + -- Ben Hutchings Sun, 25 Sep 2011 22:52:50 +0100 + +linux-2.6 (3.1.0~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [ia64] Disable GENERIC_GPIO (fixes FTBFS) + * [i386] libertas: prioritize usb8388_olpc.bin firmware on OLPC machines + * [armel/ixp4xx] Add gpioblib support (fixes FTBFS) + * [i386] Fix alignment of alternative instruction entries (Closes: #640964) + + -- Ben Hutchings Wed, 21 Sep 2011 05:45:40 +0100 + +linux-2.6 (3.1.0~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * aufs: Disable until it is updated for Linux 3.1 + * rt: Disable until it is updated for Linux 3.1 + * nfs: Enable NFSv4.1/pNFS (Closes: #627655) + * [x86] ACPI: Enable ACPI_APEI_GHES as built-in (no longer modular). + Enable ACPI_APEI_MEMORY_FAILURE. + * netfilter: Enable IP_SET_HASH_NETIFACE as module + * net: Enable NFC, NFC_PN533 as modules + * video: Enable FB_UDL as module (Closes: #618261) + * target: Enable ISCSI_TARGET as module + * skge: Enable SKGE_GENESIS + * net/wireless: Enable RTL8192DE as module + * hwmon: Enable SENSORS_EMC2103, SENSORS_LM95245, SENSORS_MAX1668, + SENSORS_NTC_THERMISTOR, SENSORS_SMM665 as modules + * [i386] Enable GPIO_CS5535, MFD_CS5535, CS5535_MFGPT, + CS5535_CLOCK_EVENT_SRC, GPIO_VX855, MFD_VX855 as modules; + [i386/486] Enable OLPC_XO1_PM, OLPC_XO1_RTC, OLPC_XO1_SCI, OLPC_XO15_SCI + (Closes: #639113) + * media/dvb: Enable DVB_NET + * media/rc: Enable IR_MCE_KBD_DECODER as module + * gspca: Enable USB_GSPCA_SE401 as module + * de4x5: Disable on all architectures except alpha (Closes: #639538) + * wl128x: Disable on all flavours except armhf/omap + * Make bug script accept failure of lspci (Closes: #639439) + * [alpha] Disable GENERIC_GPIO (Closes: #638696) + + -- Ben Hutchings Mon, 29 Aug 2011 14:48:28 +0100 + +linux-2.6 (3.0.0-6) unstable; urgency=high + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.0.7-rt20 + + [ Bastian Blank ] + * Add stable 3.0.7, including: + - drm/radeon: Update AVIVO cursor coordinate origin before x/yorigin + calculation (Closes: #585130) + - ipv6: fix NULL dereference in udp6_ufo_fragment() (Closes: #643817) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.7 + + [ Ben Hutchings ] + * [powerpc] Change ATA, PATA_MACIO from module to built-in (Closes: #641210) + * [powerpc] Change IDE, IDE_GD from built-in to module + * Add stable 3.0.8, including: + - cputimer: Cure lock inversion + - drm/ttm: ensure ttm for new node is bound before calling move_notify() + - drm/ttm: unbind ttm before destroying node in accel move cleanup + - CIFS: Fix ERR_PTR dereference in cifs_get_root + - xfs: start periodic workers later + - mm: fix race between mremap and removing migration entry + - x25: Prevent skb overreads when checking call user data + - crypto: ghash - Avoid null pointer dereference if no key is set + (CVE-2011-4081) + - hfsplus: Fix kfree of wrong pointers in hfsplus_fill_super() error path + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.8 + * [{mips,mipsel}/{4,5}kc-malta] Disable X.25, as in all other configurations + * ark3116: Fix initialisation order (Closes: #640391) + * Add empty files to trigger generation of kernel-image udebs + * aufs: Update to aufs3.0-20111031 (Closes: #644687) + * xfs: Fix possible memory corruption in xfs_readlink (CVE-2011-4077) + * oom: fix integer overflow of points in oom_badness (CVE-2011-4097) + + -- Ben Hutchings Tue, 01 Nov 2011 14:50:06 +0000 + +linux-2.6 (3.0.0-5) unstable; urgency=low + + [ Ben Hutchings ] + * Bump ABI to 2 + * kobj_uevent: Ignore if some listeners cannot handle message + (Closes: #641661) + * Build udebs for the installer + * Add stable 3.0.5 and 3.0.6, including: + - TTY: pty, fix pty counting + - pata_via: disable ATAPI DMA on AVERATEC 3200 + - atm: br2684: Fix oops due to skb->dev being NULL + - alarmtimers: Avoid possible null pointer traversal + - alarmtimers: Memset itimerspec passed into alarm_timer_get + - alarmtimers: Avoid possible denial of service with high freq periodic + timers + - rtc: Fix RTC PIE frequency limit + - x86, perf: Check that current->mm is alive before getting user callchain + - xen/smp: Warn user why they keel over - nosmp or noapic and what to use + instead. (Closes: #637308) + - drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate + - net/9p: fix client code to fail more gracefully on protocol error + - virtio: Fix the size of receive buffer packing onto VirtIO ring. + - virtio: VirtIO can transfer VIRTQUEUE_NUM of pages. + - fs/9p: Fid is not valid after a failed clunk. + - fs/9p: When doing inode lookup compare qid details and inode mode bits. + - fs/9p: Always ask new inode in create + - net/9p: Fix the msize calculation. + - 9p: close ACL leaks + - fs/9p: Add fid before dentry instantiation + - net/9p: Fix kernel crash with msize 512K + - fs/9p: Always ask new inode in lookup for cache mode disabled + - vfs: restore pinning the victim dentry in vfs_rmdir()/vfs_rename_dir() + - cifs: fix possible memory corruption in CIFSFindNext (CVE-2011-3191) + - writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage + - writeback: update dirtied_when for synced inode to prevent livelock + - fib:fix BUG_ON in fib_nl_newrule when add new fib rule + - scm: Capture the full credentials of the scm sender + - vlan: reset headers on accel emulation path + - xfrm: Perform a replay check after return from async codepaths + - bridge: Pseudo-header required for the checksum of ICMPv6 + - bridge: fix a possible use after free + - TPM: Call tpm_transmit with correct size (CVE-2011-1161) + - TPM: Zero buffer after copying to userspace (CVE-2011-1162) + - ALSA: fm801: Gracefully handle failure of tuner auto-detect + (Closes: #641946) + - btrfs: fix d_off in the first dirent + - ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not + succeed + - ARM: 7099/1: futex: preserve oldval in SMP __futex_atomic_op + - ALSA: usb-audio: Check for possible chip NULL pointer before clearing + probing flag + - cfg80211: Fix validation of AKM suites + - iwlagn: fix dangling scan request + - block: Free queue resources at blk_release_queue() (Closes: #631187) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.5 + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.6 + * Make taskstats require root access (CVE-2011-2494) + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.0.6-rt16 (Closes: #643301) + + -- Ben Hutchings Wed, 05 Oct 2011 15:14:34 +0100 + +linux-2.6 (3.0.0-4) unstable; urgency=low + + [ Ben Hutchings ] + * Make bug script accept failure of lspci (Closes: #639439) + * [alpha] Disable GENERIC_GPIO (Closes: #638696) + * Add stable 3.0.4, including: + - loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other + - Btrfs: fix an oops of log replay + - ext4: Fix ext4_should_writeback_data() for no-journal mode + - ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode + - ext4: Resolve the hang of direct i/o read in handling + EXT4_IO_END_UNWRITTEN. + - ext4: fix nomblk_io_submit option so it correctly converts uninit blocks + - xen-blkfront: Drop name and minor adjustments for emulated scsi devices + - xen/x86: replace order-based range checking of M2P table by linear one + - rt2x00: fix order of entry flags modification + - Add a personality to report 2.6.x version numbers + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.4 + * sendmmsg/sendmsg: fix unsafe user pointer access + * rt2x00: fix crash in rt2800usb_write_tx_desc + * rt2x00: fix crash in rt2800usb_get_txwi (Closes: #636531) + * [sparc] Only Panther cheetah+ chips have POPC (Closes: #639949) + * uvcvideo: Fix crash when linking entities (Closes: #637740) + * Update Spanish debconf template translations (Omar Campagne) + (Closes: #636242) + + [ Moritz Muehlenhoff ] + * Update German Debconf translation. Thanks to Holger Wansing + (Closes: #641487) + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.0.4-rt14 + + -- Ben Hutchings Mon, 19 Sep 2011 14:40:42 +0100 + +linux-2.6 (3.0.0-3) unstable; urgency=low + + [ Ben Hutchings ] + * Disable SENSORS_SHT15, unlikely to be usable on any supported platform + (Closes: #638696) + * Add stable 3.0.3, including: + - atm: br2864: sent packets truncated in VC routed mode (Closes: #638656) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.3 + * netfilter: TCP and raw fix for ip_route_me_harder (fixes case where + SNAT/masquerading is not done) + * Remove net device features from bug reports (Closes: #638956) + * [mips,mipsel] Ignore nfs ABI changes made in 3.0.0-2; fixes FTBFS + * genirq: Fix wrong bit operation + * befs: Validate length of long symbolic links (CVE-2011-2928) + * CIFS: Fix memory corruption on mount (Closes: #635344) + * x86-32, vdso: On system call restart after SYSENTER, use int $0x80 + * drm/ttm: fix ttm_bo_add_ttm(user) failure path + * fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message + + -- Ben Hutchings Sat, 27 Aug 2011 08:04:02 +0100 + +linux-2.6 (3.0.0-2) unstable; urgency=high + + [ Aurelien Jarno ] + * Add configuration files for s390x architecture. + + [ Ben Hutchings ] + * linux-libc-dev: Install include/asm under arch-specific directory + (thanks to Aurelien for correcting the directory); mark package as + multi-arch-coinstallable (Multi-Arch: same) + * [powerpc] Use libata-based drivers for most PATA controllers + (Closes: #636854): + - Various drivers replaced as for x86 in 2.6.32-10 + - pata_macio replaces ide_pmac + * Add stable 3.0.2, including: + - net: Cap number of elements for sendmmsg + - net: Fix security_socket_sendmsg() bypass problem + - [x86] xen: allow enable use of VGA console on dom0 + - net: Compute protocol sequence numbers and fragment IDs using MD5 + - cifs: cope with negative dentries in cifs_get_root + - ALSA: snd-usb: avoid dividing by zero on invalid input + - ipv6: make fragment identifications less predictable (CVE-2011-2699) + - sch_sfq: fix sfq_enqueue() (Closes: #631945) + - gre: fix improper error handling + - ecryptfs: Add mount option to check uid of device being mounted + = expect uid + - ecryptfs: Return error when lower file pointer is NULL + - ext{3,4}: Properly count journal credits for long symlinks + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.2 + * [x86] Enable RTS_PSTOR as module + + [ maximilian attems ] + * Add stable 3.0.1, including: + - gro: Only reset frag0 when skb can be pulled (CVE-2011-2723) + - staging: comedi: fix infoleak to userspace (CVE-2011-2909) + - rtc: limit frequency + - CIFS: Fix oops while mounting with prefixpath + - [SCSI] fix crash in scsi_dispatch_cmd() + - tracing: Fix bug when reading system filters on module removal + - tracing: Have "enable" file use refcounts like the "filter" file + - ext4: fix i_blocks/quota accounting when extent insertion fails + - ext4: free allocated and pre-allocated blocks when check_eofblocks_fl + fails + - ext3: Fix oops in ext3_try_to_allocate_with_rsv() + - nfsd4: remember to put RW access on stateid destruction + - nfsd4: fix file leak on open_downgrade + - NFS: Fix spurious readdir cookie loop messages + - proc: fix a race in do_io_accounting() + - ipc/sem.c: fix race with concurrent semtimedop() timeouts and IPC_RMID + - [armel,armhf,hppa] dm io: flush cpu cache with vmapped io + - dm snapshot: flush disk cache when merging + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.1 + + [ Jonathan Nieder ] + * perf: do not look at ./config for configuration (Closes: #632923) + (CVE-2011-2905) + + [ Uwe Kleine-König ] + * [amd64] Update rt featureset to 3.0.1-rt11 + + -- Ben Hutchings Tue, 16 Aug 2011 06:08:53 +0100 + +linux-kbuild-2.6 (3.0.0-2) unstable; urgency=low + + * Include new script depmod.sh (Closes: #635539) + + -- Ben Hutchings Fri, 29 Jul 2011 01:00:20 +0200 + +linux-kbuild-2.6 (3.0.0-1) unstable; urgency=low + + * New upstream release + + -- Ben Hutchings Sun, 24 Jul 2011 15:38:35 +0200 + +linux-2.6 (3.0.0-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_3.0 + + [ maximilian attems ] + * Topconfig enable modular VIDEO_SR030PC30, VIDEO_NOON010PC30, + SOC_CAMERA_IMX074, SOC_CAMERA_OV2640, SOC_CAMERA_OV6650, + SOC_CAMERA_OV9740, USB_YUREX. + * [x86] enable modular VIDEO_VIA_CAMERA. + * [x86_32] enable modular XO15_EBOOK. + * ALSA: hda - Enable auto-parser as default for Conexant codecs. + + [ Ben Hutchings ] + * linux-support, linux-tools: Use dh_python2 instead of dh_pysupport + * aufs: Update for 3.0 + * [amd64] Enable PCMCIA_AHA152X as module (Closes: #632929) + * Update debconf template translations: + - Slovak (Slavko) + * [x86] comedi: Enable the same drivers as in stable (squeeze), except + for ISA drivers on amd64 (Closes: #633516) + * Reduce required initramfs-tools version to 0.99~, to ease backporting + * [armhf/mx5] Explicitly configure this flavour to support i.MX51; it + is not currently possible to support other i.MX5x processors as well + + [ Arnaud Patard ] + * Merge ixp4xx build fix and enable ixp4xx back + + [ Aurelien Jarno ] + * [mips/octeon] Disable MEGARAID_SAS, SUSPEND, HIBERNATION, PM_RUNTIME. + Enable FUSION, FUSION_SAS, HW_RANDOM, HW_RANDOM_OCTEON, + OCTEON_MGMT_ETHERNET, CONFIG_OCTEON_ETHERNET. + + [ Bastian Blank ] + * [xen] Allow autoloading of backend drivers. + + [ Uwe Kleine-König ] + * [amd64] Add rt featureset with 3.0-rt2 patch set + + -- Ben Hutchings Sun, 24 Jul 2011 02:42:27 +0200 + +linux-2.6 (3.0.0~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Topconfig enable modular USB_NET_KALMIA, I2C_DIOLAN_U2C, SMBUS, + SENSORS_SMBUS, SENSORS_SHT21, SENSORS_EMC6W201, SENSORS_SCH5627, + SENSORS_ADS1015, SENSORS_W83795, SENSORS_DS620, SENSORS_LINEAGE, + SENSORS_LTC4151, SENSORS_LTC4261, SENSORS_MAX16065, SENSORS_MAX6639, + SENSORS_MAX6642, BT_WILINK. + * [x86_32] enable modular I2C_PXA. + * [x86] enable modular SENSORS_FAM15H_POWER. + * drm/i915: Hold struct_mutex during i915_save_state/i915_restore_state. + * [thinkpad]: Add KEY_MICMUTE and enable it on Lenovo X220. + * [m68k]: resources: Add lookup_resource(). + * m68k/atari: Reserve some ST-RAM early on for device buffer use. + * ALSA: hda - Handle -1 as invalid position, too + * ALSA: hda - Judge playback stream from stream id in azx_via_get_position() + + [ Ben Hutchings ] + * [x86] Enable SCSI_ISCI as module + + -- maximilian attems Tue, 05 Jul 2011 11:05:43 +0200 + +linux-kbuild-2.6 (3.0.0~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + -- Ben Hutchings Wed, 29 Jun 2011 02:32:31 +0100 + +linux-2.6 (3.0.0~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - fix wrong iput on d_inod. (closes: #631255, #631802) + + [ maximilian attems ] + * [x86] enable some comedi modules. (closes: #631199) + * [kirkwood] Enable sound support for the HP t5325 (closes: #631762) + + [ Arnaud Patard ] + * [armel] disable ixp4xx, until upstream agrees on how to fix + the build error + * [armel] Remove configuration options which don't exist anymore + * [armhf] disable net dma/async tx on mx5 as it can't work + + -- maximilian attems Tue, 28 Jun 2011 11:55:21 +0200 + +linux-2.6 (3.0.0~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Fixes. (closes: #627976) + + [ maximilian attems ] + * [x86] enable modular INTEL_OAKTRAIL, ACPI_APEI_PCIEAER. + * Topconfig enable modular RADIO_WL1273, RADIO_WL128X. + + [ Ben Hutchings ] + * rt2800pci: Add device ID for RT539F device (Closes: #630960) + * atm: Enable for all architectures except m68k, s390 (Closes: #630900) + + -- maximilian attems Tue, 21 Jun 2011 15:00:23 +0200 + +linux-2.6 (3.0.0~rc3-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [i386] idle: EXPORT_SYMBOL(default_idle, pm_idle) if + CONFIG_APM_MODULE (only); fixes FTBFS + + [ maximilian attems ] + * Update configs. + * Topconfig enable BPF_JIT. (closes: #630553) + * Update debconf pt (Américo Monteiro) translations. (closes: #627631) + * Add kbuild fixes out of linux-next. + + -- maximilian attems Thu, 16 Jun 2011 15:04:33 +0200 + +linux-2.6 (3.0.0~rc2-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Newer Standards-Version 3.9.2 without changes. + + [ Hector Oron ] + * [armel/iop32x] Fix FTBFS (Closes: #629342) + + [ Aurelien Jarno ] + * [mips,mipsel] Update arch/mips/kernel/i8259.c to fix FTBFS. + * [mips,mipsel] Remove explicit disable of CONFIG_DRM_NOUVEAU and + CONFIG_DRM_RADEON_KMS. + + [ Ben Hutchings ] + * perf: Cancel -Werror compiler option; fixes FTBFS with perl 5.14 + * qla4xxx: Remove our fix for #598503; it has now been fixed upstream + in a different way and the two changes resulted in FTBFS + * [ia64] nouveau: Disable ACPI support. It probably wasn't very useful + on ia64, and now depends on mxm-wmi which is definitely x86-only. + * Make gcc-4.5 the default compiler (except for alpha, hppa and m68k) + * Restore xen-linux-system-- packages + + -- Ben Hutchings Thu, 09 Jun 2011 01:10:53 +0100 + +linux-kbuild-2.6 (3.0.0~rc1-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + * Remove docproc, no longer required for module builds + + -- Ben Hutchings Wed, 01 Jun 2011 10:21:01 +0100 + +linux-2.6 (3.0.0~rc1-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA + (Closes: #627492) + * cgroups: Disable memory resource controller by default. Allow it + to be enabled using kernel parameter 'cgroup_enable=memory'. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) (this change was accidentally + omitted from 2.6.39-1) + * fs: Enable FHANDLE + * cgroups: Enable CGROUP_MEM_RES_CTLR_SWAP but not + CGROUP_MEM_RES_CTLR_SWAP_ENABLED. Swap accounting can be enabled + using kernel parameter 'swapaccount'. + * ipv4: Enable IP_FIB_TRIE_STATS + * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC, + IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT, + IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET, + IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules + * net/sched: Enable NET_SCH_QFQ as module + * can: Enable CAN_SOFTING, CAN_SOFTING_CS as modules + * mtd: Enable MTD_SWAP as module + * of, proc: Enable PROC_DEVICETREE + * dm: Enable DM_RAID, DM_FLAKEY as modules. Note these are currently + experimental. + * target: Enable TCM_FC as module + * net/wireless/ath: Enable CARL9170 as module (carl9170, replacing + ar9170usb) + * rtlwifi: Enable RTL8192SE as module (Closes: #590280) + * net/wireless: Enable MWIFIEX, MWIFIEX_SDIO as modules + * net/usb: Enable USB_VL600 as module + * tablet: Enable drivers for all possible architectures and flavours + * tablet: Enable TABLET_USB_HANWANG as module + * pps: Enable PPS_CLIENT_PARPORT as module + * ptp: Enable PTP_1588_CLOCK, PTP_1588_CLOCK_GIANFAR, + PTP_1588_CLOCK_IXP46X as modules + * [x86] watchdog: Enable SP5100_TCO, NV_TCO as modules + * media/rc: Enable IR_REDRAT3, RC_LOOPBACK as module + * [x86] media/rc: Enable IR_ITE_CIR, IR_FINTEK as modules + * gspca: Enable USB_GSPCA_KINECT as module + * [i386] radio: Enable RADIO_MIROPCM20 as module + * s3fb: Enable FB_S3_DDC + * viafb: Enable FB_VIA_X_COMPATIBILITY + * es1968: Enable SND_ES1968_RADIO + * sound: Enable SND_ISIGHT, SND_LOLA as modules + * hid: Enable HID_ACRUX, HID_EMS_FF, HID_KEYTOUCH, HID_LCPOWER, + HID_MULTITOUCH, HID_ROCCAT_ARVO, HID_ROCCAT_KONEPLUS, + HID_ROCCAT_KOVAPLUS as modules + * usb-storage: Enable USB_STORAGE_REALTEK, USB_STORAGE_ENE_UB6250 as + modules + * mmc: Enable MMC_VUB300, MMC_USHC as modules + * memstick: Enable MEMSTICK_R592 as module + * [x86] edac: Enable EDAC_I7300 as module + * [i386] staging, video: Enable FB_OLPC_DCON as module + * [x86] staging, drm: Enable DRM_PSB as module + * crypto, net: Enable CRYPTO_USER_API_HASH, CRYPTO_USER_API_SKCIPHER as + modules + * [x86] block, xen: Enable XEN_BLKDEV_BACKEND as module + + -- Ben Hutchings Wed, 01 Jun 2011 06:41:14 +0100 + +linux-2.6 (2.6.39-3) unstable; urgency=low + + [ Ben Hutchings ] + * [x86] i915: Revert "drm/i915: Enable GMBUS for post-gen2 chipsets" + (Closes: #627575) + * linux-source-: Suggest libqt4-dev (for 'make xconfig') + instead of libqt3-mt-dev (Closes: #631666) + * [armhf] Add omap flavour, thanks to Sebastian Reichel + * [armhf] rtc-twl: Switch to using threaded irq + * bridge/netfilter: provide a cow_metrics method for fake_ops + (Closes: #629932) + * Update debconf template translations: + - Danish (Joe Dalton) (Closes: #632551) + - Slovak (Slavko) (Closes: #608684) + * partitions/efi: Fix crash (oops) caused by corrupted GUID partition + table (CVE-2011-1577) + * ksm: fix NULL pointer dereference in scan_get_next_rmap_item() + (CVE-2011-2183) + * inet_diag: Fix infinite loop in inet_diag_bc_audit() (CVE-2011-2213) + * taskstats: don't allow duplicate entries in listener mode (CVE-2011-2484) + * bluetooth: Prevent buffer overflow in l2cap config request + (CVE-2011-2497) + + [ maximilian attems ] + * Add stable 2.6.39.2, including: + - block: Fix crash (oops) in blkdev_get() on failed exclusive open + (Closes: #631574) + - nl80211: fix check for valid SSID size in scan operations (CVE-2011-2517) + - drm/radeon/kms: viewport height has to be even + - drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu + - fat: Fix corrupt inode flags when remove ATTR_SYS flag + - scsi: Fix oops caused by queue refcounting failure + - cifs: don't allow cifs_reconnect to exit with NULL socket pointer + - drm/radeon/kms: do bounds checking for 3D_LOAD_VBPNTR and bump array + limit + - TOMOYO: Fix oops in tomoyo_mount_acl() (CVE-2011-2518) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.2 + + -- Ben Hutchings Mon, 04 Jul 2011 07:08:10 +0100 + +linux-2.6 (2.6.39-2) unstable; urgency=low + + [ Ben Hutchings ] + * [x86] Enable BACKLIGHT_APPLE, replacing BACKLIGHT_MBP_NVIDIA + (Closes: #627492) + * cgroups: Disable memory resource controller by default. Allow it + to be enabled using kernel parameter 'cgroup_enable=memory'. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) (this change was accidentally + omitted from 2.6.39-1) + * [x86] Remove Celeron from list of processors supporting PAE. Most + 'Celeron M' models do not. + * Update debconf template translations: + - Swedish (Martin Bagge) (Closes: #628932) + - French (David Prévot) (Closes: #628191) + * aufs: Update for 2.6.39 (Closes: #627837) + * Add stable 2.6.39.1, including: + - ext4: dont set PageUptodate in ext4_end_bio() + - pata_cmd64x: fix boot crash on parisc (Closes: #622997, #622745) + - ext3: Fix fs corruption when make_indexed_dir() fails + - netfilter: nf_ct_sip: validate Content-Length in TCP SIP messages + - sctp: fix race between sctp_bind_addr_free() and + sctp_bind_addr_conflict() + - sctp: fix memory leak of the ASCONF queue when free asoc + - md/bitmap: fix saving of events_cleared and other state + - cdc_acm: Fix oops when Droids MuIn LCD is connected + - cx88: Fix conversion from BKL to fine-grained locks (Closes: #619827) + - keys: Set cred->user_ns in key_replace_session_keyring (CVE-2011-2184) + - tmpfs: fix race between truncate and writepage + - nfs41: Correct offset for LAYOUTCOMMIT + - xen/mmu: fix a race window causing leave_mm BUG() + - ext4: fix possible use-after-free in ext4_remove_li_request() + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39.1 + * Bump ABI to 2 + * netfilter: Enable IP_SET, IP_SET_BITMAP_IP, IP_SET_BITMAP_IPMAC, + IP_SET_BITMAP_PORT, IP_SET_HASH_IP, IP_SET_HASH_IPPORT, + IP_SET_HASH_IPPORTIP, IP_SET_HASH_IPPORTNET, IP_SET_HASH_NET, + IP_SET_HASH_NETPORT, IP_SET_LIST_SET, NETFILTER_XT_SET as modules + (Closes: #629401) + + [ Aurelien Jarno ] + * [mipsel/loongson-2f] Disable_SCSI_LPFC to workaround GCC ICE. + + -- Ben Hutchings Tue, 07 Jun 2011 12:14:05 +0100 + +linux-kbuild-2.6 (2.6.39-1) unstable; urgency=low + + * New upstream release + + -- Ben Hutchings Fri, 20 May 2011 04:53:57 +0100 + +linux-2.6 (2.6.39-1) unstable; urgency=low + + [ maximilian attems ] + * [x86] Enable CRYPTO_AES_NI_INTEL for all flavours. (closes: #623631) + * topconfig: Enable SND_USB_6FIRE, SND_FIREWIRE_SPEAKERS, + MEDIA_CONTROLLER, DVB_USB_TECHNISAT_USB2, USB_GSPCA_NW80X, + USB_GSPCA_VICAM, XEN_WDT, LOOPBACK_TARGET. + * [x86] Enable modular XEN_NETDEV_BACKEND. + * topconfig enable mem cgroup RESOURCE_COUNTERS, CGROUP_MEM_RES_CTLR. + (closes: #534964) + * Cleanup configs. + + [ Ben Hutchings ] + * [!x86] Disable TPM drivers. TPMs are currently only fitted in PCs. + * rt2800usb: Enable support for more USB devices including + Linksys WUSB600N (Closes: #596626) + * mm: Select SLAB allocator again. Although SLUB is currently the + upstream default, this was set as an experiment rather than a + recommendation! SLUB generally has poorer performance than SLAB on + larger systems. + * postinst: Remove specific support for running a ramdisk creator; + warn users that specify one in /etc/kernel-img.conf + * Require initramfs-tools >= 0.99, which installs a postinst hook + + [ Arnaud Patard ] + * [armel] Disable eeti touchscreen driver due to missing irq_to_gpio on + several platforms. + + -- maximilian attems Thu, 19 May 2011 15:34:37 +0200 + +linux-2.6 (2.6.39~rc7-1~experimental.1) experimental; urgency=low + + * [x86] Enable modular ASUS_WMI and ASUS_NB_WMI. (closes: #626141) + * [x86] Enable modular DELL_WMI_AIO, HP_ACCEL, INTEL_IPS, ACPI_IPMI. + * [x86/486] Enable modular XO1_RFKILL, XO15_EBOOK. + * topconfig: Enable modular NF_CONNTRACK_TIMESTAMP, NF_CONNTRACK_SNMP, + NETFILTER_XT_TARGET_AUDIT, NETFILTER_XT_MATCH_ADDRTYPE, + NETFILTER_XT_MATCH_DEVGROUP, NET_SCH_SFB, NET_SCH_MQPRIO, NET_SCH_CHOKE, + SATA_ACARD_AHCI, PATA_ARASAN_CF, SCSI_BNX2X_FCOE. + * Add nl debconf template translation. (closes: #622967) + Thanks willem kuyn . + * topconfig Enable modular RTL8192CU. (closes: #625613) + + -- maximilian attems Tue, 10 May 2011 15:11:00 +0200 + +linux-2.6 (2.6.39~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Enable SQUASHFS_{LZO,XZ}. (closes: #613658) + * [x86] Enable EASYCAP. (closes: #624505) + + [ Ben Hutchings + * xhci-hcd: Include in xhci-pci.c (fixes FTBFS on armel) + * [x86] Enable BRCMSMAC; the brcmsmac module replaces brcm80211 + (Closes: #625510) + + [ Aurelien Jarno ] + * drm/nouveau, drm/radeon: remove fix for non-powerpc/sparc/x86. + * [mips,mipsel] Disabled CONFIG_DRM_NOUVEAU and CONFIG_DRM_RADEON_KMS. + * [mips/octeon] Disabled CONFIG_HOTPLUG_CPU and CONFIG_PM. + + -- maximilian attems Sun, 08 May 2011 12:23:15 +0200 + +linux-2.6 (2.6.39~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [powerpc] kexec: Fix build failure on 32-bit SMP + * net/wireless: Adjust config for iwlegacy/iwlwifi split (Closes: #624124) + - Enable IWLWIFI_LEGACY as module + - Enable IWL4965 as module; it is no longer part of the iwlagn module + * [armhf] Actually install zImage into the linux-image package, thanks to + Sebastian Reichel + * [armhf] Build a linux-tools package + * Fix configuration for features that are no longer modular, thanks to + Sedat Dilek (Closes: #624372): + - bluetooth: Re-enable BT_L2CAP and BT_SCO as part of bluetooth module + - leds: Explicitly enable LEDS_CLASS as built-in + - mfd: Explicitly disable MFD_WM8994 + + [ Aurelien Jarno ] + * drm/nouveau, drm/radeon: fix build failure on mips. + + -- Ben Hutchings Fri, 29 Apr 2011 06:04:13 +0100 + +linux-2.6 (2.6.39~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [i386] Rename '686-bigmem' flavour to '686-pae'; remove '686' flavour. + For 686-class systems without PAE, the '486' flavour is more efficient + than the '686' flavour due to optimisation for uniprocessor systems. + * Add armhf architecture with mx5 flavour, thanks to Hector Oron and + Vagrant Cascadian (Closes: #621032) + + -- Ben Hutchings Sun, 24 Apr 2011 03:21:31 +0100 + +linux-2.6 (2.6.38-5) unstable; urgency=medium + + [ Thorsten Glaser ] + * [m68k] atari: Enable and compile in generic RTC + * [m68k] Backport the most urgent fixes from 2.6.39 + - Add helper functions to handle kernel faults, traps and + exceptions better (used by the other patches below) + - Add improved support for running under the ARAnyM emulator + (its native features interface) and emulated hardware + + block access (similar to virtio-block) + + console access (redirection to stdout) + + network access (Ethernet) (Closes: #599121) + * [m68k] Add patch from queue fixing atarifb console output on + machines with a lot of FastRAM by reserving some ST-RAM early + * [m68k] Add patch from mm mailing list to fix SLUB breakage + + [ Aurelien Jarno ] + * [mips/octeon] Disable CONFIG_HOTPLUG_CPU. + + [ Ben Hutchings ] + * rt2800pci, rt2800usb: Enable experimental support for more recent + chips (Closes: #623808) + * [x86] staging: Enable EASYCAP as module (Closes: #624505) + * Add stable 2.6.38.5, including: + - p54: Initialize extra_len in p54_tx_80211 + - nfsd4: Fix filp leak (regression introduced in 2.6.38.3) + - radeon: PLL tweaks for R7xx + - nouveau: Fix notifier memory corruption bug + - radeon: Fix bad shift in atom iio table parser + - [x86] i915: Sanitize the output registers after resume + - [x86] ideapad: Read brightness setting on brightness key notify + - ath9k_hw: Partially revert "fix dma descriptor rx error bit parsing" + - [s390] pfault: fix token handling + - ACPI/PM: Avoid infinite recurrence while registering power resources + - [hppa] slub: Disable use with DISCONTIGMEM && !NUMA + - vfs: avoid large kmalloc()s for the fdtable + - agp: Fix arbitrary kernel memory writes (CVE-2011-1745) + - agp: Fix OOM and buffer overflow (CVE-2011-1746) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.5 + * [hppa] Bump ABI to 2a + * mpt2sas: Prevent heap overflows and unchecked reads + (CVE-2011-1494, CVE-2011-1495) + * [armel] Prevent heap corruption in OABI semtimedop + * can: Add missing socket check in can/bcm release (CVE-2011-1598) + * ldm: Disable broken support for VBLK fragments (CVE-2011-1017) + + -- Ben Hutchings Sat, 07 May 2011 21:24:55 +0100 + +linux-2.6 (2.6.38-4) unstable; urgency=low + + * usb-audio: Define another USB ID for a buggy USB MIDI cable + (Closes: #617743) + * net: Enable BATMAN_ADV as module (Closes: #622361) + * Add stable 2.6.38.3, including: + - eCryptfs: Unlock page in write_begin error path + - irda: validate peer name and attribute lengths (CVE-2011-1180) + - irda: prevent heap corruption on invalid nickname + - nilfs2: fix data loss in mmap page write for hole blocks + - ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + - inotify: fix double free/corruption of stuct user + - perf: Fix task_struct reference leak + - ROSE: prevent heap corruption with bad facilities (CVE-2011-1493) + - [x86] mtrr, pat: Fix one cpu getting out of sync during resume + - Input: synaptics - fix crash in synaptics_module_init() + - ath9k: fix a chip wakeup related crash in ath9k_start + - mac80211: fix a crash in minstrel_ht in HT mode with no supported MCS + rates + - UBIFS: fix oops on error path in read_pnode + - quota: Don't write quota info in dquot_commit() + - mm: avoid wrapping vm_pgoff in mremap() + - wl12xx: fix potential buffer overflow in testmode nvs push + - Bluetooth: sco: fix information leak to userspace (CVE-2011-1078) + - bridge: netfilter: fix information leak (CVE-2011-1080) + - Bluetooth: bnep: fix buffer overflow (CVE-2011-1079) + - netfilter: ip_tables: fix infoleak to userspace (CVE-2011-1171) + - netfilter: arp_tables: fix infoleak to userspace (CVE-2011-1170) + - [x86] Revert "x86: Cleanup highmap after brk is concluded" + (Closes: #621072) + - Squashfs: handle corruption of directory structure + - ext4: fix a double free in ext4_register_li_request + - ext4: fix credits computing for indirect mapped files + - nfsd: fix auth_domain reference leak on nlm operations + - nfsd4: fix oops on lock failure + - char/tpm: Fix unitialized usage of data buffer (CVE-2011-1160) + - ipv6: netfilter: ip6_tables: fix infoleak to userspace (CVE-2011-1172) + - econet: 4 byte infoleak to the network (CVE-2011-1173) + - sound/oss: remove offset from load_patch callbacks + (CVE-2011-1476, CVE-2011-1477) + - inotify: fix double free/corruption of stuct user (CVE-2011-1479) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.3 + * Add stable 2.6.38.4, including: + - vm: Fix vm_pgoff wrap in stack expansion + - cifs: Always do is_path_accessible check in cifs_mount + - cifs: Check for private_data before trying to put it + - sn9c102: Restrict world-wirtable sysfs files + - UBIFS: Restrict world-writable debugfs files + - vm: Fix mlock() on stack guard page + - UBIFS: Fix assertion warnings + - perf: Fix task context scheduling + - fib: Add rtnl locking in ip_fib_net_exit + - l2tp: Fix possible oops on l2tp_eth module unload + - ipv6: Fix duplicate /proc/sys/net/ipv6/neigh directory entries. + - net_sched: fix ip_tos2prio + - pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev + - xfrm: Refcount destination entry on xfrm_lookup + - vlan: Take into account needed_headroom + - bridge: Reset IPCB when entering IP stack on NF_FORWARD + - futex: Set FLAGS_HAS_TIMEOUT during futex_wait restart setup + - oom-kill: Remove boost_dying_task_prio() + - UBIFS: Fix oops when R/O file-system is fsync'ed + - sched: Fix erroneous all_pinned logic + - vmscan: all_unreclaimable() use zone->all_unreclaimable as a name + - next_pidmap: fix overflow condition + - proc: Do proper range check on readdir offset + - [powerpc] Fix oops if scan_dispatch_log is called too early + - ehci: Unlink unused QHs when the controller is stopped + - USB: Fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices + - xhci: Fix math in xhci_get_endpoint_interval() + - xhci: Also free streams when resetting devices + - USB: Fix unplug of device with active streams + - bluetooth: Fix HCI_RESET command synchronization + - bridge: Reset IPCB in br_parse_ip_options + - ip: ip_options_compile() resilient to NULL skb route + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.4 + * [s390] pfault: fix token handling (Closes: #622570) + + -- Ben Hutchings Sat, 23 Apr 2011 03:17:53 +0100 + +linux-2.6 (2.6.38-3) unstable; urgency=low + + [ Ben Hutchings ] + * [ppc64] Add to linux-tools package architectures (Closes: #620124) + * [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284) + * appletalk: Fix bugs introduced when removing use of BKL + * ALSA: Fix yet another race in disconnection + * cciss: Fix lost command issue + * ath9k: Fix kernel panic in AR2427 + * ses: Avoid kernel panic when lun 0 is not mapped + * PCI/ACPI: Report ASPM support to BIOS if not disabled from command line + + [ Aurelien Jarno ] + * rtlwifi: fix build when PCI is not enabled. + + [ Martin Michlmayr ] + * rtlwifi: Eliminate udelay calls with too large values (Closes: #620204) + + -- Ben Hutchings Wed, 06 Apr 2011 13:53:30 +0100 + +linux-2.6 (2.6.38-2) unstable; urgency=low + + [ Ben Hutchings ] + * kconfig: Avoid buffer underrun in choice input (fixes FTBFS on mips) + * rt2800usb: Disable powersaving by default (Closes: #618930) + * b43: Enable B43_PHY_N (Closes: #619070) + * net/wireless: Enable RTL8192CE as module (Closes: #619051) + * Add configuration for Debian architecture ppc64, matching the + powerpc/powerpc64 flavour (Closes: #618976) + * Enable BOOT_PRINTK_DELAY (support for the boot_delay kernel parameter) + * [x86/!486] Enable TRANSPARENT_HUGEPAGE, TRANSPARENT_HUGEPAGE_MADVISE + (Closes: #618924) + * [x86/486] Enable X86_32_IRIS (IRIS power-off support) (Closes: #619493) + * Add stable 2.6.38.1, including: + - RDMA/cma: Fix crash in request handlers (CVE-2011-0695) + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.1 + * radeon: Add some sanity checks to obj info record parsing, thanks + to John Lindgren (Closes: #618847) + * [x86] KVM: remove isr_ack logic from PIC (Closes: #612105) + * Add stable 2.6.38.2, including: + - cgroups: If you list_empty() a head then don't list_del() it + - oom: Fix various bugs in victim task selection + - xen-kbdfront: Advertise either absolute or relative coordinates + - signal: Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing + the signal code (CVE-2011-1182) + - ext3: Skip orphan cleanup on rocompat fs + - sysctl: Restrict write access to dmesg_restrict + - proc: Protect mm start_code/end_code in /proc/pid/stat + - nfsd: Fix internal NFSv4.1 operation flags to be non-overlapping + - nfsd: Fix wrong limit used in NFSv4 session creation + - USB: Do not pass negative length to snoop_urb() + - cdc-acm: Fix various bugs that can lead to a crash or memory corruption + - fs: Fix deadlock in pivot_root() + - fs: Assign sb->s_bdi to default_backing_dev_info if the bdi is going away + - x86: Cleanup highmap after brk is concluded + - NFS: Fix a hang/infinite loop in nfs_wb_page() + - ext4: Skip orphan cleanup if fs has unknown ROCOMPAT features + For the complete list of changes, see: + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.38.2 + * [amd64] media/rc: Enable IR_NUVOTON as module (Closes: #619937) + * [x86] media/rc: Enable IR_WINBOND_CIR as module + * [x86] Enable DEBUG_SET_MODULE_RONX (Closes: #619838) + * SCSI: Enable TARGET_CORE and related modules (Closes: #619298) + * [hppa] Remove .size directive for flush_alias_page (should fix FTBFS) + + [ Jurij Smakov ] + * Bump CONFIG_NR_CPUS on sparc to 256 to accomodate T2+ machines + (Closes: #619435) + * Bump ABI to 2 + + -- Ben Hutchings Tue, 29 Mar 2011 05:31:03 +0100 + +linux-kbuild-2.6 (2.6.38-1) unstable; urgency=low + + * New upstream release + + -- Ben Hutchings Wed, 16 Mar 2011 13:45:58 +0000 + +linux-2.6 (2.6.38-1) unstable; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_38 + + [ Ben Hutchings ] + * Move firmware-linux-free to separate source package (firmware-free) + * Move linux-base to separate source package + * net/can: Enable CAN_SLCAN as module (Closes: #617629) + * sound: Enable SND_ALOOP as module (Closes: #617869) + * Remove the Big Kernel Lock: + - adfs,appletalk,i810,ufs,usbip: Refactor locking + - hpfs: Disable HPFS_FS + * ext4: Disable FS_IOC_FIEMAP ioctl temporarily (together with fixes + for btrfs in 2.6.38, closes: #615035) + * sched: Build with SCHED_AUTOGROUP, but do not enable autogrouping by + default (use sysctl kernel.sched_autogroup_enabled=1) (Closes: #618486) + * Set ABI to 1 + + [ Aurelien Jarno] + * mips/malta-[45]kc: + - disable ATM, TR, WAN. + - synchronize options in malta-4kc and malta-5kc. + + -- Ben Hutchings Wed, 16 Mar 2011 04:47:57 +0000 + +linux-2.6 (2.6.38~rc8-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * [sparc] Fix .size directive for do_int_load + * [arm] Fix .size directive for xscale_dma_a0_map_area + + -- Ben Hutchings Sat, 12 Mar 2011 03:31:52 +0000 + +linux-2.6 (2.6.38~rc7-1~experimental.1) experimental; urgency=low + + [ maximilian attems ] + * New upstream release candidate + - swiotlb: Fix wrong panic (Closes: #615990) + * x86: Set DRM_I915_KMS on request by xorg team. + + [ Ben Hutchings ] + * [x86] Correct typos in label names in two asm functions (Closes: #616426) + * [x86] Enable VT6656, loading firmware from a separate file (requires + firmware-linux-nonfree 0.29) (Closes: #568454) + * perf: Build with libdwarf for improved analysis capabilities + * perf: Build with newt for improved user interface (Closes: #615868) + * aufs: Update for 2.6.38 + * aufs: Fix device numbers passed to security_path_mknod() + * dib0700/dib7000m: Add pid filtering (Closes: #614837) + * [powerpc] Revert fb module changes (Closes: #614221) + + -- Ben Hutchings Tue, 08 Mar 2011 02:34:04 +0000 + +linux-2.6 (2.6.38~rc6-1~experimental.1) experimental; urgency=low + + [ Ben Hutchings ] + * New upstream release candidate + - drm/radeon/kms: hopefully fix pll issues for real (v3) (Closes: #614566) + - r8169: Keep firmware in memory (Closes: #609538) + - [sparc] Fix misaligned tracing information which the module loader + does not support (Closes: #609371) + - [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m. + - [armel] Support for Buffalo LS-CHL (Closes: #590105). + - btrfs: Prevent heap corruption in btrfs_ioctl_space_info() + (CVE-2011-0699) + - [s390] Remove task_show_regs (CVE-2011-0710) + * DFSG: Remove drivers/staging/ft1000/ft1000-pcmcia/boot.h, non-free + firmware for a driver we don't build (Closes: #609448) + * module,bug: Add TAINT_OOT_MODULE flag for modules that weren't built + in-tree + + [ maximilian attems ] + * [x86] linux-images suggest extlinux, s/grub/grub-pc/. (closes: #613909) + + [ Aurelien Jarno] + * mips/swarm: enable PATA drivers that have been lost during IDE -> PATA + conversion. + * mips/malta-[45]kc: set VIRTUALIZATION. + + -- maximilian attems Tue, 22 Feb 2011 14:36:33 +0100 + +linux-2.6 (2.6.37-2) unstable; urgency=low + + [ Ben Hutchings ] + * Add stable 2.6.37.1: + - libata: Set queue DMA alignment to sector size for ATAPI too + - USB: serial: add missing .usb_driver field in serial drivers + - USB: EHCI: fix scheduling while atomic during suspend + - zram: Fix data corruption issue + - brcm80211: Fix suspend/resume issue + - ath9k: Fix system hang when resuming from S3/S4 + - SCSI: Fix medium error problems with some arrays which can cause + data corruption + - libsas: Fix runaway error handler problem + - NFS: Don't use vm_map_ram() in readdir + - NFS: Fix NFSv3 exclusive open semantics + - /proc/kcore: Fix seeking + - mm: Fix migration hangs on anon_vma lock + - writeback: Stop background/kupdate works from livelocking other works + - writeback: Avoid livelocking WB_SYNC_ALL writeback + - ext4: Fix trimming of a single group + - af_unix: Avoid socket->sk NULL OOPS in stream connect security hooks + - virtio_net: Add schedule check to napi_enable call + - ptrace: Use safer wake up on ptrace_detach() + - net: Fix ip link add netns oops + - SMP: Fix smp_call_function_many() SMP race + - md: Ensure no IO request to get md device before it is properly + initialised + - PM/runtime: Don't enable interrupts while running in_interrupt + - [x86] mm: Avoid possible bogus TLB entries by clearing prev + mm_cpumask after switching mm + * Kbuild: Include localversion file in linux-headers-*; fixes output + of 'make kernelrelease' + * Add stable 2.6.37.2: + - nfsd: Memory corruption due to writing beyond the stat array + - xen: p2m: Correctly initialize partial p2m leaf + - av7110: Check for negative array offset (CVE-2011-0521) + - cred: Fix kernel panic upon security_file_alloc() failure + - btrfs: Prevent heap corruption in btrfs_ioctl_space_info() + (CVE-2011-0699) + - cred: Fix BUG() upon security_cred_alloc_blank() failure + - cred: Fix memory and refcount leaks upon security_prepare_creds() + failure + - PCI: Use security_capable() when checking capablities during config + space read + - [s390] Remove task_show_regs (CVE-2011-0710) + - PM/hibernate: Return error code when alloc_image_page() fails + - fs/partitions: Validate map_count in Mac partition tables + - workqueue: Wake up a worker when a rescuer is leaving a gcwq + - ALSA: caiaq - Fix possible string-buffer overflow + * Set ABI to 2 + + [ Martin Michlmayr ] + * [armel/orion5x] Re-enable all devices. + * [armel/kirkwood] Re-enable Seagate FreeAgent DockStar support. + + -- Ben Hutchings Sat, 26 Feb 2011 03:16:16 +0000 + +linux-kbuild-2.6 (2.6.37-1) unstable; urgency=low + + * Upload to unstable + + -- Ben Hutchings Tue, 15 Feb 2011 14:15:36 +0000 + +linux-2.6 (2.6.37-1) unstable; urgency=low + + [ Ben Hutchings ] + * [arm] ixp4xx: Revert build fix, now applied upstream which resulted + in another build failure + * r8169: Keep firmware in memory (Closes: #609538) + * r8712u: Firmware filename is rtlwifi/rtl8712u.bin (Closes: #602450) + * [sparc] Fix misaligned tracing information which the module loader + does not support (Closes: #609371) + * Set ABI to 1 + * Add aufs2.1, marked as staging (Closes: #573189, #613248) + * fs/notify: Enable FANOTIFY (Closes: #599877) + * acer-wmi, aic94xx, asus_acpi, iscsi, janz-ican3, rtc-ds1511, tc1100-wmi: + Restrict write permissions on files in procfs/sysfs + * nbd: Remove module-level ioctl mutex mistakenly introduced in 2.6.37 + * [x86] crypto: Re-enable AES_NI_INTEL as module (Closes: #597658) + * [powerpc] video/fb: Enable FB_VGA16 as built-in; build FB_CT65550, + FB_NVIDIA, FB_MATROX, FB_RADEON, FB_ATY128, FB_ATY, FB_SIS, FB_3DFX + as modules (Closes: #609615) + + [ Aurelien Jarno ] + * [sh4] Export cpu_core_map to fix build failure with CONFIG_SFC=m. + * [mips/5kc-malta] Enable CONFIG_VGA_CONSOLE. + + [ Bastian Blank ] + * Enable CIFS fscache and ACL support. + * Enable Xen PCI frontend. + + -- Ben Hutchings Tue, 15 Feb 2011 04:14:09 +0000 + +linux-kbuild-2.6 (2.6.37-1~experimental.1) experimental; urgency=low + + * New upstream version + * Include new script gcc-goto.sh + + -- Ben Hutchings Sun, 16 Jan 2011 15:14:34 +0000 + +linux-2.6 (2.6.37-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_37 + - starfire: Fix dma_addr_t size test for MIPS (fixes FTBFS) + - watchdog: Improve failure message and documentation (Closes: #608138) + + [ Ben Hutchings ] + * i2c-i801: Include (fixes FTBFS on alpha) + * [x86] Staging: Enable R8712U as module (r8712u, replacing r8192s_usb) + - Enable loading external firmware, thanks to Stefan Lippers-Hollmann + * linux-base: Look for GRUB 1 configuration in both /boot/grub and + /boot/boot/grub (Closes: #607863) + * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185) + * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to + match upstream version (Closes: #596390 with firmware-realtek 0.28) + + -- Ben Hutchings Wed, 05 Jan 2011 02:44:28 +0000 + +linux-2.6 (2.6.37~rc7-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - [mips] Rename mips_dma_cache_sync back to dma_cache_sync (fixes FTBFS) + + [ Ben Hutchings ] + * debian/copyright: Add explanation of indirect linking of perf to + OpenSSL (Closes: #606520) + * [powerpc,x86] Enable PATA_PCMCIA (Closes: #606324) + * Disable BLK_DEV_IDECS + * [alpha] Use libata-based drivers for most PATA controllers + * [powerpc] linux-base: Run ybin after updating yaboot.conf + (Closes: #607284) + * Update debconf template translations: + - Add Catalan (Jordi Mallach) + - Update Danish (Joe Hansen) + - Update Spanish (Omar Campagne, Javier Fernández-Sanguino) + - Add Italian (Luca Bruno) + - Update Japanese (Nobuhiro Iwamatsu) + - Add Brazilian Portugese (Flamarion Jorge) + - Update Vietnamese (Clytie Siddall) + * debian/bin/test-patches: Restrict patches to featureset when building + with a featureset (thanks to Tim Small) + * Recommend use of 'make deb-pkg' to build custom kernel packages + * [ia64] drm/nouveau: Revert unnecessary exclusion of ACPI support code + + -- Ben Hutchings Sat, 25 Dec 2010 16:21:09 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.3) experimental; urgency=low + + * Really apply patches added in the previous version + + -- Ben Hutchings Sat, 11 Dec 2010 16:27:21 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.2) experimental; urgency=low + + * Second attempt to fix FTBFS on various architectures: + - [alpha] Do not use -Werror for arch/alpha + - [arm/ixp4xx] Rename FREQ macro to avoid collisions (v2) + - drm/nouveau: Only select ACPI_VIDEO if its dependencies are met + - [mips] Change mips_sc_is_activated() to do what the comment says + + -- Ben Hutchings Sat, 11 Dec 2010 06:27:51 +0000 + +linux-2.6 (2.6.37~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * Attempt to fix FTBFS on various architectures: + - [alpha] Do not use -Werror for arch/alpha/kernel + - [arm/ixp4xx] Rename FREQ macro to avoid collisions + - [mips] Add the necessary parameter to mips_sc_is_activated() + + -- Ben Hutchings Fri, 10 Dec 2010 02:59:12 +0000 + +linux-2.6 (2.6.37~rc4-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ maximilian attems ] + * Newer Standards-Version 3.9.1 without changes. + + [ Martin Michlmayr ] + * Add ixp4xx build fix from Arnaud Patard (Closes: #602669) + * [armel/kirkwood] Enable sound. + * ASoC: Add support for OpenRD Ultimate (Arnaud Patard). + + [ Ben Hutchings ] + * Enable PM_ADVANCED_DEBUG (Closes: #603254) + * Disable X.25 protocol and related drivers. This 10 year old experiment + has stalled and is a source of security bugs. + * Disable Econet protocol. It is unmaintained upstream, probably broken, + and of historical interest only. + * af_802154,decnet,rds: Disable auto-loading as mitigation against local + exploits. These protocol modules are not widely used and can be + explicitly loaded or aliased on systems where they are wanted. + * debian/rules: Change 'clean' rule to remove package build directories + even after a version bump, thanks to Timo Juhani Lindfors + * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457) + * 9p: Enable 9P_FS_POSIX_ACL + * netfilter/ipvs: Enable IP_VS_PE_SIP as module + * net/sched: Enable NET_ACT_CSUM as module + * can: Enable CAN_SJA1000_ISA, CAN_TSCAN1 as modules + * block: Enable BLK_DEV_RBD (Rados) as module + * sensors: Enable AD525X_DPOT_SPI, APDS9802ALS, ISL29020, SENSORS_BH1780, + SENSORS_BH1770, SENSORS_APDS990X, HMC6352, BMP085 as modules + * scsi: Enable SCSI_CXGB4_ISCSI as module + * net/ppp: Enable PPTP as module + * net: Enable BNA, SMCTR, USB_NET_CX82310_ETH as modules + * IR: Enable IR_RC5_SZ_DECODER as module + * [i386] IR: Enable IR_NUVOTON as module + * V4L: Enable GSPCA_KONICA, GSPCA_XIRLINK_CIT as modules + * DVB: Enable USB_LME2510 as module + * [i386] sound/isa: Enable SND_AZT1605, SND_AZT2316, SND_JAZZ16, + SND_MSND_PINNACLE, SND_MSND_CLASSIC as modules + * HID: Enable HID_UCLOGIC, HID_WALTOP, HID_ROCCAT_PYRA as modules + * hid-logitech: Enable LOGIWII_FF + * Enable USB_UAS (USB-attached SCSI) as module + * serial: Enable USB_SERIAL_SAMBA as module + * drm/nouveau: Enable DRM_I2C_SIL164 as module + * perf: Use libiberty, not libbfd, for symbol demangling + (Closes: #604750, #606050) + * firmware: Correct copyright information and add source for CIS files + (accidentally omitted when merging from sid branch) + + -- Ben Hutchings Sun, 05 Dec 2010 23:19:38 +0000 + +linux-kbuild-2.6 (2.6.36-1~experimental.1) experimental; urgency=low + + * New upstream version + + -- Ben Hutchings Mon, 15 Nov 2010 00:20:33 +0000 + +linux-2.6 (2.6.36-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_36 + - writeback: always use sb->s_bdi for writeback purposes (Closes: #599466) + - i7core_edac: fix panic in udimm sysfs attributes registration + (Closes: #600528) + + [ Ben Hutchings ] + * qla4xxx: Fix build on some architectures lacking 64-bit I/O + (Closes: #598503) + * [x86] Enable modular TM6000, TM6000_ALSA, TM6000_DVB + * [x86] Staging: fix Makefile so brcm80211 will actually build + (Closes: #599465) + * [x86] Enable modular IDEAPAD_ACPI (Closes: #599444) + * perf: Enable Perl and Python scripting + - Move scripts to /usr/share/perf_-core (Closes: #599624) + * crypto: Explicitly enable algorithm self-tests (Closes: #599441) + * [x86] Skip looking for ioapic overrides when ioapics are not present + (Closes: #598533) + * [x86] ata_piix: Add device ID for ICH4-L + * [armel/iop32x,ia64,x86] Disable BLK_DEV_PIIX as obsolete + * [amd64] Disable DRM_I810; i81x chipsets do not support 64-bit processors + * [x86] Disable DRM_I830; the i915 driver is now used instead + + [ Martin Michlmayr ] + * Kirkwood: restrict the scope of the PCIe reset workaround + + -- maximilian attems Wed, 27 Oct 2010 13:23:11 +0200 + +linux-2.6 (2.6.36~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Ensure that the crtcinfo is populated during mode_fixup() + (Closes: #592415) + - USB: fix bug in initialization of interface minor numbers + (Closes: #598207) + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996, really) + * Disable INTEL_IDLE. It can no longer be built as a module and so was + actually disabled by the previous version, but I do not consider it ready + to build-in yet. + * Enable modular NETFILTER_XT_TARGET_CHECKSUM, NETFILTER_XT_TARGET_IDLETIMER, + NETFILTER_XT_MATCH_CPU, NETFILTER_XT_MATCH_IPVS + * Reenable LOCKUP_DETECTOR, accidentally disabled by the previous version + * Enable modular AD525X_DPOT_I2C, ATM_NICSTAR, CAN_ESD_USB2, CHELSIO_T4VF, + FIREWIRE_NOSY, HID_ACRUX_FF, HID_ELECOM, INFINIBAND_CXGB4, INFINIBAND_QIB, + MTD_PCMCIA, ORINOCO_USB, PPS_CLIENT_LDISC, RAMOOPS, SERIAL_MFD_HSU, + UIO_NETX, USB_GSPCA_SPCA1528, USB_GSPCA_SQ930X, USB_SERIAL_SSU100, + USB_SERIAL_ZIO, WL1271_SDIO, WL1271_SPI + * Enable BT_HCIUART_ATH3K, USB_SERIAL_MOS7715_PARPORT + * [x86] Enable modular SENSORS_PKGTEMP + * Enable modular IR_CORE, RC_MAP, all IR decoders, IR_IMON, IR_MCEUSB, + IR_ENE, IR_STREAMZAP + * [x86] Enable modular LIRC drivers + + -- Ben Hutchings Sun, 03 Oct 2010 21:18:41 +0100 + +linux-2.6 (2.6.36~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - 3c59x: Fix deadlock in vortex_error() (Closes: #595554) + + [ Ben Hutchings ] + * speakup: Update to match Debian package version 3.1.5.dfsg.1-1 + * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network + controllers + * [x86] Set XEN_PLATFORM_PCI=y + + -- Ben Hutchings Tue, 21 Sep 2010 02:15:33 +0100 + +linux-2.6 (2.6.35-1~experimental.3) experimental; urgency=low + + [ Ritesh Raj Sarraf ] + * Add .gnu_debuglink information into kernel modules (Closes: #555549) + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996) + * Update debconf template translations: + - Czech (Michal Simunek) (Closes: #590546) + - Portugese (Américo Monteiro) (Closes: #590557) + - French (David Prévot) (Closes: #591149) + - Russian (Yuri Kozlov) (Closes: #591241) + - Swedish (Martin Bagge) (Closes: #592045) + - German (Holger Wansing) (Closes: #592226) + * [x86] Enable samsung-laptop driver + * [sparc] Enable XVR1000 driver (Closes: #574243) + * Change BLK_CGROUP from module to built-in so that cfq can be the + default I/O scheduler again (Closes: #593720) + * [mipsel/loongson-2f] Enable smtcfb (FB_SM7XX) driver (Closes: #594642) + + [ Ian Campbell ] + * Fixes/overrides for Linitan warnings: + - Add "(meta package)" to short description of linux-headers + metapackages, resolves empty-binary-package. + - Add dependency on ${misc:Depends} to all packages, resolves + debhelper-but-no-misc-depends. Required update to gencontrol.py to + augment rather than override headers_arch_depends read from templates. + - Override dbg-package-missing-depends for linux-image-*-dbg. It is not + necessary to install the kernel image package to use the dbg package + since the dbg package already contains a complete image with symbols. + + [ Bastian Blank ] + * Disable Ralink staging drivers, the in-tree ones reached "works-for-me" + status. + + [ Aurelien Jarno ] + * Fix netfilter CONFIG_COMPAT support. + * [sh4] set VIRTUALIZATION. + * [mips] Add an octeon flavour. + + [ maximilian attems] + * Add stable 2.6.35.3 and 2.6.35.4. + + -- maximilian attems Mon, 06 Sep 2010 15:16:17 +0200 + +linux-2.6 (2.6.35-1~experimental.2) experimental; urgency=low + + * images: Nuke modules.devname on removal. (closes: #590607) + * Add stable 2.6.35.1 and 2.6.35.2. + * mm: fix page table unmap for stack guard page properly. + * mm: fix up some user-visible effects of the stack guard page. + * config.loongson-2f: Enable USB and RTC for loongson-2f. + Thanks Geert Stappers (closes: #583689) + + -- maximilian attems Mon, 16 Aug 2010 23:49:32 +0200 + +linux-kbuild-2.6 (2.6.35-1~experimental.1) experimental; urgency=low + + * New upstream version + * Update policy version to 3.9.1; no changes required + * Fix minor issues reported by lintian: + - Add ${misc:Depends} to dependencies + - Add debian/source/format file + - Remove redundant priority and section fields + + -- Ben Hutchings Sun, 08 Aug 2010 22:31:47 +0100 + +linux-2.6 (2.6.35-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_35 + - [ia64] Fix crash when gcore reads gate area (Closes: #588574) + - tpm_tis: fix subsequent suspend failures (Closes: #591031) + + * topconfig enable BLK_CGROUP, NETFILTER_XT_TARGET_TEE, VMWARE_BALLOON, + ATH9K_HTC, TOUCHSCREEN_HAMPSHIRE, TOUCHSCREEN_TPS6507X, SND_ASIHPI, + SQUASHFS_XATTRS, RCU_FAST_NO_HZ, COMPACTION, IP_MROUTE_MULTIPLE_TABLES, + IPV6_MROUTE_MULTIPLE_TABLES, NET_DCCPPROBE, NET_SCTPPROBE, L2TP, + BT_L2CAP_EXT_FEATURES, MTD_NAND_RICOH, ATA_BMDMA, KEYBOARD_QT2160, + N_GSM, SENSORS_SHT15, SENSORS_EMC1403, SENSORS_ADS7871, SENSORS_TMP102, + SND_ES1968_INPUT, SND_MAESTRO3_INPUT, LEDS_LT3593, LEDS_MC13783. + * x86 enable INTEL_IDLE, ACPI_HED, ACPI_APEI, ACPI_APEI_GHES, + PCI_CNB20LE_QUIRK. + + -- maximilian attems Tue, 03 Aug 2010 16:21:16 +0200 + +linux-2.6 (2.6.35~rc6-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + - drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations + (Closes: #534422) + + [ Ben Hutchings ] + * [!x86] Disable FB_VIA; these GPUs are only found on x86 motherboards + * ds2782_battery: Fix build failure on several architectures + * postinst: Remove support for 'default' boot loaders. Warn users on + upgrade if the current configuration may rely on this. + * [i386/686] Remove AMD K6 from the list of supported processors; it + does not implement the CMOV instruction + * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989) + + -- Ben Hutchings Sat, 24 Jul 2010 01:00:26 +0100 + +linux-2.6 (2.6.35~rc5-1~experimental.1) experimental; urgency=low + + * New upstream release candidate + + [ Ben Hutchings ] + * Consistently name the linux-tools package and perf binary using the + upstream version without any -rcN suffix + + -- Ben Hutchings Tue, 13 Jul 2010 01:09:27 +0100 + +linux-2.6 (2.6.35~rc4-1~experimental.1) experimental; urgency=low + + * New upstream snapshot + - [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + - Add mantis and hopper DVB drivers (Closes: #577264) + - eeepc-laptop: Disable wireless hotplug on more models where the + controller is not at the expected address (Closes: #576199) + - qcserial: Add support for Qualcomm Gobi 2000 devices + (Closes: #585661) + - radeon: Fix MacBook Pro connector quirk (Closes: #585943) + - r8169: Fix MDIO timing (Closes: #583139) + - asix: fix setting mac address for AX88772 (Closes: #587580) + - Update Marvell CESA (mv_cesa) driver (Closes: #585790): + + [ Ben Hutchings ] + * ipr: add writeq definition if needed (Closes: #584840) + * [mips] Fix boot from ATA hard drives (Closes: #584784): + - Set io_map_base for several PCI bridges lacking it + - Replace per-platform built-in IDE drivers with libata-based drivers + - Enable BLK_DEV_SD as built-in on all platforms + * Update Spanish debconf templates, thanks to Omar Campagne + (Closes: #580538) + * [powerpc] Enable pata_amd driver, replacing amd74xx + * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852) + * Move NEWS to linux-latest-2.6 (Closes: #586401) + * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967) + * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549) + * linux-base: If the disk ID update process fails, give the user a + chance to retry or change their answers (Closes: #585609) + * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644) + * ipv6: Use interface max_desync_factor instead of static default + (Closes: #514646) + * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES + (Closes: #584130) + * r8192s_usb: Fix various bugs: + - Clean up in case of an error in module initialisation + - Rename and remove proc directories correctly if an interface is + not called wlan0 (Closes: #582972) + - Correct device ID table (Closes: #584945, #587985) + * [x86] Enable r8192u_usb driver + * Add linux-tools- package containing the perf tool + (Closes: #548715) + * Enable SERIAL_USB_TI (Closes: #588096) and SERIAL_USB_WHITEHEAT + * [x86] Enable EDAC_I7CORE + + [ maximilian attems ] + * Enable DRM_RADEON_KMS. + + [ Martin Michlmayr ] + * OpenRD-Base: revert patch "allow SD/UART1 selection" since it + never made it upstream. + * ARM: update mach types. + * Add support for OpenRD-Ultimate. + * QNAP TS-11x/TS-21x: Add MPP44 (board ID). + * Add support for the HP t5325 Thin Client. + * m25p80: Add support for Macronix 25L8005. + * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE. + * [armel] Make MOUSE_PS2 modular. + * [armel] Build INPUT_UINPUT for all flavours. + * [armel/kirkwood] Enable FB_UDL. + * [armel] Disable PARPORT_PC (Closes: #588164) + + [ Bastian Blank ] + * Disable mISDN support for NETJet cards. The driver binds a generic PCI + bridge. + * Disable ISDN4Linux drivers. + + -- Ben Hutchings Sat, 10 Jul 2010 21:53:57 +0100 + +linux-2.6 (2.6.34-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * [x86] Reenable rtl8192su, accidentally disabled in previous version + (Closes: #580740) + * writeback: Update dirty flags in two steps + * writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync + (Closes: #582808) + * writeback: fix non-integrity write-back + * [mipsel] Add a loongson-2f flavour + * [mipsel] Loongson: Define rtc device on MC146818-equipped systems + * Make gcc-4.4 the default compiler + * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so + that we can build out-of-tree modules correctly (refresh and re-add + dropped patch) (Closes: #392592) + * [ia64] Enable SGI SN support and mspec driver (Closes: #582224) + * iwlwifi: Disable QoS when connected to a non-QoS-capable AP + (Closes: #578262) + * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already + been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used + instead on some VIA C7 systems. (Closes: #566208) + * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize) + * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810) + * Build inet_lro as a module + * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108) + + [ maximilian attems ] + * topconfig enable CFQ_GROUP_IOSCHED, MFD_WM8994, REGULATOR_MAX8649, + REGULATOR_WM8994, VHOST_NET, BT_ATH3K, CRYPTO_PCRYPT. + * [x86] Enable X86_PCC_CPUFREQ, VGA_SWITCHEROO (closes: #582637). + + [ Martin Michlmayr ] + * QNAP TS-419P: Export GPIO indicating jumper setting of JP1. + + [ dann frazier ] + * [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + + [ Aurelien Jarno ] + * [sh4] fix sh_tmu clocksource following recent nohz changes. + + [ Moritz Muehlenhoff ] + * Enable X86 board specific fixups for reboot (Closes: #536537) + + -- Ben Hutchings Sun, 06 Jun 2010 18:53:04 +0100 + +linux-kbuild-2.6 (2.6.34-1~experimental.1) experimental; urgency=low + + * New upstream version + + -- Ben Hutchings Thu, 20 May 2010 01:19:43 +0100 + +linux-2.6 (2.6.34-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_34 + + * New upstream release + - rtl8192su: Add IDs for several more devices (Closes: #580740) + + [ maximilian attems ] + * topconfig enable IPV6_SIT_6RD, NETFILTER_XT_TARGET_CT, IP_VS_PROTO_SCTP, + NF_CONNTRACK_ZONES, CAN_PLX_PCI, TI_DAC7512, SCSI_HPSA, PATA_TOSHIBA, + MACVTAP, CHELSIO_T4, IXGBEVF, QLCNIC, LIBERTAS_MESH, + USB_NET_SMSC75XX, USB_SIERRA_NET, VIDEO_CX18_ALSA, USB_GSPCA_BENQ, + USB_GSPCA_CPIA1, USB_GSPCA_OV534_9, USB_GSPCA_SN9C2028, RADIO_TEF6862, + RADIO_SAA7706H, SND_USB_UA101, CEPH_FS, MICREL_PHY, KSZ884X_PCI, + SENSORS_ADT7411, SENSORS_ASC7621, VIDEO_TLG2300, DVB_USB_AZ6027, + DVB_NGENE, HID_3M_PCT, LOGIG940_FF, HID_MAGICMOUSE, HID_MOSART, + HID_NTRIG, HID_QUANTA, HID_STANTUM, HID_WACOM, USB_SERIAL_QCAUX, + USB_SERIAL_VIVOPAY_SERIAL, MMC_RICOH_MMC, LEDS_DELL_NETBOOKS, LOGFS. + * [x86] Enable EEEPC_WMI. + * Fix backlight support on some recent Thinkpads. + * acpi: Fall back to manually changing SCI_EN. + * Explicitly pass in whether sb is pinned or not. + + [ Ben Hutchings ] + * Prepare debconf templates for translation (Closes: #576758) + * [x86] Enable r8187se driver, previously named rtl8187se + + [ Aurelien Jarno ] + * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior) + (closes: #466977). + * mips/*: remove SND_* options, as they are already enabled in topconfig. + + -- maximilian attems Wed, 19 May 2010 17:06:13 +0200 + +linux-2.6 (2.6.33-1~experimental.5) experimental; urgency=low + + [ Ian Campbell ] + * Include Xen hypervisor in reportbug "related to" list. + + [ maximilian attems] + * Add stable 2.6.33.2. + + [ Ben Hutchings ] + * [x86] Enable ramzswap driver (Closes: #573912) + * [x86] Re-enable rt2860sta and rt2870sta drivers which were accidentally + disabled when moving to Linux 2.6.33 (Closes: #576723) + * Add stable 2.6.33.3: + - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring + on some Dell laptops (Closes: #563313) + + [ Aurelien Jarno ] + * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu + (Closes: #569034) + * [mips*/*malta] Remove options that are present in topconfig. + + -- maximilian attems Wed, 05 May 2010 16:38:53 +0200 + +linux-2.6 (2.6.33-1~experimental.4) experimental; urgency=low + + [ Ben Hutchings ] + * Include aufs2, marked as staging (Closes: #573189) + * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it + again (Closes: #572067) + * [x86] Enable rtl8192su driver using external firmware + + [ maximilian attems] + * Add stable 2.6.33.1. + + -- maximilian attems Wed, 17 Mar 2010 18:13:53 +0100 + +linux-2.6 (2.6.33-1~experimental.3) experimental; urgency=low + + [ Ben Hutchings ] + * Fix regexp for binNMU versions in modules/rules.include (Closes: #524632) + * linux-base: Fix bugs and improve libata transition code: + - Fix calls to disk_id_to_path (renamed to id_to_path) (Closes: #572283) + - Don't show empty list of devices to be relabelled + - Don't update udev CD rules unnecessarily + - Show the device paths to be added to udev CD rules + - Ignore nonexistent devices and properly handle devices of unknown + filesystem type (Closes: #572341, #572445) + - Don't accept empty filesystem labels as identifiers (Closes: #572438) + - For consistency with fresh installations, use or assign UUIDs rather + than labels where both are available (Closes: #572376) + - Replace CD/DVD/BD device names with udev-provided persistent aliases + - Fix update of boot device name for LILO and related loaders + - Update uswsusp resume device name + + -- maximilian attems Thu, 11 Mar 2010 05:58:02 +0100 + +linux-2.6 (2.6.33-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * Add missing debconf templates for linux-base (Closes: #571558) + * Fix libata transition code for GRUB 1 config (Closes: #571662) + + -- maximilian attems Sun, 28 Feb 2010 17:48:11 +0100 + +linux-2.6 (2.6.33-1~experimental.1) experimental; urgency=low + + * New upstream release: http://kernelnewbies.org/Linux_2_6_33 + + [ maximilian attems] + * [topconfig] set BLK_DEV_DRBD, DRM_NOUVEAU, DRM_NOUVEAU_BACKLIGHT, + DRM_VMWGFX, SENSORS_LM73, SENSORS_AMC682, SENSORS_LIS3_I2C, + SENSORS_MC13783_ADC, TOUCHSCREEN_DYNAPRO, TOUCHSCREEN_MC13783, + GIGASET_CAPI, LEDS_DAC124S085, LEDS_INTEL_SS4200, LEDS_INTEL_SS4200, + DVB_FIREDTV, DVB_USB_EC168, SOC_CAMERA_MT9T112, SOC_CAMERA_OV9640, + USB_GSPCA_PAC7302, USB_GSPCA_STV0680, AD525X_DPOT, CAN_MCP251X, + RT2800PCI, REGULATOR_MAX8660, RTC_DRV_BQ32K, RTC_DRV_MSM6242, + RTC_DRV_RP5C01, VMWARE_PVSCSI, SCSI_PM8001, WIMAX_IWMC3200_SDIO, + INPUT_SPARSEKMAP, SERIO_ALTERA_PS2, MANTIS_CORE, DVB_MANTIS, + DVB_HOPPER. + * [x86] set CS5535_MFGPT, SENSORS_K10TEMP, GEODE_WDT, MSI_WMI, + TOSHIBA_BT_RFKILL, ACPI_CMPC, CRYPTO_GHASH_CLMUL_NI_INTE. + + [ Ben Hutchings ] + * Use libata-based drivers for most PATA controllers (Closes: #444182): + - pata_triflex replaces triflex + - pata_atiixp replaces atiixp + - pata_ns87415 replaces ns87415 + - pata_sc1200 replaces sc1200 + - pata_cs5536 replaces cs5536 + - pata_amd replaces amd74xx + - pata_sis replaces sis5513 + - pata_rz1000 replaces rz1000 + - pata_efar replaces slc90e66 + - pata_pdc202xx_old replaces pdc202xx_old + - pata_pdc2027x replaces pdc202xx_new + - pata_cs5520 replaces cs5520 + - pata_cs5530 replaces cs5530 + - pata_cmd64x replaces cmd64x + - pata_sil680 replaces siimage + - pata_ali replaces alim15x3 + - pata_via replaces via82cxxx + - pata_serverworks replaces serverworks + - pata_artop replaces aec62xx + - pata_it821x replaces it821x + - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix + - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic + * Add libata transition script + + -- maximilian attems Thu, 25 Feb 2010 15:21:38 +0100 + +linux-2.6 (2.6.32-30) unstable; urgency=high + + [ Ben Hutchings ] + * mpt2sas: Fix incorrect scsi_dma_map error checking (Closes: #606968) + * Update Spanish debconf template translation (Omar Campagne, Javier + Fernández-Sanguino) (Really closes: #600694) + * intel-iommu: Force-disable IOMMU for iGFX on broken Cantiga revisions + (Closes: #607095) + * [powerpc] linux-base: Run ybin after updating yaboot.conf + (Closes: #607284) + * tehuti: Firmware filename is tehuti/bdx.bin + * iwlwifi: Reduce a failure-prone memory allocation (Closes: #599345) + * linux-base: Look for GRUB 1 configuration in both /boot/grub and + /boot/boot/grub (Closes: #607863) + * rt28x0: Add ieee80211_regdom module parameter mimicking cfg80211 as a + workaround for incorrect region code in NVRAM (Closes: #594561) + * btrfs: Require CAP_SYS_ADMIN for filesystem rebalance (Closes: #608185) + * [x86] dell-laptop: Enable for some newer Dell models + * r8169: Change RTL8111D/RTL8168D initialisation and firmware loading to + match upstream version (Closes: #596390 with firmware-realtek 0.28) + * Add stable 2.6.32.28: + - NFS: Fix panic after nfs_umount() + - usb-storage/libusual: Add support for Samsung YP-CP3 MP4 Player, + thanks to Vitaly Kuznetsov (Closes: #555835) + - bfa: Fix system crash when reading sysfs fc_host statistics + (CVE-2010-4343) + - IB/uverbs: Handle large number of entries in poll CQ (CVE-2010-4649) + - orinoco: Fix TKIP countermeasure behaviour (CVE-2010-4648) + - mm: Add security_file_mmap check to install_special_mapping + (CVE-2010-4346) + - sctp: Fix a race between ICMP protocol unreachable and connect() + (CVE-2010-4526) + - hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653) + (previously applied as an isolated fix in 2.6.32-25) + - fuse/cuse: Verify ioctl retries (CVE-2010-4650) + * [powerpc] Restore device tree source files to linux-image packages + (Closes: #609155) + + [ maximilian attems ] + * [openvz] Reenable NF_CONNTRACK_IPV6. (closes: #580507) + * cifs: fix another memleak, in cifs_root_iget. + * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd. + * drm/radeon/kms: MC vram map needs to be >= pci aperture size. + * drm/radeon/kms: make sure blit addr masks are 64 bit. + * drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx. + * drm/i915: Free hardware status page on unload when physically mapped. + * drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to writing. + * drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode(). + * drm/radeon/kms: fix typos in disabled vbios code. + * drm/radeon/kms: add workaround for dce3 ddc line vbios bug. + * drm/radeon/kms: fix interlaced and doublescan handling. + * drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection reliable. + * wireless: b43: fix error path in SDIO. + * drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP. + + [ Ian Campbell ] + * xen: backport TTM patches to use PCI API. Fixes PCIe GPU (specifically + Radeon and Nouveau) on Xen (Closes: #601341). + * xen: netback: drop SKBs which are GSO but do not have a partial + checksum set (Closes: #608144). + + [ dann frazier ] + * exec: make argv/envp memory visible to oom-killer (CVE-2010-4243) + * irda: Fix information leak in IRLMP_ENUMDEVICES (CVE-2010-4529) + * af_unix: limit unix_tot_inflight (CVE-2010-4249) + + [ Moritz Muehlenhoff ] + * net: ax25: fix information leak to userland (CVE-2010-3875) + * net: packet: fix information leak to userland (CVE-2010-3876) + * net: tipc: fix information leak to userland (CVE-2010-3877) + * inet_diag: Make sure we actually run the same bytecode we audited + (CVE-2010-3880) + * econet: Fix crash in aun_incoming() (CVE-2010-4342) + + -- Ben Hutchings Tue, 11 Jan 2011 05:42:11 +0000 + +linux-2.6 (2.6.32-29) unstable; urgency=high + + [ Ben Hutchings ] + * megaraid_sas: Add support for 'entry-level' SAS controllers including + the 9240 family (Closes: #604083) + * tcp: Make TCP_MAXSEG minimum more correct (refinement of fix for + CVE-2010-4165) + * l2tp: Fix UDP socket reference count bugs in the pppol2tp driver + (Closes: #604748) + * USB: Retain device power/wakeup setting across reconfiguration; + don't enable remote wakeup by default (Closes: #605246) + * dm: Deal with merge_bvec_fn in component devices better (Closes: #604457) + * Update Spanish debconf template translation (Aaron H Farias Martinez) + (Closes: #600694) + * perf: Use libiberty, not libbfd, for symbol demangling + (Closes: #590226, #606050) + * [x86] Add support for Fintek hardware watchdogs (Closes: #601187) + - resource: Add shared I/O region support + - hwmon: f71882fg: Use a muxed resource lock for the Super I/O port + - watchdog: Add f71808e_wdt driver + * bcm5974: Add reporting of multitouch events (Closes: #605450) + * fusion: Set FUSION_MAX_SGE=128, the upstream default (Closes: #606096) + * Add stable 2.6.32.27: + - block: limit vec count in bio_kmalloc() and bio_alloc_map_data() + - block: take care not to overflow when calculating total iov length + - block: check for proper length of iov entries in blk_rq_map_user_iov() + (CVE-2010-4163) + - net: clear heap allocation for ETHTOOL_GRXCLSRLALL (CVE-2010-3861) + - asus_oled: fix up some sysfs attribute permissions + - ipc: initialize structure memory to zero for compat functions + (CVE-2010-4073) + - ipc/shm: fix information leak to userland (CVE-2010-4072) + - ipc/sem: sys_semctl: fix kernel stack information leakage (CVE-2010-4083) + - tty: prevent DOS in the flush_to_ldisc + - [x86] KVM: VMX: Fix host userspace gsbase corruption (Closes: #604956) + - KVM: VMX: fix vmx null pointer dereference on debug register access + (CVE-2010-0435) + - KVM: x86: fix information leak to userland (CVE-2010-3881) + - firewire/cdev: fix information leak + - firewire-core: fix an information leak + - firewire-ohci: fix buffer overflow in AR split packet handling + - bio: take care not overflow page count when mapping/copying user data + (CVE-2010-4162) + - sisusbvga: fix information leak to userland + - iowarrior: fix information leak to userland + - usb: core: fix information leak to userland + - usb-storage/sierra_ms: fix sysfs file attribute + - ueagle-atm: fix up some permissions on the sysfs files + - cypress_cy7c63: fix up some sysfs attribute permissions + - usbled: fix up some sysfs attribute permissions + - trancevibrator: fix up a sysfs attribute permission + - usbsevseg: fix up some sysfs attribute permissions + - do_exit(): make sure that we run with get_fs() == USER_DS (CVE-2010-4258) + - DECnet: don't leak uninitialized stack byte + - perf_events: Fix perf_counter_mmap() hook in mprotect() (CVE-2010-4169) + - frontier: fix up some sysfs attribute permissions + - net/sched: fix kernel information leak in act_police + - can-bcm: fix minor heap overflow (CVE-2010-3874) + - ivtvfb: prevent reading uninitialized stack memory (CVE-2010-4079) + - net/sched: fix some kernel information leaks + * TTY: Fix error return from tty_ldisc_open() (regression in 2.6.32.27) + * filter: make sure filters dont read uninitialized memory (CVE-2010-4158) + * posix-cpu-timers: workaround to suppress the problems with mt exec + (CVE-2010-4248) + + [ Ian Campbell ] + * xen: disable ACPI NUMA for PV guests and allow IRQ desc allocation on any + node (Closes: #603632) + * xen: handle potential time discontinuity on resume (Closes: #602273) + * xen: don't bother to stop other cpus on shutdown/reboot (Closes: #605448) + * xen: Add cpu hotplug support to prevent crash while parsing ACPI processor + tables (Closes: #602109) + + [ Martin Michlmayr ] + * Kirkwood: Add support for 6282 based QNAP devices. + + -- Ben Hutchings Fri, 10 Dec 2010 05:45:11 +0000 + +linux-2.6 (2.6.32-28) unstable; urgency=high + + [ maximilian attems ] + * ipc: initialize structure memory to zero for shmctl. + * drm/i915: set DIDL using the ACPI video output device _ADR method return. + * images: Nuke modules.devname on removal. (closes: #590607) + * Newer Standards-Version 3.9.1 without changes. + * drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer. + * [openvz] Update upstream patch to 2.6.32-dzhanibekov. + * [openvz] ubc: Fix orphan count checks after merge. + + [ Martin Michlmayr ] + * Update udlfb to 2.6.37: + - udlfb: minor cleanups + - udlfb: fix coding style issues + - udlfb: fbdev character read and write support + - udlfb: add DPMS support + - udlfb: remove metrics_misc sysfs attribute + - udlfb: revamp reference handling to insure successful shutdown + - udlfb: enhance EDID and mode handling support + - udlfb: fix big endian rendering error + - udlfb: support for writing backup EDID to sysfs file + - udlfb: add module options for console and fb_defio + - udlfb: fix incorrect fb_defio implementation for multiple framebuffers + - udlfb: fix checkpatch and style + + [ Ben Hutchings ] + * Update debconf template translations: + - Update Japanese (Nobuhiro Iwamatsu) (Closes: #602152) + - Update Catalan (Jordi Mallach) (Closes: #602520) + - Add Italian (Luca Bruno) (Closes: #602945) + * sunrpc: Fix NFS client over TCP hangs due to packet loss (Closes: #589945) + * brcm80211: Update to 2.6.37-rc1 + * [powerpc] ALSA: Fix headphone and line-out detection on PowerMac G4 DA + (Closes: #603419) + * [x86] snd-hda-codec-cirrus: Add quirks for IMac 27", MacBookPro 5,5 and 7,1 + * [x86] btusb: Add device IDs for MacBookPro 6,2 and 7,1 (Closes: #603651) + * [x86] applesmc: Add support for iMac 9,1 and MacBookPro 2,2, 5,3, 5,4, 6,* + and 7,* + * [x86] applesmc, bcm5974, btusb, HID, mbp_nvidia_bl, snd-hda-codec-cirrus: + Add support for MacBookAir 3,1 and 3,2 (Closes: #603395) + * [x86] mbp_nvidia_bl: Add support for MacBookPro 7,1 + * x25: Fix remote denial-of-service vulnerabilities: + - x25 accesses fields beyond end of packet + - memory corruption in X.25 facilities parsing (CVE-2010-3873) + - Prevent crashing when parsing bad X.25 facilities (CVE-2010-4164) + * tcp: Increase TCP_MAXSEG socket option minimum (CVE-2010-4165) + * rds: Fix integer overflow in RDS cmsg handling + * af_802154,decnet,econet,rds,x25: Disable auto-loading as mitigation + against local exploits. These protocol modules are not widely used + and can be explicitly loaded or aliased on systems where they are + wanted. + * atl1c: Add support for Atheros AR8151 and AR8152 (Closes: #599771) + * Add stable 2.6.32.26: + - synclink_cs: Fix information leak to userland + - bluetooth: Fix missing NULL check + - [x86] KVM: VMX: Fix host GDT.LIMIT corruption + - [x86] KVM: Fix fs/gs reload oops with invalid ldt (CVE-2010-3698) + - gdth: Fix integer overflow in ioctl (CVE-2010-4157) + * [x86] KVM: SVM: Fix wrong intercept masks for KVM_{GET,SET}_VCPU_EVENTS + on 32 bit, thanks to Philipp Matthias Hahn (Closes: #599507) + + [ dann frazier ] + * [vserver] Update patch to 2.6.32.25-vs2.3.0.36.29.6 + * add qlcnic driver + * econet: Avoid stack overflow w/ large msgiovlen (CVE-2010-3848) + * econet: disallow NULL remote addr for sendmsg() (CVE-2010-3849) + * econet: Add mising CAP_NET_ADMIN check in SIOCSIFADDR (CVE-2010-3850) + + -- Ben Hutchings Thu, 25 Nov 2010 01:20:50 +0000 + +linux-2.6 (2.6.32-27) unstable; urgency=high + + * The "We'll Always Have Paris" release + + [ Ben Hutchings ] + * rndis_host: Restrict fix for #576929 to specific devices + (Closes: #589403, #600660) + * Add stable 2.6.32.25: + - rme9652: prevent reading uninitialized stack memory + (CVE-2010-4080, CVE-2010-4081) + - ocfs2: Don't walk off the end of fast symlinks + - ip: fix truesize mismatch in ip fragmentation + - net: clear heap allocations for privileged ethtool actions + - execve: setup_arg_pages: diagnose excessive argument size + - execve: improve interactivity with large arguments + - execve: make responsive to SIGKILL with large arguments + - rose: Fix signedness issues wrt. digi count. (CVE-2010-3310) + - ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442) + - setup_arg_pages: diagnose excessive argument size (CVE-2010-3858) + * btrfs: add a "df" ioctl for btrfs (Closes: #600190) + * Update debconf template translations: + - Add Catalan (Jordi Mallach) (Closes: #601146) + - Add Brazilian Portugese (Flamarion Jorge) (Closes: #601102) + - Update Vietnamese (Clytie Siddall) (Closes: #601534) + * phonet: device notifier only runs on initial namespace + (Really closes: #597904) + * net/socket: Limit sendto()/recvfrom() length (CVE-2010-1187) + [Original reference is incorrect; should be CVE-2010-3859.] + + [ Ian Campbell ] + * xen: import additional fixes for disabling netfront smartpoll mode + (Closes: #600992). + + [ dann frazier ] + * e1000e: Reset 82577/82578 PHY before first PHY register read + (Closes: #601017) + + [ Martin Michlmayr ] + * Kirkwood: reset PCIe unit on boot + * Kirkwood: restrict the scope of the PCIe reset workaround + + [ maximilian attems ] + * Update abi files, readd Xen as ABI stable. + * 2.6.33.stable-queue: drm/radeon: fix PCI ID 5657 to be an RV410. + * Add drm changes from 2.6.32.24+drm33.11: + - i915: return -EFAULT if copy_to_user fails. + - drm/i915: Prevent double dpms on + - drm: Only decouple the old_fb from the crtc is we call mode_set* + - drm/i915: Unset cursor if out-of-bounds upon mode change (v4) + - drm/i915,agp/intel: Add second set of PCI-IDs for B43 + * net: Limit socket I/O iovec total length to INT_MAX. (CVE-2010-1187) + [Original reference is incorrect; should be CVE-2010-3859.] + * numa: fix slab_node(MPOL_BIND). + + -- maximilian attems Sat, 30 Oct 2010 12:24:37 +0200 + +linux-2.6 (2.6.32-26) unstable; urgency=high + + [ Ian Campbell ] + * xen: fix PVHVM hang at boot when Xen does not support vector callbacks. + * xen: fix race between PV drivers and xenstore initialisation which caused + breakage in drivers for both regular PV and PVHVM guests. + + [ maximilian attems ] + * [openvz] Enable ioprio. (closes: #596772) + Thanks Daniel Hahler + + [ Ben Hutchings ] + * [x86] radeon: Add quirks to make HP nx6125 and dv5000 laptops resume + (Closes: #583968) + * dm-crypt: Add 'plain64' IV; this avoids watermarking attacks that are + possible with 'plain' IV on devices larger than 2TB (Closes: #600384) + * [x86] ahci,ata_generic: let ata_generic handle new MBP w/ MCP89 + (Closes: #600305) + * debian/.../patches.py: Open files as needed, rather than all at once + (Closes: #600423) + * [openvz] printk: Handle global log buffer reallocation (Closes: #600299) + * debian/bin/test-patches: Restrict patches to featureset when building + with a featureset (thanks to Tim Small) + * sata_via: Delay on vt6420 when starting ATAPI DMA write (Closes: #488566) + * r6040: Fix various bugs in r6040_multicast_list() (Closes: #600155) + + [ dann frazier ] + * Force enable DMA on MBP w/ MCP 7,1 + * RDS sockets: remove unsafe kmap_atomic optimization (CVE-2010-3904) + * v4l: disable dangerous buggy compat function (CVE-2010-2963) + + -- dann frazier Tue, 19 Oct 2010 07:50:55 -0600 + +linux-2.6 (2.6.32-25) unstable; urgency=high + + [ Ben Hutchings ] + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Add stable 2.6.32.24 (trivial fix, already applied) + * ipg: Remove device claimed by dl2k from pci id table (Closes: #599021) + * linux-image: Include modules.order in image packages (Closes: #598518) + * [x86] isdn/i4l: Reenable ISDN4Linux drivers, but mark them as staging + (Closes: #588551) + - hisax: Disable device aliases that conflict with mISDN + * Update Danish debconf template translation (Joe Hansen) (Closes: #599457) + * [x86] KVM: SVM: Fix wrong intercept masks on 32 bit (Closes: #599507) + * e1000: fix Tx hangs by disabling 64-bit DMA (Closes: #518182) + * rt2x00: Fix calculation of required TX headroom (Closes: #599395) + * Add drm changes from 2.6.32.22+drm33.10: + - i915: Don't touch PORT_HOTPLUG_EN in intel_dp_detect() + - i915: Kill dangerous pending-flip debugging + - radeon: release AGP bridge at suspend + - radeon: initialize set_surface_reg for rs600 asic + * [x86] toshiba_acpi: Add full hotkey support (Closes: #599768) + + [ Stephen R. Marenka ] + * m68k: fix missing io macros. + * m68k: modular swim on mac. + * m68k: never build staging drivers on m68k. + * m68k: build in rtc class on atari. + + [ Ian Campbell ] + * xen: do not truncate machine address on gnttab_copy_grant_page hypercall + (Closes: #599089) + + [ dann frazier ] + * drm/i915: Sanity check pread/pwrite (CVE-2010-2962) + * drm/i915: Rephrase pwrite bounds checking to avoid any potential overflow + * GFS2: Fix writing to non-page aligned gfs2_quota structures (CVE-2010-1436) + * hvc_console: Fix race between hvc_close and hvc_remove (CVE-2010-2653) + * net sched: fix some kernel memory leaks (CVE-2010-2942) + * niu: Fix kernel buffer overflow for ETHTOOL_GRXCLSRLALL (CVE-2010-3084) + * rose: Fix signedness issues wrt. digi count (CVE-2010-3310) + * Fix pktcdvd ioctl dev_minor range check (CVE-2010-3437) + * ALSA: prevent heap corruption in snd_ctl_new() (CVE-2010-3442) + * net sched: fix kernel leak in act_police (CVE-2010-3477) + * sctp: Fix out-of-bounds reading in sctp_asoc_get_hmac() (CVE-2010-3705) + + -- dann frazier Thu, 14 Oct 2010 01:08:05 -0600 + +linux-2.6 (2.6.32-24) unstable; urgency=high + + [ Ben Hutchings ] + * speakup: Update to match Debian package version 3.1.5.dfsg.1-1 + * scsi_dh_emc: Fix mode select request setup (Closes: #591540) + * snd-hda-codec-via: Fix syntax error when CONFIG_SND_HDA_POWER_SAVE is + disabled (Closes: #597043) + * Add stable 2.6.32.22: + - [vserver] Revert sched changes since they conflict. + * Recommend use of 'make deb-pkg' to build custom kernel packages + * [x86] Revert "i915: Blacklist i830, i845, i855 for KMS". The current X + driver (xserver-xorg-video-intel version 2.12.0+shadow-1) should work + properly with KMS on these chips. (Closes: #596453) + * phonet: Restrict to initial namespace (Closes: #597904) + * Add stable 2.6.32.23: + - serial/mos*: prevent reading uninitialized stack memory + - net: Fix oops from tcp_collapse() when using splice() + - rds: fix a leak of kernel memory + - hso: prevent reading uninitialized memory (CVE-2010-3298) + - cxgb3: prevent reading uninitialized stack memory (CVE-2010-3296) + - eql: prevent reading uninitialized stack memory (CVE-2010-3297) + - vt6655: fix buffer overflow + - net/llc: make opt unsigned in llc_ui_setsockopt() + - sisfb: prevent reading uninitialized stack memory + - aio: check for multiplication overflow in do_io_submit (CVE-2010-3067) + - xfs: prevent reading uninitialized stack memory (CVE-2010-3078) + - viafb: prevent reading uninitialized stack memory + - [hppa,ia64] mm: guard page for stacks that grow upwards (CVE-2010-2240) + - sctp: Do not reset the packet during sctp_packet_config() + (CVE-2010-3432) + * xen: Fix typo in xen_percpu_chip definition + * 3c59x: Remove incorrect locking (Closes: #598103) + * f71882fg: Add support for the f71889fg (Closes: #597820) + * drm/radeon: Fix regressions introduced in 2.6.34.3 (Closes: #597636) + * mmc: fix hangs related to mmc/sd card insert/removal during suspend/resume + (Closes: #598147) + + [ Martin Michlmayr ] + * ARM: update mach types. + * [armel/config.kirkwood] Enable MACH_DOCKSTAR. + + [ Ian Campbell ] + * [x86/xen] Disable netfront's smartpoll mode by default. (Closes: #596635) + + [ maximilian attems ] + * [openvz] Update upstream patch to 2.6.32-dyomin. + + -- Ben Hutchings Thu, 30 Sep 2010 00:46:16 +0100 + +linux-2.6 (2.6.32-23) unstable; urgency=low + + [ Ben Hutchings ] + * cgroupfs: create /sys/fs/cgroup to mount cgroupfs on (Closes: #595964) + * r8169: Fix MDIO timing (Closes: #583139; mistakenly reverted in 2.6.32-19) + * gro: Fix bogus gso_size on the first fraglist entry (Closes: #596802) + * vgaarb: Fix VGA arbiter to accept PCI domains other than 0 (from stable + 2.6.32.12; mistakenly omitted in 2.6.32-12) + + [ maximilian attems ] + * openvz: cfq-iosched: do not force idling for sync workload. + + [ Stephen R. Marenka ] + * m68k: switch to generic siginfo layout. + * m68k: NPTL support. + + [ dann frazier ] + * compat: Make compat_alloc_user_space() incorporate the access_ok() + (CVE-2010-3081) + * x86-64, compat (CVE-2010-3301): + - Retruncate rax after ia32 syscall entry tracing + - Test %rax for the syscall number, not %eax + * wireless extensions: fix kernel heap content leak (CVE-2010-2955) + * KEYS (CVE-2010-2960): + - Fix RCU no-lock warning in keyctl_session_to_parent() + - Fix bug in keyctl_session_to_parent() if parent has no session keyring + + -- dann frazier Fri, 17 Sep 2010 15:27:04 -0600 + +linux-2.6 (2.6.32-22) unstable; urgency=low + + [ Ian Campbell ] + * xen: backport pvhvm drivers from upstream. + * Fixes/overrides for Lintian warnings: + - Add "(meta package)" to short description of linux-headers + metapackages, resolves empty-binary-package. + - Add dependency on ${misc:Depends} to all packages, resolves + debhelper-but-no-misc-depends. Required update to gencontrol.py to + augment rather than override headers_arch_depends read from templates. + - Override dbg-package-missing-depends for linux-image-*-dbg. It is not + necessary to install the kernel image package to use the dbg package + since the dbg package already contains a complete image with symbols. + + [ Ben Hutchings ] + * [x86/xen] Restore stack guard page (CVE-2010-2240) + * Add stable 2.6.32.21: + - ext4: consolidate in_range() definitions (CVE-2010-3015) + - mm: make the mlock() stack guard page checks stricter + (avoids regression for Xen tools; closes: 594756) + - [sparc] sunxvr500: Ignore secondary output PCI devices + (Closes: #594604) + - ocfs2: fix o2dlm dlm run purgelist (Closes: #593679) + - Avoid ABI change in mm + - Ignore ABI change in snd-emu10k1 + * Add drm changes from stable 2.6.34.6: + - drm: stop information leak of old kernel stack (CVE-2010-2803) + * rt2870sta: Add more device IDs from vendor drivers + * rt2860sta, rt2870sta: Enable channels 12-14 (Closes: #594561) + * SCSI/mptsas: fix hangs caused by ATA pass-through (Closes: #594690) + * sky2: Apply fixes and new hardware support from 2.6.33-2.6.35 + (Closes: #571526) + * postinst: Really warn users on upgrade if the current configuration may + rely on running a default boot loader. + * input: add compat support for sysfs and /proc capabilities output + (Closes: #579017) + * snd-hda-intel: Add support for VIA V1708S, VT1718S, VT1828S, VT2020, + VT1716S, VT2002P, VT1812, VT1818S + * hwmon/w83627ehf: Add support for W83667HG-B + * 3c59x: Fix deadlock in vortex_error() (Closes: #595554) + * [x86] paravirt: Add a global synchronization point for pvclock (from + 2.6.32.16; reverted due to a regression which was addressed in 2.6.32.19) + * sched, cputime: Introduce thread_group_times() (from 2.6.32.19; reverted + due to the potential ABI change which we now carefully avoid) + * net/{tcp,udp,llc,sctp,tipc,x25}: Add limit for socket backlog + (Closes: #592187) + * tun: Don't add sysfs attributes to devices without sysfs directories + (Closes: #594845) + * [x86] Add brcm80211 driver for Broadcom 802.11n wireless network + controllers + * r8169: Remove MODULE_FIRMWARE declarations since the firmware is + non-essential and we do not distribute it + * [x86] HPET: unmap unused I/O space + * ipheth: add support for iPhone 4 + * ipheth: remove incorrect devtype of WWAN + * ALSA: emux: Add trivial compat ioctl handler (Closes: #596478) + * hostap_pci: set dev->base_addr during probe (Closes: #595802) + * ethtool: allow non-netadmin to query settings (see #520724) + * ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT, and enable this + automatically for known-bad Toshiba models (Closes: #596709) + + [ Bastian Blank ] + * Use Breaks instead of Conflicts. + + [ Aurelien Jarno ] + * [mips,mipsel] Fix computation of DMA flags from device's + coherent_dma_mask. + + [ Martin Michlmayr ] + * Add some patches from the Orion tree: + - OpenRD: Enable SD/UART selection for serial port 1 + - kirkwood: Unbreak PCIe I/O port + - Kirkwood: support for Seagate DockStar + + [ dann frazier ] + * netxen_nic: add support for loading unified firmware images + * irda: Correctly clean up self->ias_obj on irda_bind() failure. + (CVE-2010-2954) + + [ maximilian attems ] + * [powerpc] Enable WINDFARM_PM121. (closes: #596515) + Thanks Étienne BERSAC + * nouveau: disable acceleration on NVA3/NVA5/NVA8 by default. + * openvz: disable KSM. Thanks Dietmar Maurer . + (closes: #585864) + * Update openvz patch to d38b56fd0dca. + * openvz: enalbe modular VZ_EVENT. + + -- maximilian attems Tue, 14 Sep 2010 14:17:11 +0200 + +linux-2.6 (2.6.32-21) unstable; urgency=high + + [ Ben Hutchings ] + * Add stable 2.6.32.19: + - ext4: Make sure the MOVE_EXT ioctl can't overwrite append-only files + (CVE-2010-2066) + - mm: keep a guard page below a grow-down stack segment (CVE-2010-2240) + (not applied to xen featureset) + - md/raid10: fix deadlock with unaligned read during resync + (Closes: #591415) + - Revert "sched, cputime: Introduce thread_group_times()" which would + result in an ABI change + * Add stable 2.6.32.20: + - Fix regressions introduced by original fix for CVE-2010-2240 + * Add drm and other relevant changes from stable 2.6.34.4 + * Add 'breaks' relation from image packages to boot loader packages that + do not install required hooks (Closes: #593683) + * [x86] i915: Blacklist i830, i845, i855 for KMS + (Closes: #568207, #582105, #593432, #593507) + + [ Bastian Blank ] + * Update Xen patch. + - Notify Xen on crash. + - Several blktap fixes. + + [ Ritesh Raj Sarraf ] + * Add .gnu_debuglink information into kernel modules (Closes: #555549) + + [ Ian Campbell ] + * [x86/xen] temporarily remove stack guard page, it breaks the xen + toolstack. + + [ Aurelien Jarno ] + * [mips,mipsel] Fix 64-bit atomics. + + -- Ben Hutchings Wed, 25 Aug 2010 01:06:18 +0100 + +linux-2.6 (2.6.32-20) unstable; urgency=low + + [ Moritz Muehlenhoff ] + * Backport XVR1000 driver (Closes: #574243) + + [ Ben Hutchings ] + * Add stable 2.6.32.18: + - CIFS: Fix compile error with __init in cifs_init_dns_resolver() + definition (FTBFS for most architectures) + - GFS2: rename causes kernel Oops (CVE-2010-2798) + - xfs: prevent swapext from operating on write-only files + (CVE-2010-2226) + * Update debconf template translations: + - Swedish (Martin Bagge) (Closes: #592045) + - German (Holger Wansing) (Closes: #592226) + * [i386/openvz-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the + list of supported processors; they do not implement PAE + * V4L/DVB: Add Elgato EyeTV Diversity to dibcom driver (Closes: #591710) + * [s390] dasd: use correct label location for diag fba disks + (Closes: #582281) + * Add drm changes from stable 2.6.34.2 (thanks to Stefan Bader) and + 2.6.34.3 + * drm/i915: disable FBC when more than one pipe is active + (Closes: #589077) + * IB/ipath: Fix probe failure path (Closes: #579393) + * ext4: fix freeze deadlock under IO (regression introduced in 2.6.32.17) + * xen: Completely disable use of XSAVE (Closes: #592428) + + [ Martin Michlmayr ] + * [armel/orion5x] Add a missing #include to fix a build issue. + * [armel/kirkwood, armel/orion5x] Build-in support for more devices. + + [ dann frazier ] + * can: add limit for nframes and clean up signed/unsigned variables + + -- Ben Hutchings Thu, 12 Aug 2010 03:26:39 +0100 + +linux-2.6 (2.6.32-19) unstable; urgency=low + + [ maximilian attems ] + * inotify send IN_UNMOUNT events. + * inotify fix oneshot support. + + [ Ben Hutchings ] + * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996) + * pata_pdc202xx_old: Fix UDMA mode for PDC2024x and PDC2026x controllers + (Closes: #590532) + * Update debconf template translations: + - Czech (Michal Simunek) (Closes: #590546) + - Portugese (Américo Monteiro) (Closes: #590557) + - French (David Prévot) (Closes: #591149) + - Russian (Yuri Kozlov) (Closes: #591241) + * Add stable 2.6.32.17: + - ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL + (CVE-2010-2478) + - GFS2: Fix up system xattrs (CVE-2010-2525) + - Revert ABI changes in firmware_class and ssb + - Ignore ABI changes in acpi_processor, hostap and jbd2 + * Add drm changes from stable 2.6.33.7: + - drm/i915: Enable low-power render writes on GEN3 hardware (915, 945, + G33 and Atom "Pineview") (Closes: #590193, maybe others) + * [i386/xen-686] Remove AMD Geode LX and VIA C3 "Nehemiah" from the list + of supported processors; they do not implement PAE + * [x86] Add samsung-laptop driver + + [ dann frazier ] + * [ia64] Fix crash when gcore reads gate area (Closes: #588574) + + [ Bastian Blank ] + * Update Xen patch. + - Ignore ABI changes. + + -- Ben Hutchings Thu, 05 Aug 2010 02:43:19 +0100 + +linux-2.6 (2.6.32-18) unstable; urgency=low + + [ Ben Hutchings ] + * iwlwifi: Allocate pages for RX buffers, reducing the probability of + allocation failure (Closes: #580124) + * postinst: Remove support for 'default' boot loaders. Warn users on + upgrade if the current configuration may rely on this. + * rt2860sta, rt2870sta: Apply changes from Linux 2.6.33 and 2.6.34 + - rt2860sta: Fix WPA(2)PSK issue when group cipher of AP is WEP40 + or WEP104 (Closes: #574766) + * rt3090sta: Replace with rt2860sta (Closes: #588863) + * [i386/686] Remove AMD K6 from the list of supported processors; it + does not implement the CMOV instruction + * drm/i915: Add 'reclaimable' to i915 self-reclaimable page allocations + (really closes: #534422, we hope) + * Revert "x86, paravirt: Add a global synchronization point for pvclock", + included in stable 2.6.32.16 (Closes: #588426) + * 3c59x: Fix call to mdio_sync() with the wrong argument (Closes: #589989) + + [ Martin Michlmayr ] + * Add some patches from the Orion tree, including support for Marvell's + Armada 300 (88F6282): + - Kirkwood: update MPP definition. + - Kirkwood: fix HP t5325 after updating MPP definitions + - leds: leds-gpio: Change blink_set callback to be able to turn off + blinking + - net/phy/marvell: Expose IDs and flags in a .h and add dns323 LEDs + setup flag + - orion5x: Base support for DNS-323 rev C1 + - orion5x: Fix soft-reset for some platforms + - mtd: orion/kirkwood: add RnB line support to orion mtd driver + - mtd: kirkwood: allow machines to register RnB callback + - Kirkwood: add support for rev A1 of the 88f6192 and 88f6180 chips + - Kirkwood: Add support for 88f6282 + - PCI: add platform private data to pci_sys_data + - Kirkwood: add support for PCIe1 + - Kirkwood: more factorization of the PCIe init code + + [ maximilian attems ] + * sched: Fix over-scheduling bug. + + -- Ben Hutchings Fri, 23 Jul 2010 03:48:08 +0100 + +linux-2.6 (2.6.32-17) unstable; urgency=low + + [ maximilian attems ] + * agp: add no warn since we have a fallback to vmalloc paths. + + [ Ben Hutchings ] + * linux-tools: Fix build for hppa and do not attempt to build for + architectures where perf events are not available (Closes: #588409) + * linux-tools: Add build-dependency on binutils-dev to enable symbol + demangling in perf + * drm/i915: Fix memory corruption on resume from hibernation + (Closes: #534422) + + -- Ben Hutchings Sat, 10 Jul 2010 16:40:38 +0100 + +linux-2.6 (2.6.32-16) unstable; urgency=low + + [ dann frazier ] + * [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + + [ Ben Hutchings ] + * Add stable 2.6.32.15 + * Add mantis and hopper DVB drivers with mb86a16 and tda665x DVB + front-ends, backported by Bjørn Mork (Closes: #577264) + * Build inet_lro as a module + * [sparc] Enable CONFIG_FB_XVR500, CONFIG_FB_XVR2500 (Closes: #508108) + * Update Spanish debconf templates, thanks to Omar Campagne + (Closes: #580538) + * Revert "Add EC path for Thinkpad X100."; it is incomplete and broken + * sctp: fix append error cause to ERROR chunk correctly (regression due + to fix for CVE-2010-1173) + * [powerpc] Enable pata_amd driver, replacing amd74xx + * eeepc-laptop: Disable wireless hotplug on more models where the + controller is not at the expected address (Closes: #576199) + * [mips] Fix boot from ATA hard drives (Closes: #584784): + - Set io_map_base for several PCI bridges lacking it + - Replace per-platform built-in IDE drivers with libata-based drivers + - Enable BLK_DEV_SD as built-in on all platforms + * Revert "vlan/macvlan: propagate transmission state to upper layers" + (Closes: #585770) + * linux-base: Don't identify LVM2 PVs by UUID (Closes: #585852) + * usb-serial: Add generic USB WWAN code, backported by Mark Hymers + (Closes: #585661) + - option, qcserial: Use generic USB WWAN code + - qcserial: Add support for Qualcomm Gobi 2000 devices + * radeon: Fix MacBook Pro connector quirk (Closes: #585943) + * r8169: Fix MDIO timing (Closes: #583139) + * Move NEWS to linux-latest-2.6 (Closes: #586401) + * 3c59x: Change locking to avoid use of disable_irq() (Closes: #586967) + * Enable IPv6 support for IPVS (IP_VS_IPV6) (Closes: #584549) + * Revert "tpm: autoload tpm_tis based on system PnP IDs", included in + stable 2.6.32.12 (Closes: #584273) + * linux-base: If the disk ID update process fails, give the user a + chance to retry or change their answers (Closes: #585609) + * asix: fix setting mac address for AX88772 (Closes: #587580) + * ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644) + * ipv6: Use interface max_desync_factor instead of static default + (Closes: #514646) + * Add stable 2.6.32.16: + - Fixes CVE-2010-1641, CVE-2010-1187, CVE-2010-1148, CVE-2010-1173 + and CVE-2010-2071 + - libata: disable ATAPI AN by default (Closes: #582737, #582903) + * Add drm changes from stable 2.6.33.6 + * [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES + (Closes: #584130) + * r8192s_usb: Fix various bugs: + - Check for skb allocation failure in 2 more places + - Update LED control code + - Clean up in case of an error in module initialisation + - Rename and remove proc directories correctly if an interface is + not called wlan0 (Closes: #582972) + - Correct device ID table (Closes: #584945, #587985) + * Add r8192u_usb driver + * Add linux-tools- package containing the perf tool + (Closes: #548715) + * Enable USB_SERIAL_TI (Closes: #588096) and USB_SERIAL_WHITEHEAT + + [ Aurelien Jarno ] + * [sh4] optimize runtime disabling of trapped I/O. + * [mips] backport mips/swarm: fix M3 TLB exception handler. + + [ Moritz Muehlenhoff ] + * Enable X86 board specific fixups for reboot (Closes: #536537) + + [ Martin Michlmayr ] + * OpenRD-Base: revert patch "allow SD/UART1 selection" since it + never made it upstream. + * ARM: update mach types. + * Add support for OpenRD-Ultimate. + * QNAP TS-11x/TS-21x: Add MPP36 (RAM) and MPP44 (board ID). + * Add support for the HP t5325 Thin Client. + * m25p80: Add support for Macronix 25L8005. + * Add framebuffer driver for XGI chipsets. + * [armel/kirkwood] Enable FB_XGI and FRAMEBUFFER_CONSOLE. + * [armel] Make MOUSE_PS2 modular. + * [armel] Build INPUT_UINPUT for all flavours. + * Update Marvell CESA (mv_cesa) driver (Closes: #585790): + - Invoke the user callback from a softirq context + - Remove compiler warning in mv_cesa driver + - Fix situation where the dest sglist is organized differently than... + - Fix situations where the src sglist spans more data than the reques... + - Enqueue generic async requests + - Rename a variable to a more suitable name + - Execute some code via function pointers rathr than direct calls + - Make the copy-back of data optional + - Support processing of data from previous requests + - Add sha1 and hmac(sha1) async hash drivers + * Update DisplayLink (udlfb) driver: + - add dynamic modeset support + - checkpatch cleanup + - reorganize function order + - pre-allocated urb list helpers + - clean up function naming + - Add functions to expose sysfs metrics and controls + - Rework startup and teardown to fix race conditions + - improved rendering performance + - Support for fbdev mmap clients (defio) + - explicit dependencies and warnings + - remove printk and small cleanup + * [armel/kirkwood] Enable FB_UDL. + * [armel] Disable PARPORT_PC (Closes: #588164) + + [ Bastian Blank ] + * Disable mISDN support for NETJet cards. The driver binds a generic PCI + bridge. + * Disable ISDN4Linux drivers. + + [ maximilian attems] + * Update openvz patch to 5fd638726a69. + + -- Ben Hutchings Mon, 05 Jul 2010 22:13:33 +0100 + +linux-2.6 (2.6.32-15) unstable; urgency=low + + [ Ben Hutchings ] + * [hppa] Ignore ABI change caused by disabling CONFIG_IDE_TIMINGS + * [powerpc] Fix unnecessary ABI change + + [ Bastian Blank ] + * xen: Fix crash in netback. + + -- Ben Hutchings Tue, 01 Jun 2010 01:31:05 +0100 + +linux-2.6 (2.6.32-14) unstable; urgency=low + + [ Ben Hutchings ] + * [ia64] Hardcode the output of the scripts under arch/ia64/scripts so + that we can build out-of-tree modules correctly (refresh and re-add + dropped patch) (Closes: #392592) + * vlan/macvlan: propagate transmission state to upper layers + * macvlan: add GRO bit to features mask + * macvlan: allow multiple driver backends + * Add macvtap driver (Closes: #568755) + * [ia64] Enable SGI SN support and mspec driver (Closes: #582224) + * iwlwifi: Disable QoS when connected to a non-QoS-capable AP + (Closes: #578262) + * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already + been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used + instead on some VIA C7 systems. (Closes: #566208) + * nouveau: Fix fbcon corruption with font width not divisible by 8 + (Closes: #583162) + * [amd64] ext4: Fix compat EXT4_IOC_ADD_GROUP (used by online resize) + * Install debug kernel image in /usr/lib/debug/boot (Closes: #582810) + * net: sysfs: Check for null ethtool_ops before getting speed/duplex + * Add stable 2.6.32.14: + - [hppa] Revert "parisc: Set PCI CLS early in boot.", erroneously + included in 2.6.32.13 causing FTBFS + - btrfs: check for read permission on src file in the clone ioctl + (CVE-2010-1636) + + [ Bastian Blank ] + * Update Xen patch. + - Fix checksum offloading in netback. (closes: #583366) + + [ maximilian attems] + * Add drm changes from stable 2.6.33.5: + - i915: Disable FBC on 915GM and 945GM (Closes: #582427) + * Update openvz patch to e7399c239fad. + + [ Martin Michlmayr ] + * QNAP TS-419P: Export GPIO indicating jumper setting of JP1. + + -- Ben Hutchings Sat, 29 May 2010 00:32:44 +0100 + +linux-2.6 (2.6.32-13) unstable; urgency=low + + [ Frederik Schueler ] + * sparc: Fix use of uid16_t and gid16_t in asm/stat.h + + [ Moritz Muehlenhoff ] + * Enable tomoyo (Closes: #562486) + + [ maximilian attems] + * backport KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates. + (closes: #580652) + * KEYS: find_keyring_by_name() can gain access to a freed keyring. + CVE-2010-1437 + * hppa, sparc, powerpc disable BLK_DEV_CMD64X. + * topconfig enable PATA_CMD64X. (closes: #580799) + * x86: Disable CRYPTO_AES_NI_INTEL as it causes boot failures on T410. + * Add stable 2.6.32.13: + - [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error. + - [SCSI] Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 + I/O errors. + - [SCSI] skip sense logging for some ATA PASS-THROUGH cdbs + (Closes: #578129) + - raid6: fix recovery performance regression. + - raid456: Enable error-correction on singly-degraded RAID6 + (Closes: #581392) + - r8169: fix broken register writes (Closes: #407217, #573007) + - V4L/DVB: budget: Fix crash in case of failure to attach frontend + (Closes: #575207) + * drm/edid: Fix 1024x768@85Hz. + + [ Ben Hutchings ] + * linux-base: Fix typo in disk relabelling code (Closes: #580467) + * linux-base: Don't quote boot device name in elilo.conf + (Closes: #580710; works-around: #581173) + * rtl8192su: Add IDs for several more devices (Closes: #580740) + * Add drm and sfc changes from stable 2.6.33.4 + * Improve workaround for HPAs (Host Protected Areas) overlapping + partitions, thanks to Tejun Heo: + - SCSI/libata: Disable HPA if it overlaps a partition (Closes: #572618) + - buffer: Make invalidate_bdev() drain all percpu LRU add caches + - block: Rescan partition tables after HPA is disabled + - libata: Disable HPA if it is only enabled after suspend + * V4L/DVB: budget: Select correct frontend drivers (Closes: #575223) + * 3c503: Fix IRQ probing (Closes: #566522) + * sis-agp: Remove SIS 760, handled by amd64-agp + * amd64-agp: Probe unknown AGP devices the right way (Closes: #548090) + + [ Aurelien Jarno ] + * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior) + (closes: #466977). + * backport mips/swarm: fix M3 TLB exception handler. + [This patch was actually reverted and never applied in version 2.6.32-13] + * backport MIPS FPU emulator: allow Cause bits of FCSR to be writeable + by ctc1. (closes: #580602). + * mips/swarm: enable adm* hwmon drivers. + * backport Input: Add support of Synaptics Clickpad device (Closes: #572842) + + [ Bastian Blank ] + * Fix symlinks in several packages. + * Update Xen patch. + * [amd64, i386/{686-bigmem,openvz-686,vserver-686-bigmem,xen-686}] + Build debugging symbols. (closes: #365349) + * Ignore crypto ABI changes. + + [ Martin Michlmayr ] + * Backport GuruPlug support. + + [ Christian Perrier ] + * Update debconf templates: + - English revised by the debian-l10n-english team as part of the Smith + review project (Closes: #578349) + - Vietnamese (Clytie Siddall) (Closes: #579234) + - German (Holger Wansing) (Closes: #579864) + - Russian (Yuri Kozlov) (Closes: #578994) + - Estonian (mihkel) (Closes: #579019) + - Czech (Michal Simunek) (Closes: #579268) + - Swedish (Martin Bagge) (Closes: #579308) + - French (David Prévot) (Closes: #579763) + - Spanish (Omar Campagne) (Closes: #580538) + - Portuguese (Américo Monteiro) (Closes: #577227) + - Japanese (Kenshi Muto) (Closes: #580855) + - Danish (Joe Hansen) (Closes: #580915) + - Czech (Michal Simunek) (Closes: #581399) + + -- maximilian attems Mon, 17 May 2010 15:29:27 +0200 + +linux-2.6 (2.6.32-12) unstable; urgency=low + + * The "Microwave Background" release + + [ Ben Hutchings ] + * Prepare debconf templates for translation. (closes: #576758) + * [x86] PCI/forcedeth: Disable MSI for MCP55 on P5N32-E SLI + (Closes: #552299) + * phylib: Fix typo in bcm63xx PHY driver table + * linux-base: Fix bugs and improve libata transition code: + - Fix scope of _system() function (Closes: #576925) + - Fix case where a file may wrongly be listed as automatically converted + (Closes: #577047) + - Check device IDs in mdadm.conf rather than assuming it needs manual + conversion + - Use vol_id if available since the version of blkid in lenny does not + support the output format we need (Closes: #576608) + - Fix missing line breaks in updated crypttab (Closes: #577735) + * i915: Stop trying to use ACPI lid status to determine LVDS connection + (Closes: #577724) + * forcedeth: Fix hardware version check for TX bug workaround + (Closes: #572201) + * rndis_host: Poll status channel before control channel (Closes: #576929) + * megaraid_sas: Fix copying of sense data for 32-bit management tools on + 64-bit kernel (Closes: #578398) + * Add ipheth driver for iPhone tethering + * virtio_net: Make delayed refill more reliable (Closes: #576838) + + [ maximilian attems] + * [ia64] Built in fbcon. + * Update openvz patch to c05f95fcb04e. (closes: #574598) + * Reenable nouveau autoloading. + * reiserfs: Fix permissions on .reiserfs_priv. CVE-2010-1146 + * libata,ata_piix: detect and clear spurious IRQs. + * libata/SCSI: fix locking around blk_abort_request(). + * topconfig enable NET_DROP_MONITOR. (closes: #578568) + * Add stable 2.6.32.12: + - ACPI: EC: Allow multibyte access to EC; fixes temperature monitoring + on some Dell laptops (Closes: #563313) + - [x86] KVM: disable paravirt mmu reporting (Closes: #573071) + - thinkpad-acpi: lock down video output state access (Closes: #565790) + - xfs update (closes: #579410) + * Add drm changes from stable 2.6.33.3: + - drm/radeon: R300 AD only has one quad pipe (Closes: #575681) + * libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2) + * Add EC path for Thinkpad X100. + * Bump ABI to 5, apply: + - hrtimer: Tune hrtimer_interrupt hang logic + * Add libata TRIM support. + * Backport radeon r800 modesetting support. + * drm/radeon/kms: further spread spectrum fixes. + * Backport p54 fixes. + * net: export device speed and duplex via sysfs. + * postrm: rm modules.softdep. (closes: #579175) + * Backport KVM: Xen PV-on-HVM guest support. + * Backport KVM: x86: Add KVM_GET/SET_VCPU_EVENTS. + * hugetlb: fix infinite loop in get_futex_key() when backed by huge pages + * ext4: Issue the discard operation *before* releasing the blocks to be + reused. + * libiscsi: regression: fix header digest errors. + * Revert module.c and module.h changes from -stable update. + + [ dann frazier ] + * Add DRBD backport + * sctp: Fix skb_over_panic resulting from multiple invalid parameter + errors (CVE-2010-1173) + * [CIFS] Allow null nd (as nfs server uses) on create (CVE-2010-1148) + * tipc: Fix oops on send prior to entering networked mode (CVE-2010-1187) + * [powerpc] KGDB: don't needlessly skip PAGE_USER test for Fsl booke + Note: KGDB is not currently enabled in debian builds (CVE-2010-1446) + + [ Aurelien Jarno ] + * [sh4] Add a sh7751r flavour. + * [mips/*malta] Remove options that are present in topconfig. + + [ Martin Michlmayr ] + * dns323-setup.c: fix WARN() when booting (Arnaud Patard). + * mips: enable PATA platform on SWARM and LITTLESUR (Sebastian Andrzej + Siewior). + * [mips/sb1-bcm91250a] Enable PATA_PLATFORM. + + [ Bastian Blank ] + * Update Xen patch. + + -- Ben Hutchings Sat, 01 May 2010 02:58:31 +0100 + +linux-2.6 (2.6.32-11) unstable; urgency=low + + [ Ben Hutchings ] + * [sparc] Provide io{read,write}{16,32}be() (Closes: #574421) + * Use libata-based drivers for most PATA controllers on all architectures + (previously applied only to x86) + * linux-base: Fix bugs and improve libata transition code: + - Handle duplicates in /etc/udev/rules.d/70-persistent-cd.rules + (Closes: #574630) + - Always attempt conversion if $DEBCONF_RECONFIGURE is set + - Never attempt conversion during a fresh installation (Closes: #576243) + - Convert disk IDs in crypttab (Closes: #575056) + - Redirect stdin and stdout of child processes to avoid interfering with + debconf (Closes: #574987) + - Report when hdparm.conf or mdadm.conf may need to be updated + (Closes: #576442) + - Where a device has both a UUID and a label, prefer to identify it by + UUID, consistent with fresh installations + - Do not use device labels including certain unsafe characters + (Closes: #576537) + * iwlwifi: Fix repeated warnings about tfds_in_queue (Closes: #574526) + * eeepc-laptop: Disable CPU speed control on 701 and 702 since it can + cause the system to hang (Closes: #559578) + * eeepc-laptop: Disable wireless hotplug on 1005HA, 1201N and 1005PE + since it disconnects the wrong device (Closes: #573607) + * linux-headers-*: Support postinst hooks in /etc/kernel/header_postinst.d, + thanks to Michael Gilbert (Closes: #569724) + * rt2860sta: Fix argument to linux_pci_unmap_single() (Closes: #575726) + * nouveau: nv50: Implement ctxprog/state generation + * phylib: Support PHY module autoloading (Closes: #553024) + * [x86] Add ramzswap driver (Closes: #573912) + + [ maximilian attems] + * [alpha, hppa] Disable oprofile as tracing code is unsupported here. + (closes: #574368) + * Update openvz patch to 14a9729fab67. (closes: #574598, #575189) + * [x86]: Disable FB_INTEL. (closes: #447575, #503766, #574401) + * ssb: do not read SPROM if it does not exist. + * ssb: Avoid null pointer dereference by aboves. + * Add stable 2.6.32.11. + - MIPS: Cleanup forgotten label_module_alloc in tlbex.c (Closes: #571305) + - ath5k: fix setup for CAB queue (closes: #576213) + - NFS: Prevent another deadlock in nfs_release_page() (Closes: #574348) + * Revert to keep ABI: + - hrtimer: Tune hrtimer_interrupt hang logic + + [ Moritz Muehlenhoff ] + * Add support for sh4 architecture, patch by Nobuhiro Iwamatsu + (Closes: #569034) + + [ Bastian Blank ] + * Update Xen patch. + - Fix free interrupt problem on uni-processor machines. + + [ Ian Campbell ] + * Include Xen hypervisor in reportbug "related to" list. + + -- maximilian attems Mon, 05 Apr 2010 20:31:15 +0200 + +linux-2.6 (2.6.32-10) unstable; urgency=low + + * The "Big Bang" release + + [ maximilian attems] + * tcp: fix ICMP-RTO war. + * Add stable 2.6.32.10. + - net/via-rhine: Fix scheduling while atomic bugs (closes: #549606) + - HID: remove TENX iBuddy from blacklist (Closes: #551312) + - USB: SIS USB2VGA DRIVER: support KAIREN's USB VGA adaptor + USB20SVGA-MB-PLUS (Closes: #565857) + * Bump ABI to 4. + * [x86] Add openvz flavour. + - adds ppp support (closes: #550975) + * Prevent nouveau from autoloading until xserver-xorg-video-nouveau lands. + + [ Moritz Muehlenhoff ] + * Enable CONFIG_KEYS_DEBUG_PROC_KEYS (Closes: #400932) + * Amend README.source with documentation on how to generate a + source tree with all patches applied (Closes: #509156) + * Document needed packages for preparatory packaging + steps (Closes: #548028) + + [ Aurelien Jarno ] + * Fix signal stack alignement on sparc64 (Closes: #569797) + + [ Bastian Blank ] + * Add support for Xen dom0 into its featureset. + (Closes: #499745, #503857, #504805, #505545, #506118, #507785, #509085, + #509733, #511963, #513835, #514511, #516223, #516374, #516635, #517048, + #519586, #520702, #522452, #524571, #524596, #526695, #533132, #533432, + #534880, #534978, #541227, #542299, #542614, #543489, #544525, #548345, + #554564, #554621, #559175, #559634) + * [alpha, amd64, i386, amd64, powerpc] Make all AGP driver built-in to + workaround race-condition between DRM and AGP. + + [ Ben Hutchings ] + * drm: Apply all changes from 2.6.33 and 2.6.33.1: + - Add nouveau driver + - i915: Fix disappearing mouse pointer (Closes: #551330) + - i915: Restore video overlay support (Closes: #560033) + - i915: Fix DDC on some systems by clearing BIOS GMBUS (Closes: #567747) + - radeon: Enable KMS support + * qla2xxx: Disable MSI/MSI-X on some chips or as selected by module parameter + (Closes: #572322) + - MSI is disabled on QLA24xx chips other than QLA2432 (MSI-X already was) + - MSI-X is disabled if qlx2enablemsix=2 + - MSI and MSI-X are disabled if qlx2enablemsix=0 + * [sparc64] Make prom entry spinlock NMI safe (Closes: #572442) + * firmware: Correct copyright information and add source for CIS files + * Fix first line of kernel-doc for a few functions so that they get valid + manual pages + * Remove /usr/include/drm from linux-libc-dev; let libdrm-dev provide it + again + * [x86] Enable rtl8192su driver using external firmware + * [x86] Use libata-based drivers for most PATA controllers (Closes: #444182): + - pata_triflex replaces triflex + - pata_atiixp replaces atiixp + - pata_ns87415 replaces ns87415 + - pata_sc1200 replaces sc1200 + - pata_cs5536 replaces cs5536 + - pata_amd replaces amd74xx + - pata_sis replaces sis5513 + - pata_rz1000 replaces rz1000 + - pata_efar replaces slc90e66 + - pata_pdc202xx_old replaces pdc202xx_old + - pata_pdc2027x replaces pdc202xx_new + - pata_cs5520 replaces cs5520 + - pata_cs5530 replaces cs5530 + - pata_cmd64x replaces cmd64x + - pata_sil680 replaces siimage + - pata_ali replaces alim15x3 + - pata_via replaces via82cxxx + - pata_serverworks replaces serverworks + - pata_artop replaces aec62xx + - pata_it821x replaces it821x + - ata_piix, pata_oldpiix, pata_mpiix mostly replace piix + - ata_generic, pata_ns87410, pata_netcell replace ide-pci-generic + * linux-base: Add libata transition script + * Hide sensitive information when including network configuration in bug + reports and running a different kernel version + + [ Martin Michlmayr ] + * Add some ARM patches from git: + - Update mach types + - eSATA SheevaPlug: basic board support + - eSATA SheevaPlug: configure SoC SATA interface + - eSATA SheevaPlug: correlate MPP to SD CD and SD WP + * [armel/kirkwood] Enable MACH_ESATA_SHEEVAPLUG. + + -- maximilian attems Tue, 16 Mar 2010 23:39:05 +0100 + +linux-2.6 (2.6.32-9) unstable; urgency=high + + [ Ben Hutchings ] + * Do not build obsolete lgs8gl5 driver + * [x86] Enable USB IP drivers (Closes: #568903) + * Ignore failure of lsusb when gathering information for bug reports + (Closes: #569725) + * macvlan: Add bridge, VEPA and private modes (Closes: #568756) + * [sparc] sunxvr500: Support Intergraph graphics chips again + (Closes: #508108) + * sfc: Apply fixes from 2.6.33 + * ath9k: Add support for AR2427 + * fs/exec.c: fix initial stack reservation (regression in 2.6.32.9) + + [ maximilian attems] + * Postinst don't refercence k-p related manpage. (closes: #542208) + * Postinst only write kernel-img.conf for palo boxes. + * Enable VT_HW_CONSOLE_BINDING for unbinding efifb. (closes: #569314) + * hwmon: Add driver for VIA CPU core temperature. + * wireless: report reasonable bitrate for MCS rates through wext. + * efifb: fix framebuffer handoff. (bugzilla.k.o #15151) + * Add stable 2.6.32.9: + - drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + (closes: #567747) + - futex: Handle futex value corruption gracefully. (CVE-2010-0623) + - futex_lock_pi() key refcnt fix. (CVE-2010-0623) + - Staging: fix rtl8187se compilation errors with mac80211. + (closes: #566726) + * r8169 patch for rx length check errors. (CVE-2009-4537) + * vgaarb: fix incorrect dereference of userspace pointer. + * Bump ABI to 3. + * drm/i915: give up on 8xx lid status. + * vgaarb: fix "target=default" passing. + * drm/radeon: block ability for userspace app to trash 0 page and beyond. + (closes: #550562) + + [ Bastian Blank ] + * Restrict access to sensitive SysRq keys by default. + * debian/rules.real: Install arch specific scripts. + + [ Moritz Muehlenhoff ] + * Set source format to 1.0 + + [ Martin Michlmayr ] + * [armel/iop32x] Enable ARCH_IQ80321 and ARCH_IQ31244 (Thanks Arnaud + Patard). + * [armel/kirkwood] Disable MTD_NAND_VERIFY_WRITE to avoid errors + with ubifs on OpenRD (Thanks Gert Doering) (Closes: #570407) + * OpenRD-Base: allow SD/UART1 selection (Closes: #571019) + * D-Link DNS-323 revision A1: implement power LED (Closes: 503172). + + -- maximilian attems Wed, 24 Feb 2010 17:06:27 +0100 + +linux-2.6 (2.6.32-8) unstable; urgency=high + + [ Bastian Blank ] + * Don't let default compiler flags escape into build. + + [ dann frazier ] + * KVM: PIT: control word is write-only (CVE-2010-0309) + * Fix potential crash with sys_move_pages (CVE-2010-0415) + + [ Ben Hutchings ] + * Build lgs8gxx driver along with cxusb (Closes: #568414) + * Revert incorrect change to powerpc clocksource setup (Closes: #568457) + * Add stable release 2.6.32.8: + - Remove TIF_ABI_PENDING bit from x86, sparc & powerpc, fixing + 32-bit userland/64-bit kernel breakage (Closes: #568416) + - connector: Delete buggy notification code. (CVE-2010-0410) + * [x86] KVM: Add IOPL/CPL checks to emulator, to prevent privilege + escalation within a guest. (CVE-2010-0298, CVE-2010-0306) + + [ Martin Michlmayr ] + * Implement power-off for D-Link DNS-323 rev B1 and fix the blinking + power LED (Erik Benada) (Closes: #503172). + + [ Aurelien Jarno ] + * Enable CONFIG_FB_CIRRUS and CONFIG_LOGO on 4kc-malta and 5kc-malta. + + -- Ben Hutchings Thu, 11 Feb 2010 02:17:17 +0000 + +linux-2.6 (2.6.32-7) unstable; urgency=low + + [ maximilian attems] + * [x86] Disable deprecated X86_CPU_DEBUG, causes boot failures. + * Newer Standards-Version 3.8.4 without changes. + + [ Ben Hutchings ] + * clocksource/events: Fix fallout of generic code changes + (Closes: #568030) + * Set ABI to 2. + + [ dann frazier ] + * Disable FUNCTION_TRACER due to performance/build issues. + (Closes: #568025) + * Split 'flush_old_exec' into two functions (CVE-2010-0307) + + -- dann frazier Wed, 03 Feb 2010 18:35:21 -0700 + +linux-2.6 (2.6.32-6) unstable; urgency=high + + [ Ben Hutchings ] + * Documentation/3c509: document ethtool support (Closes: #564743) + * Add MODULE_FIRMWARE declarations to several drivers that lacked them + * [x86] Update rt2860sta/rt2870sta firmware loader patch + - Accept 8K versions of rt2870.bin + - Fix hang on resume + * [x86] Enable rt3090sta using firmware loader + * Add stable release 2.6.32.4: + - untangle the do_mremap() mess (CVE-2010-0291) + - fasync: split 'fasync_helper()' into separate add/remove functions + (CVE-2009-4141) + - kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + (CVE-2010-0003) + - netfilter: ebtables: enforce CAP_NET_ADMIN (CVE-2010-0007) + - quota: Fix dquot_transfer for filesystems different from ext4 + (Closes: #566532) + - audit: Fix memory management bugs (Closes: #562815) + + fix braindamage in audit_tree.c untag_chunk() + + fix more leaks in audit_tree.c tag_chunk() + - ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). (CVE-2010-0006) + - Fix DMA mapping for i915 driver (Closes: #558237, #567352) + + drm: remove address mask param for drm_pci_alloc() + + agp/intel-agp: Clear entire GTT on startup + * e1000,e1000e: Discard all fragments of received over-length packets + (CVE-2009-4536, CVE-2009-4538) + * Enable the '686' configuration options in '686-vserver' packages and + the '686-bigmem' configuration options in '686-bigmem-vserver' packages + (Closes: #566213) + * Add stable release 2.6.32.5: + - inotify: do not reuse watch descriptors (Closes: #561880) + - megaraid_sas: remove sysfs poll_mode_io world writeable permissions + (CVE-2009-3939) (Closes: #562975) + * Force distribution=UNRELEASED in debian/bin/test-patches so that it + works in released source packages + * Add stable release 2.6.32.6 + * postinst: Enable escape sequences in debconf notes (Closes: #566539) + * Add 3w-sas driver for LSI 3ware 9750 SAS controllers + * aufs2: Update to snapshot from 2010-01-25 (Closes: #567391) + * cdc_ether: Do not set link down initially; not all devices send link + change interrupts (Closes: #567689) + * Add stable release 2.6.32.7: + - clockevent: Don't remove broadcast device on halt or CPU hotplug + (Closes: #566547) + * sfc: Apply fixes from 2.6.33-rc{5,6} + * Set ABI to 1. + + [ Ian Campbell ] + * xen: Enable up to 32G of guest memory on i386. + + [ Julien Cristau ] + * drm/i915: disable powersave by default (closes: #564807) + + [ Bastian Blank ] + * Enable all NCP file system options. + * [amd64] Make AGP support again built-in to fullfill the not completely + documented dependency with GART IOMMU support. (closes: #561552) + * Enable dynamic minor allocations for ALSA, DVB and USB. (closes: #510593) + + [ maximilian attems ] + * [topconfig] set MEMORY_FAILURE, 9P_FSCACHE, INFINIBAND_IPOIB_CM + (closes: #565494), ITCO_VENDOR_SUPPORT (closes: #525232), PCIEASPM + (closes: #545417), HWPOISON_INJECT. + * Enable easier debugging of Power Managment code. (closes: #478315) + * Pass `DEB_MAINT_PARAMS' to hook scripts. (closes: #563161) + * Enable more mobile IPv6 needs. (closes: #528834) + + [ dann frazier ] + * [vserver] explicitly disable CFS_HARD_LIMITS + * Enable FUNCTION_TRACER and STACK_TRACER (Closes: #563847) + + -- Ben Hutchings Sun, 31 Jan 2010 23:09:28 +0000 + +linux-2.6 (2.6.32-5) unstable; urgency=low + + [ Ben Hutchings ] + * sfc: Apply fixes from 2.6.33-rc3 + * ath5k: Fix eeprom checksum check for custom sized eeproms + (Closes: #563136) + + [ maximilian attems ] + * topconfig unset USB_ISP1362_HCD FTBFS on armel and useless. + (closes: #564156) + * topconfig set PATA_ATP867X, PATA_RDC, SND_CS5535AUDIO, PM_RUNTIME, + ATA_VERBOSE_ERROR, RTC_DRV_WM831X, RTC_DRV_PCF2123, RTC_DRV_AB3100, + SND_HDA_PATCH_LOADER, DEVTMPFS (closes: #560040). + * [x86] set RTL8192E, TOPSTAR_LAPTOP, I2C_SCMI. + * Explicitly disable diverse staging drivers. + + -- Ben Hutchings Sun, 10 Jan 2010 03:22:23 +0000 + +linux-2.6 (2.6.32-4) unstable; urgency=low + + [ Ben Hutchings ] + * Correct comments referring to dpkg --print-installation-architecture + in maintainer scripts (Closes: #558077) + * modules: Skip empty sections when exporting section notes + (Closes: #563036) + * via-velocity: Give RX descriptors to the NIC later on open or MTU change + (Closes: #508527) + * dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips + (Closes: #515533) + * Add stable release 2.6.32.3: + - ath5k: fix SWI calibration interrupt storm (may fix #563466) + - iwl3945: disable power save (Closes: #563693) + - rt2x00: Disable powersaving for rt61pci and rt2800pci (may fix #561087) + + [ maximilian attems ] + * topconfig set CAN_EMS_USB, BT_MRVL, BT_MRVL_SDIO, BE2ISCSI, SCSI_PMCRAID, + SCSI_BFA_FC, USB_GL860, USB_GSPCA_JEILINJ, I2C_SI4713, RADIO_SI4713, + RADIO_SI470X, DVB_USB_FRIIO, EDAC_I3200, SENSORS_TMP421, SENSORS_WM8350, + SBC_FITPC2_WATCHDOG, TOUCHSCREEN_MCS5000, UIO_PCI_GENERIC, KSZ8842, + KS8851, KS8851_MLL, MISDN_AVMFRITZ, MISDN_SPEEDFAX, MISDN_INFINEON, + MISDN_W6692, MISDN_NETJET, INPUT_WINBOND_CIR, BATTERY_DS2782, MFD_WM831X, + MFD_MC13783, MTD_SST25L, TOUCHSCREEN_USB_E2I, INPUT_WM831X_ON, + SENSORS_WM831X, WM831X_WATCHDOG, AB3100_OTP, REGULATOR_WM831X, + REGULATOR_MC13783, REGULATOR_AB3100, REGULATOR_TPS65023, + REGULATOR_TPS6507X, VIDEO_SAA7164, DVB_PT1, BACKLIGHT_WM831X, + SND_HDA_CODEC_CIRRUS, USB_ISP1362_HCD, LEDS_WM831X_STATUS, + MTD_ONENAND_GENERIC, B43_SDIO, B43_PHY_LP, KEYBOARD_ADP5588, QT2160, + KEYBOARD_LM8323, KEYBOARD_MAX7359, KEYBOARD_OPENCORES, MOUSE_PS2_SENTELIC, + WM831X_POWER. + * [x86] set ACPI_POWER_METER, ACPI_PROCESSOR_AGGREGATOR, SFI, + EDAC_DECODE_MCE. + * Set MOUSE_PS2_ELANTECH for various EeePc. (closes: #522920) + + [ dann frazier ] + * Fix vserver build on ia64 (Closes: #563356) + * Fix vserver build on s390 (Closes: #563355) + + [ Martin Michlmayr ] + * Report model information on armel when filing a bug. + * ARM: Add an earlyprintk debug console (Catalin Marinas) + * [armel] Enable EARLY_PRINTK. + + -- Ben Hutchings Thu, 07 Jan 2010 03:33:39 +0000 + +linux-2.6 (2.6.32-3) unstable; urgency=high + + * The "Not a Suitable Christmas Present" release + + [ Martin Michlmayr ] + * [armel/orion5x] Build MTD_CFI_AMDSTD into the kernel again since + it's needed on the D-Link DNS-323 (thanks Manuel Roeder). + (Closes: #562205) + + [ dann frazier ] + * Input: ALPS - add support for touchpads with 4-directional button + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + (Closes: #561589) + * Re-enable vserver + + [ Ben Hutchings ] + * sfc: Apply changes from 2.6.33-rc1 adding support for SFC9000 family + * Add stable release 2.6.32.2: + - KVM: x86 emulator: limit instructions to 15 bytes (CVE-2009-4031) + - hfs: fix a potential buffer overflow (CVE-2009-4020) + * radeon: fix crtc vblank update for r600 (regression in 2.6.32.2) + * ia64: Include header in ; fixes + FTBFS + * r8169: Allow RTL8168D v1 and v2 to be used without firmware files + (Closes: #561309) + * Enable vmxnet3 (VMware guest paravirt net driver) (Closes: #562046) + + -- Ben Hutchings Thu, 24 Dec 2009 04:28:55 +0000 + +linux-2.6 (2.6.32-2) unstable; urgency=high + + [ Bastian Blank ] + * Allow memory hot-add and -remove if possible. + * Enable USB suspend. + * Enable kernel samepage merging. (closes: #558200) + * [s390] + - Enable SECCOMP. + - Enable z/VM Watchdog Timer. + + [ Moritz Muehlenhoff ] + * Disable cryptoloop (Closes: #559755) + * Initial work on a README.source file as suggested by current policy + + [ Ben Hutchings ] + * aufs2: Update to snapshot from 2009-12-05 + * postinst: Fix failure paths in check for missing firmware + (Closes: #560263) + * atl1c: Fix system hang when link drops (Closes: #559577) + * netfilter: xtables: fix conntrack match v1 ipt-save output + (Closes: #556587) + + [ Aurelien Jarno ] + * Add support for the sparc64 architecture. + + [ dann frazier ] + * Add stable release 2.6.32.1: + - ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT (CVE-2009-4306) + - ext4: avoid divide by zero when trying to mount a corrupted file system + (CVE-2009-4307) + - ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT (CVE-2009-4131) + + -- Ben Hutchings Wed, 16 Dec 2009 21:42:49 +0000 + +linux-kbuild-2.6 (2.6.32-1) unstable; urgency=low + + [ Ben Hutchings ] + * New upstream version. (closes: #560090) + * Include new script module-common.lds, thanks to Zoran Dzelajlija. + + [ Bastian Blank ] + * Move contents of linux-kbuild package to /usr/lib. + + -- Bastian Blank Fri, 11 Dec 2009 16:16:12 +0100 + +linux-2.6 (2.6.32-1) unstable; urgency=low + + * New upstream release candidate: + - Fixes wifi with rt73usb (Closes: #555640) + + [ Martin Michlmayr ] + * [armel/kirkwood] Turn on USB_SUSPEND (on the request of a SheevaPlug + user). + * [mips/4kc-malta, mips/5kc-malta] Compile USB as a module rather than + into the kernel. + + [ Bastian Blank ] + * Enable PCI_MSI. + * [powerpc] Properly enable Apple PMU battery. + * [mips/mipsel] Drop remaining OSS drivers. + * [powerpc] Enable PCIe support. + * Move contents of linux-support package to /usr/share. + * Make linux-patch package depend against python. + * Use python-support instead of python-central. + * Always enable software watchdog support. + * Always enable complete USB mass storage support. + * [amd64, powerpc, sparc] Build USB support as module. + * [amd64] Build AGP support as module. + * Always enable dummy net driver support. + * Drop linux-tree package, it have no users left. + + [ Ben Hutchings ] + * Re-enable accidentally omitted drivers, thanks to Uwe Kleine-König + (Closes: #558011): + - Atheros wireless drivers (ar9170, ath5k, ath9k) + - TI wl12xx wireless drivers (wl1251_spi, wl1251_sdio and wl1271 + replace wl12xx) + - Silicon Labs Si470x FM Radio Receiver driver (radio-usb-si470x) + * Add 'removable' option to the mmc module. Setting this to 0 causes + MMC/SD cards to be assumed non-removable, and filesystems on them + will remain mounted over a suspend/resume cycle. (Closes: #504391) + * Add MODULE_FIRMWARE declarations to many drivers that lacked them, so + that missing firmware will be reported automatically during upgrades + * atl1e: Remove broken implementation of TSO for TCP/IPv6 + (Closes: #558426) and allow other hardware offloads to be disabled in + case they are also buggy + * usbnet: Set link down initially for drivers that update link state + (Closes: #444043) + * aufs2: Update to snapshot from 2009-11-29 + * i915: Enable auto-loading even though CONFIG_DRM_I915_KMS is not set + + [ dann frazier ] + * mac80211 (CVE-2009-4026, CVE-2009-4027): + - fix two remote exploits + - fix spurious delBA handling + + -- Bastian Blank Sun, 06 Dec 2009 18:17:39 +0100 + +linux-2.6 (2.6.32~rc8-1~experimental.1) unstable; urgency=low + + [ Ben Hutchings ] + * New upstream release candidate. + - slip: Clean up create and destroy (Closes: #408635) + - signal: Fix alternate signal stack check (Closes: #544905) + * README.Debian: Add brief information about building specific binary + packages (Closes: #546182) + * lgs8gxx: Remove firmware for lgs8g75 and use request_firmware() to + load it + * r8169: Remove firmware for RTL8168D v1 and v2 and use + request_firmware() to load it + * DocBook: Fix build breakage + * Hide WPA authentication parameters and comments when including network + configuration in bug reports + + [ Bastian Blank ] + * [mips] Don't force EMBEDDED on. + * [sparc] Don't builtin Ext2 support. + * Enable PERF_EVENTS, EVENT_PROFILE, CRYPTO_VMAC, CRYPTO_GHASH, TREE_RCU. + * Use SLUB as default SLAB allocator. + + [ Martin Michlmayr ] + * [armel] Make some options modular (since there's no reason for them + to be built in): FTL, NFTL, MTD_CFI_AMDSTD, MTD_CFI_STAA. + * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus + Krebs). + * Add patch from Albin Tonnerre to add HAVE_KERNEL_LZMA to arm. + * [armel] Enable KERNEL_LZMA, i.e. compress kernels with lzma to get + much better compression. + * [armel] Re-enable options that were turned off recently because of + size constraints: DEBUG_USER, DEBUG_KERNEL, BOOT_TRACER, ARM_UNWIND, + BLK_DEV_IO_TRACE and SECURITY_SELINUX. + + [ maximilian attems ] + * Simplify postinst nuke reverse symlinks handling. Patch from + Sebastian Andrzej Siewior . + + -- Bastian Blank Sat, 21 Nov 2009 21:41:45 +0100 + +linux-2.6 (2.6.31-2) unstable; urgency=low + + [ Martin Michlmayr ] + * [armel/orion5x, armel/kirkwood] Make sure VGA_CONSOLE is disabled, + otherwise the kernel won't boot. + * [armel/kirkwood] Enable CRYPTO_DEV_MV_CESA (Closes: #552270). + * [armel/kirkwood, armel/orion5x] Enable ORION_WATCHDOG (the + name of the config variable changed). + * Add OpenRD-Client support again. + * Add QNAP TS-41x support. + * [armel/orion5x, armel/kirkwood] Enable ISDN (requested by Markus + Krebs). + * Fix a build failure of the ISDN hisax elsa driver on ARM. + * mips: fix build of vmlinux.lds (Closes: #552422). + + [ Ben Hutchings ] + * postinst: Accept absolute paths in modules.dep generated by the + lenny version of module-init-tools (Closes: #552610) + * aufs2: Remove incorrect static assertion (Closes: #554120) + * Add stable release 2.6.31.6: + - fs: pipe.c null pointer dereference (CVE-2009-3547) + - KEYS: get_instantiation_keyring() should inc the keyring refcount + in all cases (CVE-2009-3624) + - netlink: fix typo in initialization (CVE-2009-3612) + * Undo PCMCIA ABI change in 2.6.31.6 + * Hide wireless keys and wake-on-LAN password when including network + configuration in bug reports + * Add Geode LX/NX to list of 686-class processors + + [ Bastian Blank ] + * [powerpc] Remove SMP warning from PowerMac cpufreq (Closes: #554124) + + [ maximilian Attems ] + * Really fix making a debian kernel installable without kernel-img.conf. + Thanks for patch to Sebastian Andrzej Siewior . + (closes: #555093). + + -- Ben Hutchings Sun, 15 Nov 2009 18:47:49 +0000 + +linux-kbuild-2.6 (2.6.31.2-1) unstable; urgency=low + + * Upload to unstable. + + -- Ben Hutchings Sun, 25 Oct 2009 18:38:44 +0000 + +linux-2.6 (2.6.31-1) unstable; urgency=low + + [ Ben Hutchings ] + * Include aufs2, marked as staging (Closes: #541828) + * Include speakup modules under staging + * Add stable release 2.6.31.5 + * [x86_64] Enable NUMA_EMU (Closes: #541389) + + [ Martin Michlmayr ] + * CPUidle: always return with interrupts enabled. + * [armel/orion5x, armel/kirkwood] Enable FB since some Kirkwood + machines have a VGA chip (e.g. OpenRD-Client) and because it's + possible to use a DisplayLink USB virtual graphics adapter. + + [ maximilian attems ] + * [alpha] Disable SND_MIXART, causes gcc ICE. + * [x86] Enable modular X86_MCE_INJECT. + * [x86_32] Set LSM_MMAP_MIN_ADDR to zero to unbreak dosemu and 16-bit Wine, + ia64 and x86_64 to 65536 otherwise default to 32768. + * Unset UEVENT_HELPER_PATH to save some boot cycles. + + [ Bastian Blank ] + * Set ABI to 1. + * Enable Apple PMU battery. (closes: #544264) + + -- Bastian Blank Sat, 24 Oct 2009 19:17:30 +0200 + +linux-kbuild-2.6 (2.6.31.2-1~experimental.1) experimental; urgency=low + + [ Bastian Blank ] + * New upstream version. + + [ Ben Hutchings ] + * Include new script gcc-x86_32-has-stack-protector.sh. + * Add myself to Uploaders. + * New upstream version (2.6.31.2). + + -- Ben Hutchings Sat, 17 Oct 2009 23:05:27 +0100 + +linux-2.6 (2.6.31-1~experimental.2) experimental; urgency=low + + [ Ben Hutchings ] + * Include more information in bug reports: + - Model information + - Firmware package status + - Network configuration and status (optional) + - USB device list + * nfs: Avoid overrun when copying client IP address string + (Closes: #549002) + * Add support for DEB_BUILD_OPTIONS=parallel=N (Closes: #458560) + * sfc: Fix initial link state + * Improve package descriptions + - Clarify the differences between i386 flavours (Closes: #414690) + - Simplify wording of the description template + * Add stable release 2.6.31.3 + * Remove /usr/include/scsi from linux-libc-dev; these headers are + provided by libc6-dev (Closes: #550130) + * Remove dummy dot-files from linux-libc-dev + * hfsplus: Refuse to mount volumes larger than 2TB, which may otherwise + be corrupted (Closes: #550010) + * Add stable release 2.6.31.4 + - x86: Don't leak 64-bit kernel register values to 32-bit processes + (CVE-2009-2910) + - appletalk: Fix skb leak when ipddp interface is not loaded + (CVE-2009-2903) + + [ maximilian attems ] + * Add stable release 2.6.31.2 + - ax25: Fix signed comparison in the sockopt handler (CVE-2009-2909) + - PM / yenta: Fix cardbus suspend/resume regression (Closes: #522828) + + [ dann frazier ] + * [sparc] build zImage by default, fixes build + * [ia64] Fix call to elilo in postinst + + -- maximilian attems Mon, 12 Oct 2009 23:54:52 +0200 + +linux-2.6 (2.6.31-1~experimental.1) experimental; urgency=low + + * New upstream release. + - Support for W83627DHG-P (closes: #535646). + - Restore MAC address and MTU change operations on Orinoco and others + (Closes: #536455) + - Remove incorrect ACPI blacklisting of ASUS P4B266 mainboards + (Closes: #525625) + - atl1c fixes for Eee PC model 1005HA-H. (closes: #538410) + - parisc64-smp boot fix on J5600. (closes: #539369) + - parisc: Fix GOT overflow during module load on 64bit kernel + (closes: #539378) + - xfs: fix freeing of inodes not yet added to the inode cache + (Closes: #527517) + - IPv6: add "disable" module parameter support to ipv6.ko. + (closes: #542470) + - IPv6: avoid wraparound for expired preferred lifetime + (Closes: #518710) + - Fixes lockups with older dual-CPU machines (Closes: #542551) + - x86, pat: Allow ISA memory range uncacheable mapping requests + (Closes: #538159) + - drm/i915: Hook connector to encoder during load detection + (Closes: #522358) + - module: workaround duplicate section names (Closes: #545229) + - b43: Add fw capabilities (Closes: #533357) + - procfs: Fix idle time in uptime (Closes: #545981) + - e1000, e1000e, igb, ixgb, ixgbe: Fix initial link state + (Closes: #546041) + - CIFS: Handle port= mount option correctly (Closes: #524142) + - i915: Prevent screen flickering in X11 (Closes: #545377) + - hppa: Ensure broadcast tlb purge runs single threaded + (Closes: #539215) + + [ maximilian attems ] + * [powerpc64] Enable modular RTC_DRV_PS3, PS3_VRAM. + (Closes: #528694) + * Set new NETFILTER_XT_MATCH_OSF, FIREWIRE_NET, SND_CTXFI, USB_XHCI_HCD, + IEEE802154, CAN_DEV, EEPROM_MAX6875, DM_LOG_USERSPACE, DM_MULTIPATH_QL, + DM_MULTIPATH_ST, LIBERTAS_SPI, CAN_SJA1000, CAN_SJA1000_PLATFORM, + CAN_EMS_PCI, CAN_KVASER_PCI, CB710_CORE, CNIC, RT2800USB, + USB_NET_INT51X1, SND_LX6464ES, BLK_DEV_OSD, SCSI_BNX2_ISCSI, IWM, + IEEE802154_DRIVERS, TOUCHSCREEN_EETI, TOUCHSCREEN_W90X900, + BATTERY_MAX17040, SENSORS_TMP401, REGULATOR_USERSPACE_CONSUMER, + REGULATOR_MAX1586, REGULATOR_LP3971, MEDIA_SUPPORT, CUSE, + WL12XX, PPS, AB3100_CORE, SND_HDA_INPUT_JACK,MMC_SDHCI_PLTFM, + MMC_CB710, MMC_VIA_SDMMC, LEDS_LP3944, RTC_DRV_RX8025, + SMARTJOYPLUS_FF, USB_CDC_PHONET, USB_GSPCA_SN9C20X, MOUSE_SYNAPTICS_I2C, + PCIEAER_INJECT. + * Disable v4l1 ov511 and quickcam_messenger drivers. + * [x86_64] Enable HW_RANDOM_VIA. + * [x86] Keep divers staging stuff enabled. + * [x86] Enable RT3070, COMEDI_PCMCIA_DRIVERS, ACERHDF, EDAC_AMD64, + XEN_DEV_EVTCHN, XEN_SYS_HYPERVISOR, PERF_COUNTERS, + CC_STACKPROTECTOR, DEFAULT_MMAP_MIN_ADDR=65536. + * rtl8192su: remove firmware and disable. + * Newer Standards-Version 3.8.2 without changes. + * Allow install in chroot without do_initrd check for piuparts. + * Cleanup Maintainer scripts from ancient pre linux-2.6 assumptions. + (Also closes: #536333) + * Disable DEVKMEM. + * [ppc, sparc] Enable EFI_PARTITION. (closes: #540486) + * Disable old USB_DEVICE_CLASS. (Closes: #510279) + * Drop yaird initramfs generator support. + * Add stable release 2.6.31.1. + * Enable PREEMPT_VOLUNTARY. + + [ Ben Hutchings ] + * mga: remove unnecessary change from firmware-loading patch + * cxgb3: remove PHY firmware and use request_firmware() to load it + * Add firmware-linux-free package containing DFSG-free firmware + * av7110: include firmware source and binary + * snd-cs46xx: reenable using external firmware (closes: #464197, + but note that Debian cannot currently distribute the firmware), + thanks to Kalle Olavi Niemitalo + * ib_ipath: remove firmware for QLogic IBA7220 and use + request_firmware() to load it + * dvb-usb-af9005: remove initialisation script derived from Windows + driver and use request_firmware() to extract it at run-time + (closes: #494119) + * Add warning on upgrade to a new upstream version where the system + appears to be missing necessary firmware files (closes: #541702) + * qla1280: Release spinlock when requesting firmware (closes: #543244) + * r128: Add test for initialisation to all ioctls that require it + (closes: #541630) + * rt{2860,2870,3070}sta: Use existing CCITT CRC implementation on + firmware rather than adding an equivalent variant of ITU-T CRC + * rd: Build as a module since we do not require initrd support + * x86: Fix crash in text_poke_early() on 486-class processors + (Closes: #515982) + * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics + corruption and GPU lock-ups (Closes: #541307) + * Generate architecture-qualified package relations as needed for + flavours that exist for multiple architectures (Closes: #278729) + * Prompt bug reporters to run the kernel version they're reporting on + or otherwise record boot messages + * Include PCI device list in bug reports even if the running kernel + doesn't match + + [ Martin Michlmayr ] + * [armel/orion5x, armel/kirkwood] Set GPIO_SYSFS=y since these + platforms have been converted to GPIOLIB. + * [armel/orion5x, armel/kirkwood] Disable MARVELL_PHY since it may + lead to conflicts with the built-in Ethernet. + * Add features from 2.6.32: + - crypto: mv_cesa - Add support for Orion5X crypto engine + * [armel/orion5x] Enable CRYPTO_DEV_MV_CESA. + * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang + during bootup (Closes: #507557) + * [armel] Enable BPQETHER (on the request of Iain Young) and some + other AX25 drivers. + + [ Bastian Blank ] + * Disable staging drivers by default. + * Force all bugs against images to be reported to linux-2.6. + (closes: #539176) + * [arm] Remove old arm architecture. + * Use kernel architecture for libc-dev build. + + [ Moritz Muehlenhoff ] + * Fix Linus' name in copyright file (Closes: #530620) + * More verbose explanation on difference between Alpha flavour + (Closes: #497230) + * Add Vcs-Svn and Vcs-Browser stanzas pointing to the SVN branch + used for development in unstable. There are other branches + used for experimental (trunk), oldstable and stable, but Vcs-* + doesn't yet provide the ability to distinguish branches in a + more fine-grained manner. (Closes: #471495) + * Update Standards-Version to 3.8.3, no changes needed + * Disable PROM console support (Closes: #525958) + * Make the description of linux-support a little more verbose + (Closes: #400825) + * This upload fixes the following security issues: + - CVE-2009-3290 (2.6.31) + - CVE-2009-3288 (2.6.31.1) + - CVE-2009-3280 (2.6.31.1) + - CVE-2009-3234 (2.6.31.1) + - CVE-2009-3043 (2.6.31) + - CVE-2009-3002 (2.6.31) + - CVE-2009-3001 (2.6.31) + - CVE-2009-2844 (2.6.31) + - CVE-2009-2695 (2.6.31) + - CVE-2009-2691 (2.6.31) + + [ dann frazier ] + * n_tty: Fix echo race + * [ia64] Stop disabling CONFIG_HOTPLUG_CPU, which was blocking + CONFIG_KEXEC from being enabled + * [hppa] Disable CONFIG_AB3100_CORE, it fails to build + + -- maximilian attems Sun, 04 Oct 2009 20:27:05 +0200 + +linux-2.6 (2.6.30-8) unstable; urgency=low + + [ Martin Michlmayr ] + * Disable SYS_HAS_EARLY_PRINTK on SGI IP22 to work around a hang + during bootup (Closes: #507557) + * module: workaround duplicate section names to fix a panic on + boot on hppa (Closes: #545229). + * Add stable release 2.6.30.8. + * [armel/kirkwood] Add Marvell OpenRD-Client support (Dhaval Vasa). + Thanks Stefan Kaltenbrunner. + + -- Bastian Blank Fri, 25 Sep 2009 23:47:56 +0200 + +linux-2.6 (2.6.30-7) unstable; urgency=low + + [ Martin Michlmayr ] + * [armel/kirkwood] Enable eSATA on QNAP TS-219P (John Holland). + * [armel/kirkwood] Marvell OpenRD-Base board support (Dhaval Vasa). + * [armel/kirkwood] Initialise SATA for OpenRD-Base (Ron Lee). + * [armel/kirkwood] Enable SATA_AHCI. + + [ Ben Hutchings ] + * qla1280: Release spinlock when requesting firmware (closes: #543244) + * r128: Add test for initialisation to all ioctls that require it + (closes: #541630) + * [i386] Fix crash in text_poke_early() on 486-class processors + (Closes: #515982) + * intel-agp: Fix cache flushing on i8xx chipsets, avoiding graphics + corruption and GPU lock-ups (Closes: #541307) + * [i386] Allow ISA memory range uncacheable mapping requests + (Closes: #538159) + * Fix idle time in /proc/uptime (Closes: #545981) + * e1000, e1000e, igb, ixgb, ixgbe, sfc: Fix initial link state + (Closes: #546041) + + [ Bastian Blank ] + * Add stable release 2.6.30.5. + - drm/i915: Hook connector to encoder during load detection + (fixes tv/vga detect) (Closes: #522358) + * Add stable release 2.6.30.6. + - x86: Fix lock-up on SMP Pentium Pro, Pentium 2, Pentium 3, and + Athlon MP systems (Closes: #542551) + - NET: Fix information leaks from getsockname() (CVE-2009-3001, + CVE-2009-3002) + - iwl3945/rfkill: Reenable radio when hardware switch turned back on + (Closes: #530554) + * Bump ABI to 2. + * Apply missing fixes: + - block: fix sg SG_DXFER_TO_FROM_DEV regression. + - sched_rt: Fix overload bug on rt group scheduling. + * Add stable release 2.6.30.7. + * [sparc] Disable PROM console. (closes: #525958) + + -- Bastian Blank Wed, 16 Sep 2009 17:23:13 +0200 + +linux-2.6 (2.6.30-6) unstable; urgency=high + + [ Bastian Blank ] + * Set default low address space protection to default value. + + [ dann frazier ] + * Make sock_sendpage() use kernel_sendpage() (CVE-2009-2692) + * flat: fix uninitialized ptr with shared libs + * [parisc] isa-eeprom - Fix loff_t usage + * do_sigaltstack: avoid copying 'stack_t' as a structure to user space + * posix-timers: Fix oops in clock_nanosleep() with CLOCK_MONOTONIC_RAW + + -- Bastian Blank Sat, 15 Aug 2009 15:50:02 +0200 + +linux-2.6 (2.6.30-5) unstable; urgency=high + + [ maximilian attems ] + * Add stable release 2.6.30.4. + - cifs: fix regression with O_EXCL creates and optimize away lookup + (closes: #536426) + - ecryptfs: check tag 11 literal data buffer size (CVE-2009-2406) + - ecryptfs: check tag 3 package encrypted size (CVE-2009-2407) + * Ignore nf_conntrack ABI change. + * Revert to keep ABI: + - block: fix sg SG_DXFER_TO_FROM_DEV regression. + - sched_rt: Fix overload bug on rt group scheduling. + * [hppa]: Ignore any ABI (broke on 2.6.30.2). + + -- maximilian attems Mon, 03 Aug 2009 12:08:56 +0200 + +linux-2.6 (2.6.30-4) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.30.2. + * Fix pci access in x86 startup code. (closes: #537783) + * Ignore ABI changes. + * Include all plattform and mach specific headers on arm. + + [ maximilian attems ] + * Add stable release 2.6.30.3. + + -- Bastian Blank Thu, 30 Jul 2009 11:55:11 +0200 + +linux-2.6 (2.6.30-3) unstable; urgency=low + + [ Bastian Blank ] + * Build-Depend against cpio. (closes: #536196) + + [ Martin Michlmayr ] + * [arm] Export __cpu_flush_dcache_page. + + [ Aurelien Jarno ] + * [ia64] Fix asm/fpu.h includes. + + [ dann frazier ] + * Fix NULL pointer dereference in tun_chr_pool() (CVE-2009-1897) + * personality: fix PER_CLEAR_ON_SETID (CVE-2009-1895) + * Add -fno-delete-null-pointer-checks to CFLAGS + + -- Bastian Blank Sat, 18 Jul 2009 10:00:01 +0200 + +linux-2.6 (2.6.30-2) unstable; urgency=low + + [ dann frazier ] + * [powerpc] Use generic rtc (closes: #535354) + * [parisc] + - ensure broadcast tlb purge runs single threaded + - fix ldcw inline assembler + (closes: #535844) + + [ Bastian Blank ] + * Add stable release 2.6.30.1: + - KVM: x86: check for cr3 validity in ioctl_set_sregs (CVE-2009-2287) + - ALSA: intel8x0 - Fix PCM position craziness (closes: #533780) + - ide-cd: prevent null pointer deref via cdrom_newpc_intr (closes: #535342) + * Ignore ABI changes. + + [ maximilian attems ] + * [alpha] Add upstream smp buildfix. + * [parisc] Disable vxge and niu. + + -- Bastian Blank Tue, 07 Jul 2009 14:45:43 +0200 + +linux-kbuild-2.6 (2.6.30-1) unstable; urgency=low + + * New upstream version. + + -- Bastian Blank Wed, 17 Jun 2009 16:49:57 +0200 + +linux-2.6 (2.6.30-1) unstable; urgency=low + + * New upstream release. + - radeonfb: suspend/resume for ATI Mobility Radeon RV350. + (closes: #506964) + - tcp: fix MSG_PEEK race check (closes: #513695) + - e100 fixes (closes: #527056) + - mos7840: fix miscalculation of minor numbers (closes: #498293) + - reiserfs update (closes: #531804) + - bluetooth stack suspend/resume (closes: #508426, #529785) + - e1000e: Remove mutex_trylock and associated WARN on failure + (closes: #524699) + + [ maximilian attems ] + * [sparc] Enable BLK_DEV_CRYPTOLOOP. (closes: #521829) + * Enable PATA_JMICRON instead of legacy BLK_DEV_JMICRON. + (closes: #431500, #458493) + * Set new NILFS2, AT76C50X_USB, MWL8K, P54_SPI, AR9170_USB, + NETFILTER_XT_MATCH_CLUSTER, RDS, SCSI_MPT2SAS, SCSI_OSD_INITIATOR, + ETHOC, IGBVF, VXGE, TOUCHSCREEN_AD7877, SENSORS_ATK0110, + NETFILTER_XT_TARGET_LED, 3C359, HW_RANDOM_TIMERIOMEM, SENSORS_G760A, + SENSORS_LTC4215, SENSORS_LM95241, USB_GSPCA_MR97310A, USB_GSPCA_SQ905, + USB_GSPCA_SQ905C, USB_PWC_INPUT_EVDEV, DVB_USB_CE6230, SND_INDIGOIOX, + SND_INDIGODJX, USB_SERIAL_CP210X, USB_SERIAL_QUALCOMM, + USB_SERIAL_SYMBOL, ISL29003, SERIAL_MAX3100, VIDEO_HDPVR, VIDEO_CX231XX, + DRAGONRISE_FF, LEDS_LP5521, LEDS_DAC124S085, LEDS_BD2802, + UIO_AEC, CRYPTO_ZLIB, REGULATOR_FIXED_VOLTAGE, NOP_USB_XCEIV, + POHMELFS, FSCACHE, CACHEFILES, EXOFS, NFS_FSCACHE, AFS_FSCACHE, + MTD_NAND_NANDSIM, STRIP_ASM_SYMS, FCOE_FNIC, USB_NET_CDC_EEM, + PCI_IOV, ASYNC_TX_DMA, ROMFS_BACKED_BY_BOTH, DETECT_HUNG_TASK. + * [amd64, i386] Set new DELL_WMI, EDAC_AMD8131, EDAC_AMD8111, X86_PAT, DMAR, + X86_CPU_DEBUG, CRYPTO_AES_NI_INTEL, X86_X2APIC. + * Newer Standards-Version 3.8.1 without changes. + * xfs: fix freeing memory in xfs_getbmap(). + + [ Ben Hutchings ] + * Remove firmware from drivers/staging (closes: #521553) + - make rt2860sta and rt2870sta use request_firmware(), + thanks to Darren Salt + * Remove some sourceless firmware not included in Debian kernel images + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Enable SCSI_SYM53C8XX_2 (closes: #526836). + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Turn off BOOT_TRACER, + BLK_DEV_IO_TRACE, CONTEXT_SWITCH_TRACER, ARM_UNWIND and + SECURITY_SELINUX because of size constraints. + * [mips/sb1-bcm91250a] There is a platform PATA driver for SWARM IDE + these days, so disable IDE and build in ATA, SCSI and BLK_DEV_SD. + * [mips/sb1-bcm91250a, mips/sb1a-bcm91480b] Compile in SB1250_MAC and + BROADCOM_PHY. + * [mips/r4k-ip22] Enable NET_ISA and various ISA network modules on + the request of Damian Dimmich since they might be useful on the + SGI Indigo2. + * Add patches from git.marvell.com: + - alternative copy_to_user: more precise fallback threshold + - lower overhead with alternative copy_to_user for small copies + - Kirkwood: Add CPU idle driver + - Kirkwood: clock gating for unused peripherals + + [ Aurelien Jarno ] + * [mips(el)/sb1-bcm91250a] Set CONFIG_SCSI_AIC7XXX=y, it is needed + on the build daemons. + * topconfig set CONFIG_RD_GZIP, CONFIG_RD_BZIP2, CONFIG_RD_LZMA. + + [ Bastian Blank ] + * [i386] Disable PentiumPro errata workaround. + * [i386] Enable support for big SMP systems. + * Disable OSS. + * [s390] Use Sparse Memory layout. + * [amd64, i386, powerpc, sparc] Make IPv6 support built-in. + * Centralize Sound core options. + * Centralize Power Management options. + * Centralize CPU Frequency scaling options. + * [sparc] Enable CPU Frequency scaling. + * Enable Network console logging support. + * [s390/s390x-tape] Add image. + * [s390/s390, s390/s390-tape] Remove images. + * [i386/486] Enable High Memory Support. + * [i386] Allocate pagetables from High Memory. + * [amd64, i386] Write protect kernel read-only data structures. + * [amd64, i386] Make kernel relocatable. + * Move images and headers into kernel section. + + [ dann frazier ] + * Enable bnx2x, using firmware-split patches from net-next and mirroring + the per-subarch config settings used for bnx2 + + -- Bastian Blank Sun, 14 Jun 2009 11:45:08 +0200 + +linux-2.6 (2.6.29-5) unstable; urgency=low + + [ dann frazier ] + * [ia64] Backport rtc-efi driver from mainline + + [ maximilian attems ] + * qla1280: Fix off-by-some error in firmware loading. (closes: #527265) + + [ Martin Michlmayr ] + * Broadcom SB: fix locking in set_irq_affinity. + * mmc: load mvsdio automatically when it's a platform device. + * mmc: mvsdio: ignore high speed timing requests from the core + * USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug. + + [ Bastian Blank ] + * Add stable release 2.6.29.3: + - ath9k: Fix FIF_BCN_PRBRESP_PROMISC handling + - tracing: x86, mmiotrace: fix range test + - sched: account system time properly + - rndis_wlan: fix initialization order for workqueue&workers + - mm: fix Committed_AS underflow on large NR_CPUS environment + - Ignore madvise(MADV_WILLNEED) for hugetlbfs-backed regions + - clockevents: prevent endless loop in tick_handle_periodic() + - intel-iommu: Avoid panic() for DRHD at address zero. + - intel-iommu: Fix oops in device_to_iommu() when devices not found. + - intel-iommu: Fix device-to-iommu mapping for PCI-PCI bridges. + - cs5536: define dma_sff_read_status() method + - proc: avoid information leaks to non-privileged processes + - ath5k: fix buffer overrun in rate debug code + - mv643xx_eth: OOM handling fixes + - mv643xx_eth: 64bit mib counter read fix + - check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/ + - do_execve() must not clear fs->in_exec if it was set by another thread + - check_unsafe_exec() doesn't care about signal handlers sharing + - New locking/refcounting for fs_struct + - Take fs_struct handling to new file (fs/fs_struct.c) + - Get rid of bumping fs_struct refcount in pivot_root(2) + - Kill unsharing fs_struct in __set_personality() + - Annotate struct fs_struct's usage count restriction + - fix setuid sometimes wouldn't + - fix setuid sometimes doesn't + - compat_do_execve should unshare_files + - powerpc: Sanitize stack pointer in signal handling code + - ACPI: Revert conflicting workaround for BIOS w/ mangled PRT entries + - USB: serial: fix lifetime and locking problems + - ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex + - kbuild: fix Module.markers permission error under cygwin + - pagemap: require aligned-length, non-null reads of /proc/pid/pagemap + - drm/i915: allow tiled front buffers on 965+ + - bio: fix memcpy corruption in bio_copy_user_iov() + - PCI quirk: disable MSI on VIA VT3364 chipsets + - ASoC: Fix offset of freqmode in WM8580 PLL configuration + - x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case + - x86-64: fix FPU corruption with signals and preemption + - drm/i915: add support for G41 chipset + - unreached code in selinux_ip_postroute_iptables_compat() (CVE-2009-1184) + - PCI: fix incorrect mask of PM No_Soft_Reset bit + - exit_notify: kill the wrong capable(CAP_KILL) check (CVE-2009-1337) + - crypto: ixp4xx - Fix handling of chained sg buffers + - block: include empty disks in /proc/diskstats + - b44: Use kernel DMA addresses for the kernel DMA API + - virtio-rng: Remove false BUG for spurious callbacks + - USB: Unusual Device support for Gold MP3 Player Energy + - KVM: x86: release time_page on vcpu destruction + - KVM: Fix overlapping check for memory slots + - KVM: MMU: disable global page optimization + - KVM: MMU: Fix off-by-one calculating large page count + - mac80211: fix basic rate bitmap calculation + - ALSA: us122l: add snd_us122l_free() + - thinkpad-acpi: fix LED blinking through timer trigger + - b43: Refresh RX poison on buffer recycling + - b43: Poison RX buffers + - mac80211: Fix bug in getting rx status for frames pending in reorder + buffer + - forcedeth: Fix resume from hibernation regression. + * Ignore ABI change. + + [ Jurij Smakov ] + * [sparc] Fix build + + -- Bastian Blank Sun, 17 May 2009 12:45:13 +0200 + +linux-2.6 (2.6.29-4) unstable; urgency=low + + [ maximilian attems ] + * drm/i915: allow tiled front buffers on 965+. + + [ Martin Michlmayr ] + * Extend erase timeout in M25P80 SPI Flash driver (Peter Horton). + * Add driver for GMT G760A fan speed PWM controller chip. + * [arm/orion5x] Enable SENSORS_G760A. + * Add patches from git.marvell.com: + - allow for alternative __copy_to_user/__clear_user implementations + - alternative copy_to_user/clear_user implementation copy_user + * [arm/orion5x, armel/kirkwood] Enable UACCESS_WITH_MEMCPY. + * [MMC] give Sandisk/Kingston SDHC cards some slack before the SWITCH + command. + + [ dann frazier ] + * [parisc] Fix macro expansion in atomic.h fixing PHONET compilation issue + * [parisc] reenable PHONET + * Btrfs: fix __ucmpdi2 compile bug on 32 bit builds + + [ Stephen R. Marenka ] + * [m68k] Add 2.6.29 patches. + * [m68k] Enable RTC for aranym (2.6.29 solution). + + [ Bastian Blank ] + * Add stable release 2.6.29.2: + - Bonding: fix zero address hole bug in arp_ip_target list + - skge: fix occasional BUG during MTU change + - scsi: mpt: suppress debugobjects warning + - hugetlbfs: return negative error code for bad mount option + - NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargs + - gso: Fix support for linear packets + - agp: zero pages before sending to userspace + - virtio: fix suspend when using virtio_balloon + - Revert "console ASCII glyph 1:1 mapping" + - Input: gameport - fix attach driver code + - x86, PAT: Remove page granularity tracking for vm_insert_pfn maps + - KVM: is_long_mode() should check for EFER.LMA + - KVM: VMX: Update necessary state when guest enters long mode + - KVM: fix kvm_vm_ioctl_deassign_device + - KVM: MMU: handle compound pages in kvm_is_mmio_pfn + - KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked + - KVM: Interrupt mask notifiers for ioapic + - KVM: Add CONFIG_HAVE_KVM_IRQCHIP + - KVM: Fix missing smp tlb flush in invlpg + - USB: usb-storage: augment unusual_devs entry for Simple Tech/Datafab + - USB: fix oops in cdc-wdm in case of malformed descriptors + - USB: ftdi_sio: add vendor/project id for JETI specbos 1201 spectrometer + - usb gadget: fix ethernet link reports to ethtool + - x86: disable X86_PTRACE_BTS for now + - SCSI: sg: fix q->queue_lock on scsi_error_handler path + - SCSI: sg: avoid blk_put_request/blk_rq_unmap_user in interrupt + - SCSI: sg: fix races with ioctl(SG_IO) + - SCSI: sg: fix races during device removal + - mm: pass correct mm when growing stack + - pata_hpt37x: fix HPT370 DMA timeouts + - hpt366: fix HPT370 DMA timeouts + - powerpc: Fix data-corrupting bug in __futex_atomic_op + - ALSA: hda - Fix the cmd cache keys for amp verbs + - sfc: Match calls to netif_napi_add() and netif_napi_del() + - tty: Fix leak in ti-usb + - spi: spi_write_then_read() bugfixes + - add some long-missing capabilities to fs_mask + - hrtimer: fix rq->lock inversion (again) + - x86: fix broken irq migration logic while cleaning up multiple vectors + - sched: do not count frozen tasks toward load + - dm kcopyd: fix callback race + - dm kcopyd: prepare for callback race fix + - posix-timers: fix RLIMIT_CPU && setitimer(CPUCLOCK_PROF) + - posix-timers: fix RLIMIT_CPU && fork() + - posixtimers, sched: Fix posix clock monotonicity + - cap_prctl: don't set error to 0 at 'no_change' + - SCSI: libiscsi: fix iscsi pool error path + - SCSI: libiscsi: fix iscsi pool error path + - sparc64: Fix bug in ("sparc64: Flush TLB before releasing pages.") + - ALSA: hda - add missing comma in ad1884_slave_vols + - splice: fix deadlock in splicing to file + - netfilter: {ip, ip6, arp}_tables: fix incorrect loop detection + - kprobes: Fix locking imbalance in kretprobes + - acer-wmi: Blacklist Acer Aspire One + - crypto: shash - Fix unaligned calculation with short length + - net/netrom: Fix socket locking + - af_rose/x25: Sanity check the maximum user frame size + - dm table: fix upgrade mode race + - dm: path selector use module refcount directly + - dm target: use module refcount directly + - dm snapshot: avoid having two exceptions for the same chunk + - dm snapshot: avoid dropping lock in __find_pending_exception + - dm snapshot: refactor __find_pending_exception + - dm io: make sync_io uninterruptible + - dm raid1: switch read_record from kmalloc to slab to save memory + - vfs: skip I_CLEAR state inodes + - dm: preserve bi_io_vec when resubmitting bios + - ixgbe: Fix potential memory leak/driver panic issue while setting up Tx & + Rx ring parameters + - mm: do_xip_mapping_read: fix length calculation + - mm: define a UNIQUE value for AS_UNEVICTABLE flag + - sysctl: fix suid_dumpable and lease-break-time sysctls + - cpumask: fix slab corruption caused by alloc_cpumask_var_node() + - ide-atapi: start DMA after issuing a packet command + - ide: drivers/ide/ide-atapi.c needs + - V4L/DVB (10943): cx88: Prevent general protection fault on rmmod + - r8169: Reset IntrStatus after chip reset + - md/raid1 - don't assume newly allocated bvecs are initialised. + - SCSI: sg: fix iovec bugs introduced by the block layer conversion + - drm/i915: fix TV mode setting in property change + - drm/i915: only set TV mode when any property changed + - drm: Use pgprot_writecombine in GEM GTT mapping to get the right bits for + !PAT. + - drm/i915: check for -EINVAL from vm_insert_pfn + - drm/i915: Check for dev->primary->master before dereference. + - drm/i915: Sync crt hotplug detection with intel video driver + - drm/i915: Read the right SDVO register when detecting SVDO/HDMI. + - drm/i915: Change DCC tiling detection case to cover only mobile parts. + - dock: fix dereference after kfree() + - ACPI: cap off P-state transition latency from buggy BIOSes + - x86, setup: mark %esi as clobbered in E820 BIOS call + - tracing/core: fix early free of cpumasks + - rt2x00: Fix SLAB corruption during rmmod + - ext4: fix locking typo in mballoc which could cause soft lockup hangs + - ext4: fix typo which causes a memory leak on error path + - MIPS: Compat: Zero upper 32-bit of offset_high and offset_low. + - PCI/x86: detect host bridge config space size w/o using quirks + - ide: Fix code dealing with sleeping devices in do_ide_request() + - fbdev: fix info->lock deadlock in fbcon_event_notify() + - fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency + - security/smack: fix oops when setting a size 0 SMACK64 xattr + * Bump ABI to 2. + * [sparc] Make the kernels again 64bit. (closes: #525926) + + -- Bastian Blank Sun, 03 May 2009 09:38:42 +0200 + +linux-2.6 (2.6.29-3) unstable; urgency=low + + [ maximilian attems ] + * [powerpc] Pipe mkimage postinst call to stderr for debconf. + Thanks Jordi Mallach for the patch. (closes: #518231) + * [parisc] Disable PHONET. + * [sparc] Disable BTRFS. + + [ Bastian Blank ] + * [alpha] Fix location of kernel image. + * Add source link to headers packages. (closes: #523726) + + [ Martin Michlmayr ] + * Add some sata_mv fixes for Kirkwood from Marvell: + - use new sata phy register settings for new devices + - increate the IORDY timeout for the soc controllers + + -- maximilian attems Fri, 17 Apr 2009 10:36:03 +0200 + +linux-2.6 (2.6.29-2) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm/ixp4xx] Build in LEDS_TRIGGER_TIMER (closes: #521141). + * [mips*/4kc-malta, mips*/5kc-malta] Build in RTC_DRV_CMOS. + + [ maximilian attems ] + * linux-libc-dev: Bump versioned replaces libdrm-dev. + * parisc: hardcode gcc-4.3 usage. + * Postrm cleanup new module-init-tools 3.7 files. + + [ Bastian Blank ] + * Install all needed Makefiles into common headers package. + (closes: #521472) + * Add stable release 2.6.29.1: + - V4L: v4l2-common: remove incorrect MODULE test + - sparc64: Fix reset hangs on Niagara systems. + - sparc64: Flush TLB before releasing pages. + - sparc64: Fix MM refcount check in smp_flush_tlb_pending(). + - KVM: MMU: Fix another largepage memory leak + - cfg80211: fix incorrect assumption on last_request for 11d + - lguest: fix spurious BUG_ON() on invalid guest stack. + - lguest: wire up pte_update/pte_update_defer + - VM, x86, PAT: Change is_linear_pfn_mapping to not use vm_pgoff + - x86: mtrr: don't modify RdDram/WrDram bits of fixed MTRRs + - x86: ptrace, bts: fix an unreachable statement + - x86: fix 64k corruption-check + - x86, uv: fix cpumask iterator in uv_bau_init() + - x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot + - Add a missing unlock_kernel() in raw_open() + - fuse: fix fuse_file_lseek returning with lock held + - ARM: 5435/1: fix compile warning in sanity_check_meminfo() + - ARM: twl4030 - leak fix + - ARM: fix leak in iop13xx/pci + - ARM: cumana: Fix a long standing bogon + - ARM: 5428/1: Module relocation update for R_ARM_V4BX + - ARM: pxa: fix overlay being un-necessarily initialized on pxa25x + - DVB: firedtv: FireDTV S2 problems with tuning solved + - cfg80211: force last_request to be set for OLD_REG if regdom is EU + - CIFS: Fix memory overwrite when saving nativeFileSystem field during mount + - ath5k: warn and correct rate for unknown hw rate indexes + - ath5k: disable MIB interrupts + - b43: fix b43_plcp_get_bitrate_idx_ofdm return type + - ath9k: fix dma mapping leak of rx buffer upon rmmod + - ath5k: use spin_lock_irqsave for beacon lock + - cifs: fix buffer format byte on NT Rename/hardlink + - ath9k: downgrade xmit queue full message to xmit debug + - KVM: SVM: set accessed bit for VMCB segment selectors + - KVM: VMX: Don't allow uninhibited access to EFER on i386 + - USB: add quirk to avoid config and interface strings + - USB: gadget: fix rndis regression + - USB: usb-storage: increase max_sectors for tape drives + - USB: fix USB_STORAGE_CYPRESS_ATACB + - USB: EHCI: add software retry for transaction errors + - xfrm: spin_lock() should be spin_unlock() in xfrm_state.c + - ipv6: Plug sk_buff leak in ipv6_rcv (net/ipv6/ip6_input.c) + - GRO: Disable GRO on legacy netif_rx path (closes: #521691) + - bridge: bad error handling when adding invalid ether address + - dnet: drivers/net/dnet.c needs + - udp: Wrong locking code in udp seq_file infrastructure + - netfilter: nf_conntrack_tcp: fix unaligned memory access in tcp_sack + + [ dann frazier ] + * bnx2: correct firmware revisions (closes: #522049) + * [mips] Zero upper 32-bits of compat llseek (closes: #521016) + + -- Bastian Blank Sat, 04 Apr 2009 15:13:33 +0200 + +linux-kbuild-2.6 (2.6.29-1) unstable; urgency=low + + * New upstream version. + * Autogenerate list of supported options in modpost. (closes: #518961) + - Build-depend against python. + * Use debhelper compat level 7. + + -- Bastian Blank Thu, 26 Mar 2009 12:54:47 +0100 + +linux-2.6 (2.6.29-1) unstable; urgency=low + + * New upstream release + - tg3 use request_firmware and firmware nuked. + - acenic use request_firmware and firmware nuked. + - e100 use request_firmware and firmware nuked. (closes: #494308) + - cassini use request_firmware and firmware nuked. + - starfire use request_firmware and firmware nuked. (closes: #501152) + - cxgb3 use request_firmware and firmware nuked. + - NR_CPUS setting no longer affects size of modules. (closes: #516709) + - orinoco: use KERN_DEBUG for link status messages. (closes: #447549) + - [CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do + not specify their OS. (closes: #463402) + - fixes conflict between and on mips + (closes: #519761) + + [ maximilian attems ] + * topconfig set new NET_NS, NET_SCH_DRR, NET_CLS_CGROUP, LIB80211, + SCSI_CXGB3_ISCSI, NATIONAL_PHY, STE10XP, LSI_ET1011C_PHY, BTRFS_FS, + SQUASHFS, PCI_STUB, WIMAX, MTD_LPDDR, EEPROM_AT24, EEPROM_AT25, + EEPROM_LEGACY, BLK_DEV_IT8172, SMSC9420, WIMAX_I2400M_USB, + WIMAX_I2400M_SDIO, MISDN_HFCUSB, SENSORS_ADT7475, SENSORS_LTC4245, + RADIO_TEA5764, SND_HDA_CODEC_INTELHDMI, RT2860, RT2870, RTL8187SE, + LIBFC, FCOE, ATL1C, JOYSTICK_WALKERA0701, TOUCHSCREEN_WACOM_W8001, + TOUCHSCREEN_TSC2007, W1_SLAVE_DS2431, WM8350_POWER, SOC_CAMERA_MT9T031, + SOC_CAMERA_TW9910, SOC_CAMERA_OV772X, USB_STV06XX, USB_GSPCA_OV534, + DVB_LGDT3304, WM8350_WATCHDOG, SMSC_SCH311X_WDT, SND_HRTIMER, + SND_HDA_RECONFIG, GREENASIA_FF, USB_SERIAL_SIEMENS_MPI, + USB_SERIAL_OPTICON, LEDS_ALIX2, LEDS_WM8350, OCFS2_FS_POSIX_ACL, + BTRFS_FS_POSIX_ACL, ATM_SOLOS, MFD_PCF50633, PCF50633_ADC, PCF50633_GPIO, + REGULATOR_PCF50633, DVB_S921, EDAC_I5400, RTC_DRV_PCF50633, + INPUT_PCF50633_PMU, CHARGER_PCF50633, DEVPTS_MULTIPLE_INSTANCES, + SCHED_OMIT_FRAME_POINTER, DCB, IXGBE_DCB, SFC_MTD, BE2NET, DNET. + * topconfig enable SND_HDA_HWDEP for sound debugging purpose. + * topconfig enable USB_HIDDEV (closes: #517771) + * [x86] set DELL_LAPTOP, COMEDI, X86_PTRACE_BTS, XENFS, XEN_COMPAT_XENFS, + X86_REROUTE_FOR_BROKEN_BOOT_IRQS, OPTIMIZE_INLINING. + * [x86] unset DRM_I915_KMS due to upgrade path from Lenny override with + modeset module param. + * temp.image.plain/preinst: Consistent output. + * [x86_64] set SPARSE_IRQ, NUMA_MIGRATE_IRQ_DESC, TREE_RCU. + * [x86_32] set BLK_DEV_CS5536. + * [powerpc] set PHANTOM, HP_ILO, MV643XX_ETH, MOUSE_BCM5974, VIRTUALIZATION. + * topconfig unset legacy SCSI_PROC_FS, PCMCIA_IOCTL, ACPI_PROCFS_POWER, + ACPI_PROC_EVENT. + + [ Bastian Blank ] + * Use external source directory for all builds. + * Use external source directory for all header packages. + * Use dh_prep. + * Update copyright file. + * [s390/s390] Disable BTRFS. + * [sparc] Use sparc as kernel architecture. + * Update kconfig report changes patch. + * [s390] Enable KVM. + * Use debhelper compat level 7. + + [ Martin Michlmayr ] + * [mips/r4k-ip22] Build in RTC_DRV_DS1286. + * [mips/r5k-ip32] Build in RTC_DRV_CMOS (Closes: #516775). + * [arm/versatile, arm/iop32x, arm/ixp4xx] Make LLC2 modular. + * [arm, mips, mipsel] Make MII modular. + * [arm/ixp4xx] Make IXP4XX_WATCHDOG modular. + * topconfig: Disable NET_DSA since this hardware is special purpose and + the option cannot be made modular at the moment and bloats the kernel + image too much. + * [arm, armel] Enable various V4L USB devices. (Closes: #518582) + * [arm/orion5x] Build the SENSORS_LM75 module since it's needed on the + D-Link DNS-323. + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_TOUCHSCREEN. + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable INPUT_JOYDEV, GAMEPORT + and INPUT_JOYSTICK (Closes: #520433). + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Add a size check to ensure that + the kernel will fit in flash. + * Add patches from git.marvell.com to improve Kirkwood support: + - make gpio /input/output validation separate + - MPP initialization code + - SDIO driver for Marvell SoCs + - SDIO driver registration for DB6281 and RD6281 + - register internal devices in a common place + - Marvell SheevaPlug support + - SheevaPlug USB Power Enable setup + - SheevaPlug LED support + - Hook up I2C on Kirkwood + - Add support for QNAP TS-119/TS-219 Turbo NAS + * [armel/kirkwood] Add an image for Marvell's Kirkwood platform. + + [ Ben Hutchings ] + * Remove firmware from drivers and make them use request_firmware(): + - mga (closes: #502666) + - qla1280 (closes: #502667) + - r128 (closes: #494007) + - radeon (closes: #494009) + - tehuti (closes: #501153) + - typhoon (closes: #502669) + + -- Bastian Blank Tue, 24 Mar 2009 14:32:11 +0100 + +linux-kbuild-2.6 (2.6.28-1) unstable; urgency=low + + * New upstream version. + + -- Bastian Blank Sun, 22 Feb 2009 13:45:39 +0100 + +linux-2.6 (2.6.28-1) unstable; urgency=low + + * New upstream release + - new btusb. (closes: #505184) + - iwlagn driver for Intel Wifi Link 5100 and 5300. (closes: #501157) + - drm git branch vblank-rework merged. (closes: #456219) + - netfilter.h got in.h include. (closes: #487103) + - netlink errno propageted. (closes: #489340) + - agp g41 support (closes: #513228) + - Includes atl2 driver (Closes: #500065) + - Fixes loading of video module on Samsung systems + (Closes: #475319, #495697) + - Fix rf_kill handling of iwl3945 driver (Closes: #503688) + - Fix adjtimex frequency offset (Closes: #432877) + - Fix oopses with Canon PIXMA MP150 (Closes: #487725) + - Fix excessive interrrupts with compiz (Closes: #456219) + - dsp56k: use request_firmware and firmware nuked (closes: #494010) + - dabusb: use request_firmware and firmware nuked (closes: #502663) + - kaweth: use request_firmware and firmware nuked (closes: #502665) + + [ maximilian attems ] + * Reenable new Juju firewire stack. + * topconfig set ATH9K, IWL5000, IP_NF_SECURITY, IP6_NF_SECURITY, + BRIDGE_EBT_IP6, BT_HCIBTUSB, TOUCHSCREEN_INEXIO, TOUCHSCREEN_TOUCHIT213, + VIRTIO_CONSOLE, VIDEO_ZORAN_ZR36060, USB_VIDEO_CLASS_INPUT_EVDEV, + USB_GSPCA, USB_S2255, OCFS2_FS_STATS, OMFS_FS, CRYPTO_RMD128, + CRYPTO_RMD160, CRYPTO_RMD256, CRYPTO_RMD320, VLAN_8021Q_GVRP, HP_WMI, + COMPAL_LAPTOP, SCSI_DH, SCSI_DH_RDAC, SCSI_DH_HP_SW, SCSI_DH_EMC, + SCSI_DH_ALUA, MAC80211_HWSIM, USB_HSO, BLK_DEV_INTEGRITY, SGI_XP, SGI_GRU, + TLAN, ATM_IA, ATM_FORE200E, MISDN, I2C_HELPER_AUTO, I2C_ISCH, + I2C_NFORCE2_S4985, AT24, SENSORS_AD7414, SENSORS_ADCXX, + SOC_CAMERA_PLATFORM, VIDEO_SH_MOBILE_CEU, DVB_USB_DW2102, DVB_USB_ANYSEE, + DVB_SIANO_SMS1XXX, DVB_DRX397XD, MMC_SDHCI_PCI (closes: #507150), + MMC_SDRICOH_CS (closes: #509979), EDAC_I5100, RTC_DRV_M41T94, + RTC_DRV_DS1305, UBIFS, EXT4 (closes: #512266), CGROUP_FREEZER, + NETFILTER_TPROXY, NETFILTER_XT_TARGET_TPROXY, NETFILTER_XT_MATCH_RECENT, + NETFILTER_XT_MATCH_SOCKET, NET_ACT_SKBEDIT, PHONET, NET_9P_RDMA, ATL2, JME, + ENIC, MLX4_EN, USB_NET_SMSC95XX, I7300_IDLE, NET_SCH_MULTIQ, ICS932S401, + PANASONIC_LAPTOP, QLGE, LIBERTAS_THINFIRM, LIBERTAS_THINFIRM_USB, + INPUT_CM109, W1_SLAVE_BQ27000, SENSORS_ADT7462, SENSORS_MAX1111, + SENSORS_LIS3LV02D, MFD_WM8400, MFD_WM8350_I2C, SOC_CAMERA_MT9M111, + USB_M5602, USB_GSPCA_CONEX, USB_GSPCA_ETOMS, USB_GSPCA_FINEPIX, + USB_GSPCA_MARS, USB_GSPCA_OV519, USB_GSPCA_PAC207, USB_GSPCA_PAC7311, + USB_GSPCA_SONIXB, USB_GSPCA_SONIXJ, USB_GSPCA_SPCA500, USB_GSPCA_SPCA501, + USB_GSPCA_SPCA505, USB_GSPCA_SPCA506, USB_GSPCA_SPCA508, USB_GSPCA_SPCA561, + USB_GSPCA_STK014, USB_GSPCA_SUNPLUS, USB_GSPCA_T613, USB_GSPCA_TV8532, + USB_GSPCA_VC032X, USB_GSPCA_ZC3XX, C2PORT, C2PORT_DURAMAR_2150, + W83697UG_WDT, USB_MR800, DVB_USB_CINERGY_T2, DVB_USB_DTV5100, + DVB_USB_AF9015, DVB_DM1105, DVB_LGS8GL5, DVB_DUMMY_FE, + SND_HDA_CODEC_NVHDMI, SND_USB_US122L, USB_VST, LEDS_PCA9532, LEDS_HP_DISK, + LEDS_PCA955X, LEDS_TRIGGER_BACKLIGHT, EDAC_X38, RTC_DRV_RX8581, + RTC_DRV_DS1390, RTC_DRV_DS3234, RTC_DRV_DS1286, RTC_DRV_M48T35, + RTC_DRV_BQ4802, RTC_DRV_WM8350, UNEVICTABLE_LRU, MAC80211_RC_MINSTREL, + BATTERY_BQ27x00, REGULATOR, REGULATOR_BQ24022, REGULATOR_WM8350, + REGULATOR_WM8400, FB_VIA, FB_METRONOME, FB_MB862XX, UIO_SERCOS3, + CORE_DUMP_DEFAULT_ELF_HEADERS, NET_DSA, NET_DSA_MV88E6060, + NET_DSA_MV88E6131, NET_DSA_MV88E6123_61_65, IT87_WDT, + BACKLIGHT_MBP_NVIDIA, SND_HDA_INPUT_BEEP, USB_WUSB, USB_TMC, IDE_GD, + IDE_GD_ATA, IDE_GD_ATAPI, PCMCIA_IBMTR, USB_EMI62, USB_EMI26, USB_SEVSEG, + UWB, UWB_WLP, UWB_I1480U, UWB_I1480U_WLP, CRYPTO_FIPS, ANSI_CPRNG, + CRC_T10DIF, STAGING, ET131X, CRYPTO_ANSI_CPRNG, PRISM2_USB, HID_COMPAT, + SYSCTL_SYSCALL_CHECK, BOOT_TRACER. + * [x86] set MOUSE_BCM5974, X86_RESERVE_LOW_64K, OPROFILE_IBS, + MICROCODE_INTEL, MICROCODE_AMD, X86_VERBOSE_BOOTUP, MTRR_SANITIZER, + CRYPTO_CRC32C_INTEL, STRICT_DEVMEM. + * [x86_64] set AMD_IOMMU, INTR_REMAP. + * [x86_32] set TOUCHSCREEN_HTCPEN, MOUSE_PS2_OLPC. + * Add stable releases 2.6.28.1-6. + * Turn off SYSFS_DEPRECATED* for newer udev and proper /sys/. + * linux-libc-dev: Add versioned replaces libdrm-dev. (closes: #513604) + * topconfig: Enable MACVLAN. (closes: #504611) + * [ppc] BAYCOM_PAR, BAYCOM_EPP. + * [x86_64] set NR_CPUS to 512. (closes: #491309) + * [686-bigmem] set modular XEN_FBDEV_FRONTEND. + * Newer Standards-Version 3.8.0 without changes. + * Use update-initramfs for initramfs-tools. + * Fix preinst and postinst call to not use deprecated mkinitramfs-kpkg + interfaces. + + [ Martin Michlmayr ] + * [mips/r4k-ip22, mips/sb1-bcm91250a] Don't build in ISO9660. + * [mipsel/r5k-cobalt] Enable INPUT_COBALT_BTNS. + * [mipsel/r5k-cobalt] Enable the new Cobalt LCD driver (FB_COBALT). + * [mips/r4k-ip22] Enable the new ALSA sound driver (SND_SGI_HAL2). + * [arm/iop32x, arm/ixp4xx] Don't build in KEYBOARD_ATKBD, MOUSE_PS2, + SERIO, JFFS2_FS, and CRAMFS. + * [arm/iop32x, arm/ixp4xx] Unset DEBUG_KERNEL so the kernel will + fit in flash. + * [arm/orion5x] Unset FIXED_PHY to work around a clash with fixed + mdio bus and mv643xx_eth. + * Migrate arm, armel, mips and mipsel away from kernel-package. + + [ Ian Campbell ] + * [x86]: Enable Xen guest support in amd64 flavour. (closes: #495590) + + [ dann frazier ] + * [x86, ia64] Enable ACPI_PCI_SLOT + + [ Bastian Blank ] + * Make gcc-4.3 the default compiler. (closes: #463295) + * Add optional image size check. + * debian/rules.real: Setup image installation rules for alpha, hppa, + ia64 and sparc. + * Remove support to build images using kernel-package. + + -- maximilian attems Wed, 18 Feb 2009 16:36:04 +0100 + +linux-2.6 (2.6.26-12) unstable; urgency=high + + [ Ian Campbell ] + * xen: fix ACPI processor throttling for when processor id is -1. (closes: #502849) + + [ dann frazier ] + * Make sendmsg() block during UNIX garbage collection (CVE-2008-5300) + * Fix race conditions between inotify removal and umount (CVE-2008-5182) + * Fix DoS when calling svc_listen twice on the same socket while reading + /proc/net/atm/*vc (CVE-2008-5079) + + [ Bastian Blank ] + * [openvz, vserver] Fix descriptions. + * [sparc] Enable Sun Logical Domains support. (closes: #501684) + * Fix coexistence of pata_marvell and ahci. (closes: #507432) + * [sparc] Support Intergraph graphics chips. (closes: #508108) + + -- Bastian Blank Mon, 15 Dec 2008 12:57:18 +0100 + +linux-2.6 (2.6.26-11) unstable; urgency=low + + [ Bastian Blank ] + * [sparc] Reintroduce dummy PCI host controller to workaround broken X.org. + * [sparc] Fix size checks in PCI maps. + * Add stable release 2.6.26.8: + - netfilter: restore lost ifdef guarding defrag exception + - netfilter: snmp nat leaks memory in case of failure + - netfilter: xt_iprange: fix range inversion match + - ACPI: dock: avoid check _STA method + - ACPI: video: fix brightness allocation + - sparc64: Fix race in arch/sparc64/kernel/trampoline.S + - math-emu: Fix signalling of underflow and inexact while packing result. + - tcpv6: fix option space offsets with md5 + - net: Fix netdev_run_todo dead-lock + - scx200_i2c: Add missing class parameter + - DVB: s5h1411: Power down s5h1411 when not in use + - DVB: s5h1411: Perform s5h1411 soft reset after tuning + - DVB: s5h1411: bugfix: Setting serial or parallel mode could destroy bits + - V4L: pvrusb2: Keep MPEG PTSs from drifting away + - ACPI: Always report a sync event after a lid state change + - ALSA: use correct lock in snd_ctl_dev_disconnect() + - file caps: always start with clear bprm->caps_* + - libertas: fix buffer overrun + - net: Fix recursive descent in __scm_destroy(). + - SCSI: qla2xxx: Skip FDMI registration on ISP21xx/22xx parts. + (Closes: #502552) + - edac cell: fix incorrect edac_mode + - ext[234]: Avoid printk floods in the face of directory corruption + (CVE-2008-3528) + - gpiolib: fix oops in gpio_get_value_cansleep() + * Override ABI changes. + * [xen] Update description. (closes: #505961) + * Revert parts of 2.6.26.6 to fix resume breakage. (closes: #504167) + - clockevents: prevent multiple init/shutdown + - clockevents: broadcast fixup possible waiters + + [ dann frazier ] + * Fix buffer overflow in hfsplus (CVE-2008-4933) + * Fix BUG() in hfsplus (CVE-2008-4934) + * Fix stack corruption in hfs (CVE-2008-5025) + * Fix oops in tvaudio when controlling bass/treble (CVE-2008-5033) + + [ Martin Michlmayr ] + * [arm/iop32x, arm/ixp4xx, arm/orion5x] Enable support for more partition + tables, including MAC_PARTITION (requested by Benoît Knecht). + * leds-pca9532: Fix memory leak and properly handle errors (Sven Wegener) + * leds-pca9532: Move i2c work to a workqueque (Riku Voipio). (closes: + #506116) + + -- Bastian Blank Wed, 26 Nov 2008 11:43:48 +0100 + +linux-2.6 (2.6.26-10) unstable; urgency=low + + [ dann frazier ] + * sctp: Fix possible kernel panic in sctp_sf_abort_violation (CVE-2008-4618) + + [ Martin Michlmayr ] + * DNS-323: add support for revision B1 machines (Matthew Palmer). + * ext3/ext4: Add support for non-native signed/unsigned htree hash + algorithms (Theodore Ts'o). (closes: #493957) + * [arm/ixp4xx] Enable USB_ACM (closes: #504723). + + [ Bastian Blank ] + * agp: Fix stolen memory counting on Intel G4X. (closes: #502606) + * Add stable release 2.6.26.7: + - security: avoid calling a NULL function pointer in drivers/video/tvaudio.c + - DVB: au0828: add support for another USB id for Hauppauge HVR950Q + - drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + - ACPI: Ignore _BQC object when registering backlight device + - hwmon: (it87) Prevent power-off on Shuttle SN68PT + - Check mapped ranges on sysfs resource files + - x86: avoid dereferencing beyond stack + THREAD_SIZE + - PCI: disable ASPM on pre-1.1 PCIe devices + - PCI: disable ASPM per ACPI FADT setting + - V4L/DVB (9053): fix buffer overflow in uvc-video + - V4L/DVB (8617): uvcvideo: don't use stack-based buffers for USB transfers. + - V4L/DVB (8498): uvcvideo: Return sensible min and max values when querying + a boolean control. + - V4L: zr36067: Fix RGBR pixel format + - V4L: bttv: Prevent NULL pointer dereference in radio_open + - libata: fix EH action overwriting in ata_eh_reset() + - libata: always do follow-up SRST if hardreset returned -EAGAIN + - fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles + - modules: fix module "notes" kobject leak + - b43legacy: Fix failure in rate-adjustment mechanism + - CIFS: make sure we have the right resume info before calling CIFSFindNext + - sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq + - tty: Termios locking - sort out real_tty confusions and lock reads + - x86, early_ioremap: fix fencepost error + - x86: improve UP kernel when CPU-hotplug and SMP is enabled + - x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + * [xen] Remove pte file workaround. + + [ Ian Campbell ] + * [xen] Disable usage of PAT. (closes: #503821) + + -- Bastian Blank Sat, 08 Nov 2008 10:50:58 +0100 + +linux-2.6 (2.6.26-9) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.26.6: + - mm owner: fix race between swapoff and exit + - rtc: fix kernel panic on second use of SIGIO nofitication + - fbcon: fix monochrome color value calculation + - ALSA: snd-powermac: HP detection for 1st iMac G3 SL + - ALSA: snd-powermac: mixers for PowerMac G4 AGP + - sparc64: Fix missing devices due to PCI bridge test in + of_create_pci_dev(). + - sparc64: Fix disappearing PCI devices on e3500. + - sparc64: Fix OOPS in psycho_pcierr_intr_other(). + - sparc64: Fix interrupt register calculations on Psycho and Sabre. + - sparc64: Fix PCI error interrupt registry on PSYCHO. + - udp: Fix rcv socket locking + - sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + (CVE-2008-4576) + - sctp: do not enable peer features if we can't do them. + - ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space + - netlink: fix overrun in attribute iteration + - niu: panic on reset + - ipv6: Fix OOPS in ip6_dst_lookup_tail(). + - XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep + - af_key: Free dumping state on socket close + - pcmcia: Fix broken abuse of dev->driver_data + - clockevents: remove WARN_ON which was used to gather information + - ntp: fix calculation of the next jiffie to trigger RTC sync + - x86: HPET: read back compare register before reading counter + - x86: HPET fix moronic 32/64bit thinko + - clockevents: broadcast fixup possible waiters + - HPET: make minimum reprogramming delta useful + - clockevents: prevent endless loop lockup + - clockevents: prevent multiple init/shutdown + - clockevents: enforce reprogram in oneshot setup + - clockevents: prevent endless loop in periodic broadcast handler + - clockevents: prevent clockevent event_handler ending up handler_noop + - x86: fix memmap=exactmap boot argument + - x86: add io delay quirk for Presario F700 + - ACPI: Avoid bogus EC timeout when EC is in Polling mode + - x86: fix SMP alternatives: use mutex instead of spinlock, text_poke is + sleepable + - rtc: fix deadlock + - mm: dirty page tracking race fix + - x86-64: fix overlap of modules and fixmap areas + - x86: PAT proper tracking of set_memory_uc and friends + - x86: fix oprofile + hibernation badness + - x86: fdiv bug detection fix + - rt2x00: Use ieee80211_hw->workqueue again + - x86: Fix 27-rc crash on vsmp due to paravirt during module load + - sg: disable interrupts inside sg_copy_buffer + - ocfs2: Increment the reference count of an already-active stack. + - APIC routing fix + - sched: fix process time monotonicity + - block: submit_bh() inadvertently discards barrier flag on a sync write + - x64, fpu: fix possible FPU leakage in error conditions + - x86-64: Clean up save/restore_i387() usage + - KVM: SVM: fix guest global tlb flushes with NPT + - KVM: SVM: fix random segfaults with NPT enabled + - ALSA: remove unneeded power_mutex lock in snd_pcm_drop + - ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() + - ALSA: oxygen: fix distorted output on AK4396-based cards + - ALSA: hda - Fix model for Dell Inspiron 1525 + - SCSI: qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes. + - USB: fix hcd interrupt disabling + - smb.h: do not include linux/time.h in userspace + - pxa2xx_spi: fix build breakage + - pxa2xx_spi: chipselect bugfixes + - pxa2xx_spi: dma bugfixes + - mm: mark the correct zone as full when scanning zonelists + - async_tx: fix the bug in async_tx_run_dependencies + - drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() + - ixgbe: initialize interrupt throttle rate + - i2c-dev: Return correct error code on class_create() failure + - x86-32: AMD c1e force timer broadcast late + * [x86] Update patch to detect not properly announced cmos RTC devices. + * [xen] Overtake hvc console by default. + + [ maximilian attems ] + * [openvz] ip: NULL pointer dereferrence in tcp_v(4|6)_send_ack + (closes: #500472) + * [openvz] unset NF_CONNTRACK_IPV6 for now until abi bump. + + [ Stephen R. Marenka ] + * [m68k] add patches to fix atari ethernec per Michael Schmitz: + atari-ethernec-IRQF_SHARED.diff and atari-ethernec-fixes.diff. + * [m68k] add mac-esp-fix-for-quadras-with-two-esp-chips.diff to fix macs + with dual scsi busses and a problem with xorg, per Finn Thain. + * [m68k] add atari-atari_keyb_init-operator-precedence.diff per + Michael Schmitz. + * [m68k] more mac patches, per Finn Thain. + + [ Martin Michlmayr ] + * [arm/ixp4xx] Enable USB_ATM and USB_SPEEDTOUCH (closes: #502182). + * [arm/iop32x, arm/orion5x] Likewise. + * DNS-323: read MAC address from flash (Matthew Palmer). + + [ dann frazier ] + * Restrict access to the DRM_I915_HWS_ADDR ioctl (CVE-2008-3831) + * Don't allow splicing to files opened with O_APPEND (CVE-2008-4554) + + -- Bastian Blank Sat, 18 Oct 2008 12:14:22 +0200 + +linux-2.6 (2.6.26-8) unstable; urgency=medium + + [ dann frazier ] + * [x86] Fix broken LDT access in VMI (CVE-2008-4410) + * ata: Fix off-by-one-error that causes errors when reading a + block on the LBA28-LBA48 boundary + * [s390] prevent ptrace padding area read/write in 31-bit mode + (CVE-2008-1514) + + [ Bastian Blank ] + * Fix generation of i386 Xen image information. + * [i386] Restrict the usage of long NOPs. (closes: #464962) + * Fix access to uninitialized user keyring. (closes: #500279) + * [x86] Fix detection of non-PNP RTC devices. (closes: #499230) + + -- Bastian Blank Thu, 09 Oct 2008 12:07:21 +0200 + +linux-2.6 (2.6.26-7) unstable; urgency=low + + [ Bastian Blank ] + * [xen] Add SuSE Xen patch. (closes: #495895) + * Only register notifiers in braille console if used, fixes Insert key. + (closes: #494374) + * Fix ACPI EC GPE storm detection. (closes: #494546) + * Disable useless support for ISP1760 USB host controller. + (closes: #498304) + * rt61pci: Add a sleep after firmware upload. (closes: #498828) + + [ Stephen R. Marenka ] + * [m68k] Set CONFIG_ATARI_ETHERNEC=m for atari, since it only works + in modular form. + * [m68k] Enable CONFIG_ADB_PMU68K=y for mac. + * [m68k] Add atari-aranym-nf-wrappers.diff patch to fix atari LBD + problems, set CONFIG_LBD=y for atari. + + [ Martin Michlmayr ] + * [arm/orion5x] Enable CONFIG_ATALK (requested by Ben Schwarz). + * [arm/versatile] Enable CONFIG_VFP. (closes: #499463) + * ath5k: Fix bad udelay calls on AR5210 code (Nick Kossifidis). + * [arm] No longer disable ATH5K. + + [ dann frazier ] + * Add missing capability checks in sbni_ioctl (CVE-2008-3525) + + -- Bastian Blank Wed, 01 Oct 2008 09:02:30 +0200 + +linux-2.6 (2.6.26-6) unstable; urgency=low + + [ maximilian attems ] + * [openvz] Enable checkpointing. (closes: #497292) + + [ Bastian Blank ] + * Allow forced module loading again. (closes: #494144) + * Set IEEE 802.11 (wireless) regulatory domain default to EU. + (closes: #497971) + * [i386] Enable IDE ACPI support. Override ABI changes. (closes: #470528) + * [i386/686-bigmem] Promote to generic subarch. (closes: #476120) + + [ Martin Michlmayr ] + * Fix dead 21041 ethernet after ifconfig down (Thomas Bogendoerfer). + + [ dann frazier ] + * [hppa] Enable the FPU before using it, fixes booting on A500s + with our CONFIG_PRINTK_TIME=y setting. (closes: #499458) + + -- Bastian Blank Wed, 24 Sep 2008 12:06:47 +0200 + +linux-2.6 (2.6.26-5) unstable; urgency=low + + [ Martin Michlmayr ] + * Backport power-off method for Kurobox Pro. + * [arm/versatile] Really enable CONFIG_RTC_DRV_PL031 (closes: #484432). + + [ Stephen R. Marenka ] + * [m68k] Set CONFIG_LBD=n for atari, since it conflicts with nfblock. + + [ Bastian Blank ] + * Reenable SiS SATA support. (closes: #496603) + * [amd64,i386] Disable new-style SiS PATA support. + * Add stable release 2.6.26.4: + - sata_mv: don't issue two DMA commands concurrently + - KVM: MMU: Fix torn shadow pte + - x86: work around MTRR mask setting, v2 + - nfsd: fix buffer overrun decoding NFSv4 acl (CVE-2008-3915) + - sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports + (CVE-2008-3911) + - r8169: balance pci_map / pci_unmap pair + - tg3: Fix firmware event timeouts + - crypto: authenc - Avoid using clobbered request pointer + - sparc64: Fix cmdline_memory_size handling bugs. + - sparc64: Fix overshoot in nid_range(). + - ipsec: Fix deadlock in xfrm_state management. (closes: #497796) + - sctp: fix random memory dereference with SCTP_HMAC_IDENT option. + - sctp: correct bounds check in sctp_setsockopt_auth_key + - sch_prio: Fix nla_parse_nested_compat() regression + - sctp: add verification checks to SCTP_AUTH_KEY option + - sctp: fix potential panics in the SCTP-AUTH API. + - udp: Drop socket lock for encapsulated packets + - pkt_sched: Fix actions referencing + - pkt_sched: Fix return value corruption in HTB and TBF. + - netns: Add network namespace argument to rt6_fill_node() and + ipv6_dev_get_saddr() + - ipv6: Fix OOPS, ip -f inet6 route get fec0::1, linux-2.6.26, + ip6_route_output, rt6_fill_node+0x175 (CVE-2008-3686) + - AX.25: Fix sysctl registration if !CONFIG_AX25_DAMA_SLAVE + - mm: make setup_zone_migrate_reserve() aware of overlapping nodes + - 8250: improve workaround for UARTs that don't re-assert THRE correctly + - rtc_time_to_tm: fix signed/unsigned arithmetic + - drivers/char/random.c: fix a race which can lead to a bogus BUG() + - cifs: fix O_APPEND on directio mounts + - atl1: disable TSO by default + - forcedeth: fix checksum flag + - bio: fix bio_copy_kern() handling of bio->bv_len + - bio: fix __bio_copy_iov() handling of bio->bv_len + - ALSA: oxygen: prevent muting of nonexistent AC97 controls + - S390 dasd: fix data size for PSF/PRSSD command + - x86: fix "kernel won't boot on a Cyrix MediaGXm (Geode)" + - x86: work around MTRR mask setting + - USB: cdc-acm: don't unlock acm->mutex on error path + - binfmt_misc: fix false -ENOEXEC when coupled with other binary handlers + - fbdefio: add set_page_dirty handler to deferred IO FB + - eeepc-laptop: fix use after free + - PCI: fix reference leak in pci_get_dev_by_id() + - cramfs: fix named-pipe handling + * Override ABI changes. + * [hppa] Disable new-style RTC support. Override ABI changes. + + [ maximilian attems ] + * openvz: Add upstream fixes up to 24cebf40278cb071ff8b. (closes: #497528) + + -- Bastian Blank Wed, 10 Sep 2008 12:55:16 +0200 + +linux-2.6 (2.6.26-4) unstable; urgency=low + + [ maximilian attems ] + * x86: Reset ACPI_PROCFS_POWER for Lenny as buggy apps depend on it. + (closes: #495541) + * x86: ACPI: Fix thermal shutdowns + * openvz: Add upstream fixes up to 0f14912e3d2251aff. (closes: #494384) + * Add stable release 2.6.26.3: + - USB: fix interface unregistration logic + - usb-storage: unusual_devs entries for iRiver T10 and Datafab CF+SM reader + - usb-serial: don't release unregistered minors + - usb-storage: revert DMA-alignment change for Wireless USB + - usb-storage: automatically recognize bad residues + - USB: ftdi_sio: Add USB Product Id for ELV HS485 + - qla2xxx: Set an rport's dev_loss_tmo value in a consistent manner. + - dccp: change L/R must have at least one byte in the dccpsf_val field + (CVE-2008-3276) + - KVM: Avoid instruction emulation when event delivery is pending + - cs5520: add enablebits checking + - acer-wmi: Fix wireless and bluetooth on early AMW0 v2 laptops + - USB: usb-storage: quirk around v1.11 firmware on Nikon D4 + - radeonfb: fix accel engine hangs + - radeon: misc corrections + - sparc64: Fix global reg snapshotting on self-cpu. + - sparc64: Do not clobber %g7 in setcontext() trap. + - sparc64: Fix end-of-stack checking in save_stack_trace(). + - sparc64: Fix recursion in stack overflow detection handling. + - sparc64: Make global reg dumping even more useful. + - sparc64: Implement IRQ stacks. + - sparc64: Handle stack trace attempts before irqstacks are setup. + - PCI: Limit VPD length for Broadcom 5708S + - ide: it821x in pass-through mode segfaults in 2.6.26-stable + - syncookies: Make sure ECN is disabled + - USB: ftdi_sio: add support for Luminance Stellaris Evaluation/Development + Kits + - i2c: Fix NULL pointer dereference in i2c_new_probed_device + - SCSI: hptiop: add more PCI device IDs + - SCSI: ses: fix VPD inquiry overrun + - SCSI: scsi_transport_spi: fix oops in revalidate + - CIFS: Fix compiler warning on 64-bit + - x86: fix spin_is_contended() + - matrox maven: fix a broken error path + - i2c: Let users select algorithm drivers manually again + - CIFS: properly account for new user= field in SPNEGO upcall string + allocation + - x86: fix setup code crashes on my old 486 box + - KVM: ia64: Fix irq disabling leak in error handling code + - mlock() fix return values + - rtl8187: Fix lockups due to concurrent access to config routine + - KVM: task switch: segment base is linear address + - KVM: task switch: use seg regs provided by subarch instead of reading + from GDT + - KVM: task switch: translate guest segment limit to virt-extension byte + granular field + - r8169: avoid thrashing PCI conf space above RTL_GIGA_MAC_VER_06 + - sparc64: FUTEX_OP_ANDN fix + - posix-timers: do_schedule_next_timer: fix the setting of ->si_overrun + - posix-timers: fix posix_timer_event() vs dequeue_signal() race + - vt8623fb: fix kernel oops + - ide-cd: fix endianity for the error message in cdrom_read_capacity + - qla2xxx: Add dev_loss_tmo_callbk/terminate_rport_io callback support. + - random32: seeding improvement + - CIFS: mount of IPC$ breaks with iget patch + - CIFS: if get root inode fails during mount, cleanup tree connection + - crypto: padlock - fix VIA PadLock instruction usage with + irq_ts_save/restore() + - ipvs: Fix possible deadlock in estimator code + - SCSI: block: Fix miscalculation of sg_io timeout in CDROM_SEND_PACKET + handler. + - ALSA: asoc: restrict sample rate and size in Freescale MPC8610 sound + drivers + - ALSA: ASoC: fix SNDCTL_DSP_SYNC support in Freescale 8610 sound drivers + - USB: pl2023: Remove USB id (4348:5523) handled by ch341 + - relay: fix "full buffer with exactly full last subbuffer" accounting + problem + - ipv6: Fix ip6_xmit to send fragments if ipfragok is true + - x86: amd opteron TOM2 mask val fix + + [ dann frazier ] + * [ia64] Fix boot-time hang w/ PRINTK_TIME by ensuring that cpu0 can access + per-cpu vars in early boot + * delay calls to sched_clock() until after sched_clock_init() to prevent + inaccurate printk timings on ia64 and presumably other architectures + + [ Ian Campbell ] + * [xen] import upstream fix to fb-defio driver used by Xen framebuffer. + + [ Bastian Blank ] + * [powerpc] Enable proper RTC support. (closes: #484693) + + [ Martin Michlmayr ] + * Add Marvell Orion fixes: + - sata_mv: add the Gen IIE flag to the SoC devices. + - sata_mv: don't avoid clearing interrupt status on SoC host adapters + + [ dann frazier ] + * Fix overflow condition in sctp_setsockopt_auth_key (CVE-2008-3526) + * Fix panics that may occur if SCTP AUTH is disabled (CVE-2008-3792) + * [x86] Fix memory leak in the copy_user routine + (CVE-2008-0598, closes: #490910) + + -- Bastian Blank Thu, 28 Aug 2008 08:46:42 +0200 + +linux-2.6 (2.6.26-3) unstable; urgency=low + + [ Bastian Blank ] + * Disable Emagic Audiowerk 2 soundcard support. The PCI IDs clashes with + many DVB cards. + * Update VServer patch to 2.3.0.35. + * [armel/versatile] Override ABI changes. + * [i386/686-bigmem] Add VServer image. + + [ Aurelien Jarno ] + * [armel/versatile] Disable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for + dynticks. (closes: #494842) + + [ Martin Michlmayr ] + * Fix PCIe on the Kurobox Pro (Lennert Buytenhek). + * Fix regressions caused by the "use software GSO for SG+CSUM capable + netdevices" patch: + - loopback: Enable TSO (Herbert Xu) + - net: Preserve netfilter attributes in skb_gso_segment using + __copy_skb_header (Herbert Xu) + + [ dann frazier ] + * [amd64] Fix typo in TOM2 mask value, preventing a hang on some opteron + systems. (closes: #494365) + + -- Bastian Blank Mon, 18 Aug 2008 15:34:38 +0200 + +linux-kbuild-2.6 (2.6.26-3) unstable; urgency=low + + * Fix recursive installation. (closes: #494435) + + -- Bastian Blank Sun, 10 Aug 2008 13:01:41 +0200 + +linux-kbuild-2.6 (2.6.26-2) unstable; urgency=low + + * Include new scripts. (closes: #494435) + + -- Bastian Blank Sat, 09 Aug 2008 20:45:12 +0200 + +linux-2.6 (2.6.26-2) unstable; urgency=low + + [ Bastian Blank ] + * [powerpc] Install arch/powerpc/lib/crtsavres.o into the headers, it is + used during module linking. + * Add stable release 2.6.26.1: + - Fix off-by-one error in iov_iter_advance() + - ath5k: don't enable MSI, we cannot handle it yet + - b43legacy: Release mutex in error handling code + - cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already + - VFS: increase pseudo-filesystem block size to PAGE_SIZE + - markers: fix markers read barrier for multiple probes + - tmpfs: fix kernel BUG in shmem_delete_inode + - mpc52xx_psc_spi: fix block transfer + - ixgbe: remove device ID for unsupported device + - UML - Fix boot crash + - eCryptfs: use page_alloc not kmalloc to get a page of memory + - x86: fix kernel_physical_mapping_init() for large x86 systems + - DVB: cx23885: SRAM changes for the 885 and 887 silicon parts + - DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues + - DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream + - DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default + - V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 + - V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type + - V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam + - V4L: uvcvideo: Make input device support optional + - V4L: uvcvideo: Don't free URB buffers on suspend + - V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume + - V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing + - DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 + - V4L: cx18: Upgrade to newer firmware & update documentation + - ALSA: trident - pause s/pdif output + - myri10ge: do not use mgp->max_intr_slots before loading the firmware + - myri10ge: do not forget to setup the single slice pointers + - iop-adma: fix platform driver hotplug/coldplug + - sparc64: Do not define BIO_VMERGE_BOUNDARY. + - sparc64: Fix cpufreq notifier registry. + - sparc64: Fix lockdep issues in LDC protocol layer. + - tcp: Clear probes_out more aggressively in tcp_ack(). + - ARM: fix fls() for 64-bit arguments + - vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section + - rtc-at91rm9200: avoid spurious irqs + - ide-cd: fix oops when using growisofs + - x86: fix crash due to missing debugctlmsr on AMD K6-3 + - cpusets: fix wrong domain attr updates + - proc: fix /proc/*/pagemap some more + - Fix build on COMPAT platforms when CONFIG_EPOLL is disabled + - markers: fix duplicate modpost entry + - x86, suspend, acpi: enter Big Real Mode + - USB: fix usb serial pm counter decrement for disconnected interfaces + - x86 reboot quirks: add Dell Precision WorkStation T5400 + - Fix typos from signal_32/64.h merge + - rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall + - Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error + - KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts + - KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction + - KVM: x86 emulator: Fix HLT instruction + - KVM: VMX: Add ept_sync_context in flush_tlb + - KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held + - KVM: SVM: fix suspend/resume support + - KVM: VMX: Fix a wrong usage of vmcs_config + - isofs: fix minor filesystem corruption + - quota: fix possible infinite loop in quota code + - hdlcdrv: Fix CRC calculation. + - ipv6: __KERNEL__ ifdef struct ipv6_devconf + - ipv6: use timer pending + - udplite: Protection against coverage value wrap-around + - pxamci: trivial fix of DMA alignment register bit clearing + * [sparc] Install asm-sparc headers again. + * Force RTC on by default and set clock on startup. Override ABI changes. + * [i386, amd64] Make the CMOS RTC support builtin. (closes: #493567) + * Add stable release 2.6.26.2: + - sound: ensure device number is valid in snd_seq_oss_synth_make_info + - Ath5k: kill tasklets on shutdown + - Ath5k: fix memory corruption + - vfs: fix lookup on deleted directory + - ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 + - ALSA: hda - Add missing Thinkpad Z60m support + - ALSA: hda - Fix DMA position inaccuracy + - ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode + - Add compat handler for PTRACE_GETSIGINFO + - Bluetooth: Signal user-space for HIDP and BNEP socket errors + - Input: i8042 - add Acer Aspire 1360 to nomux blacklist + - Input: i8042 - add Gericom Bellagio to nomux blacklist + - Input: i8042 - add Intel D845PESV to nopnp list + - jbd: fix race between free buffer and commit transaction + - NFS: Ensure we zap only the access and acl caches when setting new acls + - SCSI: ch: fix ch_remove oops + - linear: correct disk numbering error check + - netfilter: xt_time: fix time's time_mt()'s use of do_div() + - Kprobe smoke test lockdep warning + - Close race in md_probe + - x86: io delay - add checking for NULL early param + - x86: idle process - add checking for NULL early param + - SCSI: bsg: fix bsg_mutex hang with device removal + - netfilter: nf_nat_sip: c= is optional for session + - romfs_readpage: don't report errors for pages beyond i_size + - ftrace: remove unneeded documentation + + [ Martin Michlmayr ] + * METH: fix MAC address setup (Thomas Bogendoerfer) + * Export the reset button of the QNAP TS-409. + * net: use software GSO for SG+CSUM capable netdevices (Lennert Buytenhek) + + [ dann frazier ] + * device_create interface changed between 2.6.26 and 2.6.27; adjust hpilo + backport appropriately. Fixes a NULL pointer dereference in ilo_probe(). + + -- Bastian Blank Fri, 08 Aug 2008 08:09:00 +0200 + +linux-kbuild-2.6 (2.6.26-1) unstable; urgency=low + + * New upstream version. + * modpost: Support new parameters. + + -- Bastian Blank Sat, 02 Aug 2008 13:09:54 +0200 + +linux-2.6 (2.6.26-1) unstable; urgency=low + + * New upstream release see http://kernelnewbies.org/Linux_2_6_26 + - UDF 2.50 support. (closes: #480910) + - mmc: increase power up delay (closes: #481190) + - snd-hda-intel suspend troubles fixed. (closes: #469727, #481613, #480034) + - cifs QueryUnixPathInfo fix (closes: #480995) + - r8169 oops in r8169_get_mac_version (closes: #471892) + - netfilter headers cleanup (closes: #482331) + - iwlwifi led support (closes: #469095) + - ath5k associates on AR5213A (closes: #463785) + - T42 suspend fix (closes: #485873) + - cpuidle acpi driver: fix oops on AC<->DC (closes: #477201) + - opti621 ide fixes (closes: #475561) + - ssh connection hangs with mac80211 (closes: #486089) + - ocfs2: Allow uid/gid/perm changes of symlinks (closes: #479475) + - xircom_tulip_cb: oboslete driver removed (closes: #416900) + - r8169 properly detect link status (closes: #487586) + - iwl3945 connection + support fixes (closes: #481436, #482196) + - longrun cpufreq min freq fix (closes: #468149) + - emux midi synthesizer SOFT_PEDAL-release event (closes: #474312) + - vmemmap fixes to use smaller pages (closes: #483489) + - x86 freeze fixes (closes: #482100, #482074) + - xen boot failure fix (closes: #488284) + - gdb read floating-point and SSE registers (closes: #485375) + - USB_PERSIST is default on (closes: #489963) + - alsa snd-hda Dell Inspiron fix (closes: #490649) + - ipw2200: queue direct scans (closes: #487721) + - better gcc-4.3 support (closes: #492301) + - iwl3945 monitor mode. (closes: #482387) + + [ maximilian attems ] + * topconfig set CRYPTO_CTS, SND_PCSP, SND_AW2, IWL4965_LEDS, IWL3945_LEDS, + RT2400PCI_LEDS, RT2500PCI_LEDS, RT61PCI_LEDS, RT2500USB_LEDS, + RT73USB_LEDS, NF_CT_PROTO_DCCP, BRIDGE_EBT_NFLOG, IWLWIFI_RFKILL, + USB_SERIAL_SPCP8X5, USB_STORAGE_CYPRESS_ATACB, DVB_ISL6405, DVB_AU8522, + VIDEO_EM28XX_DVB, VIDEO_CX18, VIDEO_AU0828, SOC_CAMERA_MT9M001, + SOC_CAMERA_MT9V022, DVB_TUNER_ITD1000, VIDEO_PVRUSB2_DVB, USB_C67X00_HCD, + USB_ISP1760_HCD, HTC_PASIC3, I2C_PCA_PLATFORM, TOUCHSCREEN_WM97XX, + JOYSTICK_ZHENHUA, SFC, ACCESSIBILITY, UIO_SMX, LOGIRUMBLEPAD2_FF, + A11Y_BRAILLE_CONSOLE, EDS_TRIGGER_DEFAULT_ON, VIDEO_ALLOW_V4L1, ATA_ACPI, + SATA_PMP, ATA_SFF, USB_SERIAL_MOTOROLA, USB_WDM, MAC80211_MESH, + IPV6_MROUTE, IPV6_PIMSM_V2, MTD_AR7_PARTS, SENSORS_IBMAEM, PATA_SCH, + CGROUP_DEVICE, USB_ISIGHTFW, HW_RANDOM_VIRTIO, RTC_DRV_FM3130, + USB_VIDEO_CLASS, CIFS_DFS_UPCALL. + * [amd64, i386]: KVM_CLOCK, KVM_GUEST, ISCSI_IBFT_FIND, ISCSI_IBFT, THERMAL, + EEEPC_LAPTOP, FB_N411, THERMAL_HWMON. + * [amd64]: Enable SCSI_DPT_I2O as 64 bit now. + * Reenable USB_SERIAL_EDGEPORT, USB_SERIAL_EDGEPORT_TI. (closes: #480195) + * Enable TCP_MD5SIG for BGP sessions. (closes: #443742) + * Add recognised alsa cards to bug report. + * topconfig: Enable HYSDN, no longer broken on smp. + * Add request_firmware patch for keyspan. (closes: #448900) + * [x86]: Enable dma engine. (closes: #473331) + * [ppc64]: Enable IBMEBUS and EHEA. (closes: #484888) + * topconfig: Enable PROFILING across all flavours. (closes: #484885) + * 486: enable OLPC support thanks Andres Salomon for merge. + Kconfig variable patch by Robert Millan (closes: #485063). + * Add request_firmware patch for ip2. + * Add request_firmware patch for acenic. (closes: #284221) + * [x86, ia64]: Set HPET_RTC_IRQ. (closes: #479709, #476970) + * [ppc]: Set SND_VIRMIDI. (closes: #290090) + * Fallback for userspace compatibility to old IEEE 1394 FireWire stack. + (closes: #451367, #475295, #478419) + * [x86]: Enable modular FB_UVESA. (closes: #473180) + * JFFS2 enable summary and compressor support. (closes: #488242) + * Add OLPC sdhci quirks. Thanks Andres Salomon + (closes: #485192) + * [ppc]: Enable RTC_DRV_PPC. (closes: #484693) Thanks for the patch to + Geoff Levand . + * Enable BLK_DEV_BSG for SG v4 support. + * [amd64] Enable default disabled memtest boot param. + * topconfig: Enable PATA_SIS instead of SATA_SIS. (closes: #485609) + * Add OpenVZ countainer flavour for amd64, i386. (closes: #392015) + * atl1e driver for Atheros(R) L1e Fast Ethernet. (closes: #492029) + * [ALSA] hda - Add ICH9 controller support (8086:2911) + * [ALSA] hda - support intel DG33 motherboards + * HP iLO driver + * Input: i8042 - add Arima-Rioworks HDAMB board to noloop list + (closes: #489190) thanks Guillaume Morin + + [ Martin Michlmayr ] + * [arm/orion5x] Update the config to reflect upstream renaming this + subarch. + * [arm/orion5x] Add some patches from Marvell's Orion tree: + - Feroceon: speed up flushing of the entire cache + - support for 5281 D0 stepping + - cache align destination pointer when copying memory for some processors + - cache align memset and memzero + - DMA engine driver for Marvell XOR engine + - Orion hardware watchdog support + * [arm/orion5x] Enable NETCONSOLE. + * [arm/orion5x] Disable more SCSI drivers. + * [arm/ixp4xx] Disable most ATA and more SCSI and network drivers. + * [arm/versatile] Enable CONFIG_RTC_DRV_PL031 (closes: #484432). + * [arm/iop32x, arm/ixp4xx, arm/versatile] Enable ARM_THUMB (closes: #484524). + * [arm/iop32x] Add LED driver for Thecus N2100 (Riku Voipio). + * [mips/r5k-ip32] Enable USB. + * [arm/orion5x, arm/iop32x, arm/ixp4xx, mipsel/r5k-cobalt] Enable HAMRADIO + on the request of Heinz Janssen. + * [arm/orion5x] Add support for QNAP TS-409 and HP mv2120; thanks + Sylver Bruneau. + * [mips] Add patches from Thomas Bogendoerfer: + - gbefb: fix cmap FIFO timeout (closes: #487257) + - IP32: Enable FAST-20 for onboard scsi + - IP32: SGI O2 sound driver + * [arm/ixp4xx] Add support for Freecom FSG-3 (Rod Whitby). + * [arm/ixp4xx] Enable CONFIG_MACH_DSMG600. + * [arm/iop32x] Unset NET_DMA since it actually leads to worse network + performance. + * [arm/orion5x] Fix a boot crash on the Kurobox Pro. + * [arm/orion5x] use better key codes for the TS-209/TS-409 buttons + * [arm/orion5x] export red SATA lights on TS-409, fix SATA presence/activity + * [arm] Enable KEXEC (closes: #492268). + * [arm/orion5x] Enable USB_PRINTER, requested by Mike Arthur. + * [arm/orion5x] Enable binfmt aout, x25, wireless and ATM. + * [arm/iop32x, arm/orion5x] Enable USB_SISUSBVGA. + * [arm] xfs: pack some shortform dir2 structures for the ARM old ABI + architecture (closes: #414932). + + [ Ian Campbell ] + * Readme.build updated on how to generate orig tarballs. + * Forward port vmlinuz-target.patch. + * Enable Xen save/restore and memory ballooning for Xen enabled kernels. + + [ Bastian Blank ] + * [powerpc/powerpc-miboot] Disable. (closes: #481358) + * [powerpc/powerpc64] Support IBM Cell based plattforms and PS3. + (closes: #462529) + * [s390] Synchronize block device, network bridge, network scheduler and CRC + support. + * [s390] Enable support for PCI-attached cryptographic adapters. + * Use control group as base for group CPU scheduler. This reenabled + traditional nice behaviour. (closes: #489223) + * Bump yaird dependencies to at least 0.0.13. + * Reenable SECCOMP. There is no longer additional overhead. + (closes: #474648) + * Export symbol required for MOL again. (closes: #460667) + * [powerpc/powerpc64] Fix console selection in LPAR environment. + (closes: #492703) + * Fix several userspace compatibility problems. + + [ Christian T. Steigies ] + * [m68k] enable SERIAL_CONSOLE for amiga and atari + + [ Thiemo Seufer ] + * [mips] Fix logic bug in atomic_sub_if_positive. + + [ Stephen R. Marenka ] + * [m68k] Update pending m68k patches. + * [m68k] Enable nfcon and nfblock for atari. + * [m68k] Change compiler to default. + + [ Aurelien Jarno ] + * [arm/versatile] Switch scsi/ext3/smc91x to modules now that we have proper + d-i support. Remove options defined in toplevel config file. + + -- Bastian Blank Wed, 30 Jul 2008 10:17:29 +0200 + +linux-2.6 (2.6.25-7) unstable; urgency=high + + * Add stable release 2.6.25.10: + - TTY: fix for tty operations bugs (CVE-2008-2812) + - sched: fix cpu hotplug + - IB/mthca: Clear ICM pages before handing to FW + - DRM: enable bus mastering on i915 at resume time + - x86: shift bits the right way in native_read_tscp + - x86_64 ptrace: fix sys32_ptrace task_struct leak (CVE-2008-3077) + - ptrace GET/SET FPXREGS broken + - futexes: fix fault handling in futex_lock_pi + - x86: fix cpu hotplug crash + * Add stable release 2.6.25.11: + - x86: fix ldt limit for 64 bit + + -- maximilian attems Mon, 14 Jul 2008 10:58:14 +0200 + +linux-2.6 (2.6.25-6) unstable; urgency=high + + [ maximilian attems ] + * Add stable release 2.6.25.7: + - double-free of inode on alloc_file() failure exit in create_write_pipe() + - m68k: Add ext2_find_{first,next}_bit() for ext4 + - bluetooth: fix locking bug in the rfcomm socket cleanup handling + - serial: fix enable_irq_wake/disable_irq_wake imbalance in serial_core.c + - bttv: Fix a deadlock in the bttv driver (closes: #487594) + - forcedeth: msi interrupts + - CPUFREQ: Fix format string bug. + - mmc: wbsd: initialize tasklets before requesting interrupt + - ecryptfs: fix missed mutex_unlock + - mac80211: send association event on IBSS create + - bluetooth: rfcomm_dev_state_change deadlock fix + - sunhv: Fix locking in non-paged I/O case. + - cassini: Only use chip checksum for ipv4 packets. + - ipwireless: Fix blocked sending + - net: Fix call to ->change_rx_flags(dev, IFF_MULTICAST) in + dev_change_flags() + - fbdev: export symbol fb_mode_option + - ipsec: Use the correct ip_local_out function + - tcp: fix skb vs fack_count out-of-sync condition + - tcp FRTO: Fix fallback to conventional recovery + - tcp FRTO: SACK variant is errorneously used with NewReno + - tcp FRTO: work-around inorder receivers + - tcp: Fix inconsistency source (CA_Open only when !tcp_left_out(tp)) + - l2tp: avoid skb truesize bug if headroom is increased + - l2tp: Fix possible WARN_ON from socket code when UDP socket is closed + - l2tp: Fix possible oops if transmitting or receiving when tunnel goes down + - ax25: Fix NULL pointer dereference and lockup. + - sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA card + - tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled + - tcp: Limit cwnd growth when deferring for GSO + - af_key: Fix selector family initialization. + - hgafb: resource management fix + - cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled + - b43: Fix controller restart crash + - ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable + - eCryptfs: protect crypt_stat->flags in ecryptfs_open() + - cciss: add new hardware support + - ecryptfs: add missing lock around notify_change + - ecryptfs: clean up (un)lock_parent + - Add 'rd' alias to new brd ramdisk driver + - net_sched: cls_api: fix return value for non-existant classifiers + - vlan: Correctly handle device notifications for layered VLAN devices + - IB/umem: Avoid sign problems when demoting npages to integer + - x86: fix recursive dependencies + - can: Fix copy_from_user() results interpretation + - Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST + - tcp: TCP connection times out if ICMP frag needed is delayed + - ALSA: hda - Fix resume of auto-config mode with Realtek codecs + - netlink: Fix nla_parse_nested_compat() to call nla_parse() directly + * Add stable release 2.6.25.9: + - Add return value to reserve_bootmem_node() + - x86: use BOOTMEM_EXCLUSIVE on 32-bit + - sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + - hwmon: (lm85) Fix function RANGE_TO_REG() + - hwmon: (adt7473) Initialize max_duty_at_overheat before use + - x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits. + - Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP + - watchdog: hpwdt: fix use of inline assembly + - Fix ZERO_PAGE breakage with vmware + - atl1: relax eeprom mac address error check + + [ Martin Michlmayr] + * [arm/orion5x] Enable INPUT_EVDEV and KEYBOARD_GPIO. + + [ Steve Langasek ] + * Enable CONFIG_CIFS_EXPERIMENTAL and CONFIG_CIFS_UPCALL, required for + CIFS mounts to be able to use Kerberos authentication. Closes: #480663. + + [ Bastian Blank ] + * Add stable release 2.6.25.8: + - x86: disable mwait for AMD family 10H/11H CPUs + - x86: remove mwait capability C-state check + - nf_conntrack_h323: fix memory leak in module initialization error path + - nf_conntrack_h323: fix module unload crash + - nf_conntrack: fix ctnetlink related crash in nf_nat_setup_info() + - SCSI: sr: fix corrupt CD data after media change and delay + - ACPICA: Ignore ACPI table signature for Load() operator + - scsi_host regression: fix scsi host leak + - b43: Fix possible NULL pointer dereference in DMA code + - b43: Fix noise calculation WARN_ON + - virtio_net: Fix skb->csum_start computation + - opti621: remove DMA support + - opti621: disable read prefetch + - Fix tty speed handling on 8250 + - x86-64: Fix "bytes left to copy" return value for copy_from_user() + * Fix alpha build due too inconsistent kallsyms data. + + -- maximilian attems Fri, 27 Jun 2008 00:33:53 +0200 + +linux-2.6 (2.6.25-5) unstable; urgency=low + + [ maximilian attems ] + [ Bastian Blank ] + * Reenable VServer images. + + [ maximilian attems ] + * Add stable release 2.6.25.5: + - asn1: additional sanity checking during BER decoding (CVE-2008-1673) + * Add stable release 2.6.25.6: + - atl1: fix 4G memory corruption bug + - capabilities: remain source compatible with 32-bit raw legacy capability + support. + - usb-serial: Use ftdi_sio driver for RATOC REX-USB60F + - cpufreq: fix null object access on Transmeta CPU + - Smack: fuse mount hang fix + - cgroups: remove node_ prefix_from ns subsystem + - XFS: Fix memory corruption with small buffer reads + - x86: don't read maxlvt before checking if APIC is mapped + - USB: option: add new Dell 5520 HSDPA variant + - md: do not compute parity unless it is on a failed drive + - md: fix uninitialized use of mddev->recovery_wait + - md: fix prexor vs sync_request race + - HID: split Numlock emulation quirk from HID_QUIRK_APPLE_HAS_FN. + - USB: do not handle device 1410:5010 in 'option' driver + - USB: unusual_devs: Add support for GI 0401 SD-Card interface + - USB: add Telstra NextG CDMA id to option driver + - USB: fix build errors in ohci-omap.c and ohci-sm501.c + - USB: add TELIT HDSPA UC864-E modem to option driver + - memory_hotplug: always initialize pageblock bitmap + - x86: fix bad pmd ffff810000207xxx(9090909090909090) + - USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to + cdc-acm + - x86: prevent PGE flush from interruption/preemption + - IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish() + - i386: fix asm constraint in do_IRQ() + - i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 + Expert + - i2c/max6875: Really prevent 24RF08 corruption + - brk: make sys_brk() honor COMPAT_BRK when computing lower bound + - Revert "PCI: remove default PCI expansion ROM memory allocation" + - PS3: gelic: fix memory leak + - eCryptfs: remove unnecessary page decrypt call + - netfilter: nf_conntrack_expect: fix error path unwind in + nf_conntrack_expect_init() + - netfilter: xt_connlimit: fix accouning when receive RST packet in + ESTABLISHED state + - netfilter: nf_conntrack_ipv6: fix inconsistent lock state in + nf_ct_frag6_gather() + - POWERPC Bolt in SLB entry for kernel stack on secondary cpus + - netfilter: xt_iprange: module aliases for xt_iprange + - x86: user_regset_view table fix for ia32 on 64-bit + - x86: if we cannot calibrate the TSC, we panic. + - CIFS: Fix UNC path prefix on QueryUnixPathInfo to have correct slash + - x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack + - libata: force hardreset if link is in powersave mode + - x86: fix setup of cyc2ns in tsc_64.c + - x86: distangle user disabled TSC from unstable + - x86: disable TSC for sched_clock() when calibration failed + - pagemap: fix bug in add_to_pagemap, require aligned-length reads of + /proc/pid/pagemap + - ext3/4: fix uninitialized bs in ext3/4_xattr_set_handle() + - proc: calculate the correct /proc/ link count + - CPUFREQ: Make acpi-cpufreq more robust against BIOS freq changes behind + our back. + - USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb + - types.h: don't expose struct ustat to userspace + + [ Bastian Blank ] + * Ignore ABI change in internal XFS symbol. + + -- Bastian Blank Thu, 12 Jun 2008 08:47:11 +0200 + +linux-2.6 (2.6.25-4) unstable; urgency=low + + [ maximilian attems ] + * Fix arm Kconfig logic disabling random drivers. (closes: #481410) + * Add stable release 2.6.25.4: + - OHCI: fix regression upon awakening from hibernation + - V4L/DVB (7473): PATCH for various Dibcom based devices + - {nfnetlink, ip, ip6}_queue: fix skb_over_panic when enlarging packets + - dccp: return -EINVAL on invalid feature length + - md: fix raid5 'repair' operations + - sparc: Fix SA_ONSTACK signal handling. + - sparc: Fix fork/clone/vfork system call restart. + - sparc64: Stop creating dummy root PCI host controller devices. + - sparc64: Fix wedged irq regression. + - SPARC64: Fix args to 64-bit sys_semctl() via sys_ipc(). + - serial: Fix sparc driver name strings. + - sparc: Fix ptrace() detach. + - sparc: Fix mremap address range validation. + - sparc: Fix debugger syscall restart interactions. + - sparc32: Don't twiddle PT_DTRACE in exec. + - r8169: fix oops in r8169_get_mac_version + - SCSI: aha152x: Fix oops on module removal + - SCSI: aha152x: fix init suspiciously returned 1, it should follow + 0/-E convention + - sch_htb: remove from event queue in htb_parent_to_leaf() + - i2c-piix4: Blacklist two mainboards + - SCSI: qla1280: Fix queue depth problem + - ipvs: fix oops in backup for fwmark conn templates + - USB: airprime: unlock mutex instead of trying to lock it again + - rtc: rtc_time_to_tm: use unsigned arithmetic + - SCSI: libiscsi regression in 2.6.25: fix nop timer handling + - SCSI: libiscsi regression in 2.6.25: fix setting of recv timer + - can: Fix can_send() handling on dev_queue_xmit() failures + - macvlan: Fix memleak on device removal/crash on module removal + - nf_conntrack: padding breaks conntrack hash on ARM + - sparc: sunzilog uart order + - r8169: fix past rtl_chip_info array size for unknown chipsets + - x86: use defconfigs from x86/configs/* + - vt: fix canonical input in UTF-8 mode + - ata_piix: verify SIDPR access before enabling it + - serial: access after NULL check in uart_flush_buffer() + - x86: sysfs cpu?/topology is empty in 2.6.25 (32-bit Intel system) + - XFRM: AUDIT: Fix flowlabel text format ambibuity. + * Update userspace merged HZ alpha fixed version. + * Backport netfilter: Move linux/types.h inclusions outside of #ifdef + __KERNEL__. (closes: #479899) + * types.h: don't expose struct ustat to userspace. (closes: #429064) + + [ Bastian Blank ] + * Fix ABI changes from: ipvs: fix oops in backup for fwmark conn templates + + -- maximilian attems Tue, 27 May 2008 11:46:11 +0200 + +linux-2.6 (2.6.25-3) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.25.3: + - sit: Add missing kfree_skb() on pskb_may_pull() failure. + - sparc: Fix mmap VA span checking. + - CRYPTO: eseqiv: Fix off-by-one encryption + - CRYPTO: authenc: Fix async crypto crash in crypto_authenc_genicv() + - CRYPTO: cryptd: Correct kzalloc error test + - CRYPTO: api: Fix scatterwalk_sg_chain + - x86 PCI: call dmi_check_pciprobe() + - b43: Fix some TX/RX locking issues + - kprobes/arm: fix decoding of arithmetic immediate instructions + - kprobes/arm: fix cache flush address for instruction stub + - b43: Fix dual-PHY devices + - POWERPC: mpc5200: Fix unterminated of_device_id table + - reiserfs: Unpack tails on quota files + - sched: fix hrtick_start_fair and CPU-Hotplug + - vfs: fix permission checking in sys_utimensat + - md: fix use after free when removing rdev via sysfs + - mm: fix usemap initialization + - 2.6.25 regression: powertop says 120K wakeups/sec + + [ maximilian attems ] + * Redisable old dup prism54 driver. + * Reenable accidentaly disabled SIS190. (closes: #478773) + * Add lmkl patch to unbreak HZ userspace aka perl5.10 build fix. + (closes: #480130) + + [ Martin Michlmayr ] + * [armel] Disable some SCSI drives (that are disabled on arm) so the + ramdisk will fit in flash on NSLU2 (closes: #480310). + + -- maximilian attems Wed, 14 May 2008 11:16:56 +0200 + +linux-2.6 (2.6.25-2) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.25.1: + - Fix dnotify/close race (CVE-2008-1375) + - V4L: Fix VIDIOCGAP corruption in ivtv + - USB: log an error message when USB enumeration fails + - USB: OHCI: fix bug in controller resume + - SCSI: qla2xxx: Correct regression in relogin code. + - rose: Socket lock was not released before returning to user space + - x86, pci: fix off-by-one errors in some pirq warnings + - hrtimer: timeout too long when using HRTIMER_CB_SOFTIRQ + - RDMA/nes: Fix adapter reset after PXE boot + - rtc-pcf8583 build fix + - JFFS2: Fix free space leak with in-band cleanmarkers + - SELinux: no BUG_ON(!ss_initialized) in selinux_clone_mnt_opts + - tehuti: check register size (CVE-2008-1675) + - IPSEC: Fix catch-22 with algorithm IDs above 31 + - alpha: unbreak OSF/1 (a.out) binaries + - tehuti: move ioctl perm check closer to function start (CVE-2008-1675) + - aio: io_getevents() should return if io_destroy() is invoked + - mm: fix possible off-by-one in walk_pte_range() + - TCP: Increase the max_burst threshold from 3 to tp->reordering. + - ssb: Fix all-ones boardflags + - cgroup: fix a race condition in manipulating tsk->cg_list + - drivers/net/tehuti: use proper capability check for raw IO access + - tg3: 5701 DMA corruption fix + - V4L: tea5761: bugzilla #10462: tea5761 autodetection code were broken + - b43: Workaround invalid bluetooth settings + - b43: Add more btcoexist workarounds + - b43: Workaround DMA quirks + - dm snapshot: fix chunksize sector conversion + - x86: Fix 32-bit x86 MSI-X allocation leakage + - RTNETLINK: Fix bogus ASSERT_RTNL warning + - net: Fix wrong interpretation of some copy_to_user() results. + - dz: test after postfix decrement fails in dz_console_putchar() + - RDMA/nes: Free IRQ before killing tasklet + - S2io: Fix memory leak during free_tx_buffers + - S2io: Version update for memory leak fix during free_tx_buffers + - USB: Add HP hs2300 Broadband Wireless Module to sierra.c + - V4L: cx88: enable radio GPIO correctly + - hrtimer: raise softirq unlocked to avoid circular lock dependency + - tcp: tcp_probe buffer overflow and incorrect return value + * [ide] Add upstream piix patch for asus eee pc. (closes: #479217) + + [ Christian T. Steigies ] + * [m68k] Add patches for 2.6.25. + * [m68k] Disable EXT4DEV_FS for now. + * [m68k] Enable SCSI_MAC_ESP for mac. + + [ Ian Campbell ] + * [x86]: Enable Xen guest support in all i386 flavours. + + [ Bastian Blank ] + * Add stable release 2.6.25.2: + - fix SMP ordering hole in fcntl_setlk() (CVE-2008-1669) + + -- Bastian Blank Thu, 08 May 2008 14:46:48 +0200 + +linux-kbuild-2.6 (2.6.25-2) unstable; urgency=low + + * modpost: Support new parameters. (closes: #479271) + + -- Bastian Blank Mon, 05 May 2008 19:58:40 +0200 + +linux-kbuild-2.6 (2.6.25-1) unstable; urgency=low + + * New upstream version. + + -- Bastian Blank Fri, 02 May 2008 10:32:13 +0200 + +linux-2.6 (2.6.25-1) unstable; urgency=low + + * New upstream release (closes: #456799, #468440, #475161, #475134, #475441) + - Add oabi shim for fstatat64 (closes: #462677) + + [ maximilian attems ] + * topconfig set NOZOMI, CRYPTO_SEQIV, CRYPTO_CTR, CRYPTO_GCM, CRYPTO_CCM, + CRYPTO_SALSA20, CRYPTO_LZO, CRYPTO_DEV_HIFN_795X, USB_SI470X, + USB_STKWEBCAM, VIDEO_PVRUSB2_ONAIR_USB2, VIDEO_PVRUSB2_ONAIR_CREATOR, + VIDEO_EM28XX_ALSA, CRYPTO_DEV_HIFN_795X_RNG, PCF8575, TPS65010, RTL8180, + ENC28J60, R6040, CAN, NETFILTER_XT_MATCH_OWNER, MAC80211_RC_DEFAULT_PI, + NETFILTER_XT_TARGET_RATEEST, NETFILTER_XT_TARGET_TCPOPTSTRIP, + NETFILTER_XT_MATCH_IPRANGE, NETFILTER_XT_MATCH_RATEEST, SND_OXYGEN, + SND_HIFIER, SND_VIRTUOSO, USB_NET_RNDIS_WLAN, USB_ANNOUNCE_NEW_DEVICES, + USB_SERIAL_IUU, NET_CLS_FLOW, INFINIBAND_NES, RTC_DRV_R9701, + RTC_DRV_DS1511, MEMSTICK, SENSORS_W83L786NG, SENSORS_ADS7828, IPWIRELESS, + RISCOM8, IGB, UTS_NS, IPC_NS, IPV6_ROUTE_INFO, ENCLOSURE_SERVICES, + SCSI_ENCLOSURE, SENSORS_ADT7473, SCSI_MVSAS, REALTEK_PHY, RTC_DRV_S35390A, + MEMSTICK_JMICRON_38X, IWL4965_HT. + * [amd64] Enable CRYPTO_SALSA20_X86_64, EDAC_I3000, EFI, EFI_VARS, I8K, + PARAVIRT_GUEST, PARAVIRT, VIRTIO_PCI, VIRTIO_BALLOON, SPARSEMEM_VMEMMAP. + * [amd64, i386]: Enable LEDS_CLEVO_MAIL, INPUT_APANEL, ACER_WMI, + THINKPAD_ACPI_HOTKEY_POLL, HP_WATCHDOG, THINKPAD_ACPI_VIDEO, + VIRTION_CONSOLE, ACPI_WMI, IO_DELAY_0X80. + * topconfig disable PARPORT_PC_FIFO due to instabilities. + (closes: #366165, #388309, #406056, #407816, #453911) + * [amd64, i386]: Enable SONYPI_COMPAT for better sony laptop support. + * topconfig: Enable HID_FF for some HID devices. (closes: #441348) + * topconfig: Enable IPV6_ROUTER_PREF for multi-homed net. (closes: #449247) + * topconfig: Set UTF8 as default encoding. (closes: #417324) + * Tighten yaird dependency. (closes: #403171) + * Configs general cleanup, centralize USB_NET, disable IRDA_DEBUG. + * postinst: Nuke confusing postinst message. (closes: #465512) + * [sparc]: Enable SCSI_SCAN_ASYNC. + * [i386]: Enable TC1100_WMI, SND_SIS7019, CRYPTO_SALSA20_586. + * topconfig: Centralize old IEEE80211 stack options. (closes: #470558) + * control.source.in: Newer standard version without changes. + * copyright: adapt to latest lintian recommendation. + * input: Add 4 additional exports for modular speakup and braille support. + * firewire: Add firewire-git.patch for latest firewire tree features. + * 686: Set USB_PERSIST for eee pc suspend support. (closes: #468213) + * topconfig disable PATA_SIS as sis5513 enabled. (closes: #475525) + * [xen]: Support direct load of bzImage under Xen. (closes: #474509) + Thanks Ian Campbell for patches. + * [xen]: Module autoprobing support for frontend drivers. + * [arm]: Don't ovverride topconfig SENSORS_W83792D setting. + (closes: #477745) + + [ Martin Michlmayr ] + * [arm/armel] Add a kernel for Orion based devices, such as the QNAP + TS-109/TS-209. + * [mips(el)/sb1*] Enable SB1250_MAC (thanks Thomas Bogendoerfer). + * [mipsel/r5k-cobalt] Enable DUMMY_CONSOLE since this might + fix the debian-installer startup hang on Qube 2700. + * [arm/footbridge] Disable KEYS and SECURITY for smaller d-i image. + * [arm/footbridge] Build NFS as a module to make the image smaller. + * [mips/r5k-ip32] Don't build in NFS. + * [mips/r5k-ip32] Use the generic config options for NFS, which will + enable NFSv4. (closes: #471007) + * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco. + * [arm/iop32x] Enable MACH_EM7210. (closes: #473136) + * [arm/orion] Add patch to set the MAC address on QNAP TS-109/TS-209 + (Lennert Buytenhek). + * [arm/orion] Add support for Buffalo Linkstation Pro/Live (Byron Bradley). + * [arm/orion] Fix hang when Write Allocate is enabled (Lennert Buytenhek). + * [arm/orion] Add support for QNAP TS-409 (Sylver Bruneau). + * [arm/orion] Add preliminary support for HP mv2120. + + [ Daniel Baumann ] + * Added patch from unionfs upstream to export release_open_intent symbol. + + [ Gordon Farquharson ] + * [arm/ixp4xx] Use GPIO LED driver as opposed to ixp4xx LED driver. + * [arm/ixp4xx] Fix ixp4xx-beeper module so that udev loads it + automatically. + * [arm/iop32x] Enable support for the GLAN Tank flash chip (M29W400DB). + * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP). + * [arm/iop32x] Register the F75375 device in the GLAN Tank platform code. + * Prevent physmap from calling request_module() too early. + * [arm/ixp4xx] Fix used_sram_bitmap corruption in qmgr_release_queue(). + + [ Aurelien Jarno ] + * [mips/mipsel] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks + and true high-resolution timers on 4kc-malta and 5kc-malta flavours. + * [i386, amd64] Set modular VIRTIO, VIRTIO_RING, VIRTIO_BLK, VIRTIO_NET. + + [ Bastian Blank ] + * Remove binary only firmwares for: + - Broadcom NetXtremeII 10Gb support + * Disable now broken drivers: + - Broadcom NetXtremeII 10Gb support + * Fix broken drivers: + - Broadcom NetXtremeII support + * [powerpc] Use new wrapper install support. + * [s390] Enable DM_MULTIPATH_EMC. + * Enable AF_RXRPC, RXKAD, PRINTK_TIME, DEBUG_KERNEL, SCHED_DEBUG, + TIMER_STATS, DEBUG_FS. + * Disable R3964, USB_GADGET. + * [hppa] Enable several filesystems. + * Make NLS modular. + * [i386/486] Make ext2 modular. + * [alpha,amd64,i386] Make ATM modular. + * [powerpc/powerpc64] Support PA Semi based plattforms. (closes: #463200) + * Follow upstream change for default TCP congestion control. + (closes: #477589) + + [ Steve Langasek ] + * topconfig: Enable CONFIG_CIFS_WEAK_PW_HASH, required for compatibility + with legacy (pre-NTLM) fileservers. + + [ Christian Perrier ] + * Debconf template rewrite + mark them as translatable. + Thanks to Justin B Rye for review. + + -- Bastian Blank Fri, 25 Apr 2008 16:27:23 +0200 + +linux-2.6 (2.6.24-6) unstable; urgency=high + + [ Martin Michlmayr ] + * [armel] Fix FTBFS on armel by enabling CONFIG_USB_USBNET=m in + armel/config, as it was done for arm/config already. + * [armel] Add oabi shim for fstatat64 (Riku Voipio) + + [ Gordon Farquharson ] + * [arm/iop32x] Do not build the ARTOP PATA driver (PATA_ARTOP). + * [arm/iop32x] Enable MTD_CMDLINE_PARTS. + + [ Kyle McMartin ] + * [hppa] fix pdc_console panic at boot (closes: #476292). + * [hppa] properly flush user signal tramps + * [hppa] special case futex cmpxchg on kernel space NULL (closes: 476285). + + -- Bastian Blank Fri, 18 Apr 2008 19:41:30 +0200 + +linux-2.6 (2.6.24-5) unstable; urgency=low + + [ Gordon Farquharson ] + * [arm] Enable asix driver (USB_NET_AX8817X). + * [arm] Enable CONFIG_USB_CATC, CONFIG_USB_KAWETH, CONFIG_USB_PEGASUS, + and CONFIG_USB_RTL8150. + * [arm/ixp4xx] Update Ethernet driver (closes: #471062). + * [arm/ixp4xx] Add HSS driver. + + [ Bastian Blank ] + * [s390/s390-tape]: Override localversion correctly. + * Add stable release 2.6.24.3: + - x86_64: CPA, fix cache attribute inconsistency bug + - bonding: fix NULL pointer deref in startup processing + - POWERPC: Revert chrp_pci_fixup_vt8231_ata devinit to fix libata on pegasos + - PCMCIA: Fix station address detection in smc + - SCSI: gdth: scan for scsi devices + - USB: fix pm counter leak in usblp + - S390: Fix futex_atomic_cmpxchg_std inline assembly. + - genirq: do not leave interupts enabled on free_irq + - hrtimer: catch expired CLOCK_REALTIME timers early + - hrtimer: check relative timeouts for overflow + - SLUB: Deal with annoying gcc warning on kfree() + - hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep() + - hrtimer: fix *rmtp handling in hrtimer_nanosleep() + - Disable G5 NAP mode during SMU commands on U3 + - Be more robust about bad arguments in get_user_pages() + - AUDIT: Increase skb->truesize in audit_expand + - BLUETOOTH: Add conn add/del workqueues to avoid connection fail. + - INET: Prevent out-of-sync truesize on ip_fragment slow path + - INET_DIAG: Fix inet_diag_lock_handler error path. + - IPCOMP: Fetch nexthdr before ipch is destroyed + - IPCOMP: Fix reception of incompressible packets + - IPV4: fib: fix route replacement, fib_info is shared + - IPV4: fib_trie: apply fixes from fib_hash + - PKT_SCHED: ematch: oops from uninitialized variable (resend) + - SELinux: Fix double free in selinux_netlbl_sock_setsid() + - TC: oops in em_meta + - TCP: Fix a bug in strategy_allowed_congestion_control + - SCSI: sd: handle bad lba in sense information + - Fix dl2k constants + - XFS: Fix oops in xfs_file_readdir() + - hugetlb: add locking for overcommit sysctl + - inotify: fix check for one-shot watches before destroying them + - NFS: Fix a potential file corruption issue when writing + - NETFILTER: nf_conntrack_tcp: conntrack reopening fix + - SPARC/SPARC64: Fix usage of .section .sched.text in assembler code. + * Add stable release 2.6.24.4: + - S390 futex: let futex_atomic_cmpxchg_pt survive early functional tests. + - slab: NUMA slab allocator migration bugfix + - relay: fix subbuf_splice_actor() adding too many pages + - BLUETOOTH: Fix bugs in previous conn add/del workqueue changes. + - SCSI advansys: Fix bug in AdvLoadMicrocode + - async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor + - aio: bad AIO race in aio_complete() leads to process hang + - jbd: correctly unescape journal data blocks + - jbd2: correctly unescape journal data blocks + - zisofs: fix readpage() outside i_size + - NETFILTER: nfnetlink_log: fix computation of netlink skb size + - NETFILTER: nfnetlink_queue: fix computation of allocated size for netlink skb + - NETFILTER: xt_time: fix failure to match on Sundays + - sched_nr_migrate wrong mode bits + - nfsd: fix oops on access from high-numbered ports + - sched: fix race in schedule() + - SCSI: mpt fusion: don't oops if NumPhys==0 + - SCSI: gdth: fix to internal commands execution + - SCSI: gdth: bugfix for the at-exit problems + - Fix default compose table initialization + - x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC + - SCSI: fix BUG when sum(scatterlist) > bufflen + - USB: ehci: handle large bulk URBs correctly (again) + - USB: ftdi_sio - really enable EM1010PC + - USB: ftdi_sio: Workaround for broken Matrix Orbital serial port + - VT notifier fix for VT switch + - eCryptfs: make ecryptfs_prepare_write decrypt the page + - ioat: fix 'ack' handling, driver must ensure that 'ack' is zero + - macb: Fix speed setting + - x86: move out tick_nohz_stop_sched_tick() call from the loop + - atmel_spi: fix clock polarity + - b43: Backport bcm4311 fix + - arcmsr: fix IRQs disabled warning spew + - e1000e: Fix CRC stripping in hardware context bug + - PCI x86: always use conf1 to access config space below 256 bytes + - moduleparam: fix alpha, ia64 and ppc64 compile failures + - pata_hpt*, pata_serverworks: fix UDMA masking + - SCSI advansys: fix overrun_buf aligned bug + - NETFILTER: fix ebtable targets return + - NETFILTER: Fix incorrect use of skb_make_writable + - NETFILTER: nfnetlink_queue: fix SKB_LINEAR_ASSERT when mangling packet data + - spi: pxa2xx_spi clock polarity fix + - ufs: fix parenthesisation in ufs_set_fs_state() + - hugetlb: ensure we do not reference a surplus page after handing it to buddy + - file capabilities: simplify signal check + - futex: runtime enable pi and robust functionality + - futex: fix init order + - ARM pxa: fix clock lookup to find specific device clocks + - x86: replace LOCK_PREFIX in futex.h + - SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET + - SCSI gdth: don't call pci_free_consistent under spinlock + - SCSI ips: fix data buffer accessors conversion bug + - usb-storage: don't access beyond the end of the sg buffer + - fuse: fix permission checking + - CRYPTO xts: Use proper alignment + - CRYPTO xcbc: Fix crash with IPsec + - SCSI ips: handle scsi_add_host() failure, and other err cleanups + - x86: adjust enable_NMI_through_LVT0() + - drivers: fix dma_get_required_mask + - iov_iter_advance() fix + - x86: Clear DF before calling signal handler (closes: #469058) + - ub: fix up the conversion to sg_init_table() + - MIPS: Mark all but i8259 interrupts as no-probe. + - IRQ_NOPROBE helper functions + - IPCOMP: Disable BH on output when using shared tfm + - IPCONFIG: The kernel gets no IP from some DHCP servers + - IPV4: Remove IP_TOS setting privilege checks. + - IPV6: dst_entry leak in ip4ip6_err. + - IPV6: Fix IPsec datagram fragmentation + - NET: Fix race in dev_close(). (Bug 9750) + - NET: Messed multicast lists after dev_mc_sync/unsync (closes: #466719) + - NIU: Bump driver version and release date. + - NIU: Fix BMAC alternate MAC address indexing. + - NIU: More BMAC alt MAC address fixes. + - TCP: Improve ipv4 established hash function. + - SPARC: Fix link errors with gcc-4.3 + - SPARC64: Loosen checks in exception table handling. + + [ Martin Michlmayr ] + * [mips/r4k-ip22] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP. + * [mips/r5k-ip32] Enable BLK_DEV_LOOP and BLK_DEV_CRYPTOLOOP. + * [mips/r4k-ip22] Enable PPP, PPPOE and SLIP. + * [mips/r5k-ip32] Enable PPP, PPPOE and SLIP. + * Don't check the section size when we're cross compiling. + + [ dann frazier ] + * Remove cap_task_kill (closes: #463669) + + -- Bastian Blank Thu, 27 Mar 2008 12:40:16 +0100 + +linux-2.6 (2.6.24-4) unstable; urgency=low + + * Add stable release 2.6.24.1: + - splice: missing user pointer access verification (CVE-2008-0009/10) + - drm: the drm really should call pci_set_master.. + - Driver core: Revert "Fix Firmware class name collision" + - fix writev regression: pan hanging unkillable and un-straceable + - sched: fix high wake up latencies with FAIR_USER_SCHED + - sched: let +nice tasks have smaller impact + - b43: Reject new firmware early + - selinux: fix labeling of /proc/net inodes + - b43legacy: fix DMA slot resource leakage + - b43legacy: drop packets we are not able to encrypt + - b43legacy: fix suspend/resume + - b43legacy: fix PIO crash + - b43: Fix dma-slot resource leakage + - b43: Drop packets we are not able to encrypt + - b43: Fix suspend/resume + - sky2: fix for WOL on some devices + - sky2: restore multicast addresses after recovery + - x86: restore correct module name for apm + - ACPI: update ACPI blacklist + - PCI: Fix fakephp deadlock + - sys_remap_file_pages: fix ->vm_file accounting + - lockdep: annotate epoll + - forcedeth: mac address mcp77/79 + - USB: Fix usb_serial_driver structure for Kobil cardreader driver. + - USB: handle idVendor of 0x0000 + - USB: fix usbtest halt check on big endian systems + - USB: storage: Add unusual_dev for HP r707 + - USB: Variant of the Dell Wireless 5520 driver + - USB: use GFP_NOIO in reset path + - USB: ftdi driver - add support for optical probe device + - USB: pl2303: add support for RATOC REX-USB60F + - USB: remove duplicate entry in Option driver and Pl2303 driver for Huawei modem + - USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver for Sierra Wireless + - USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD + - USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC + - USB: sierra driver - add devices + - USB: Adding YC Cable USB Serial device to pl2303 + - USB: Sierra - Add support for Aircard 881U + - USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter + - USB: CP2101 New Device IDs + - usb gadget: fix fsl_usb2_udc potential OOPS + - USB: keyspan: Fix oops + - vm audit: add VM_DONTEXPAND to mmap for drivers that need it (CVE-2008-0007) + - slab: fix bootstrap on memoryless node + - DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail + + [ Martin Michlmayr ] + * [arm/ixp4xx] Enble ATA_OVER_ETH, requested by Nicola Fankhauser. + * [arm/iop32x] Enble ATA_OVER_ETH. + + [ Bastian Blank ] + * Add stable release 2.6.24.2: + - splice: fix user pointer access in get_iovec_page_array() + (CVE-2008-0600, closes: #464945) + + -- Bastian Blank Mon, 11 Feb 2008 12:29:23 +0100 + +linux-2.6 (2.6.24-3) unstable; urgency=low + + [ maximilian attems ] + * [scsi]: hptiop: add more adapter models and fixes. + * [amd64, i386]: Reenable ACPI_PROCFS_POWER. (closes: #463253) + + [ Gordon Farquharson ] + * [arm/ixp4xx] Update Ethernet driver so that it can be loaded by udev + automatically. + + [ Martin Michlmayr ] + * [mips/r5k-ip32] Enable R8169, requested by Giuseppe Sacco. (Closes: + #463705) + + -- Bastian Blank Wed, 06 Feb 2008 13:05:18 +0100 + +linux-2.6 (2.6.24-2) unstable; urgency=low + + [ Bastian Blank ] + * Fix broken merge of flavour specific settings. + - [i386]: Recommends are fixed. + - [s390/s390-tape]: Built as small image again. + + [ maximilian attems ] + * Disable old dup prism54 driver. + * Stable queue: slab: fix bootstrap on memoryless node. + + [ Aurelien Jarno ] + * [arm]: Remove options that are present in topconfig from config.versatile. + * [arm]: Turn off B44 since it fails to compile on armel. + + -- Bastian Blank Thu, 31 Jan 2008 17:37:00 +0100 + +linux-kbuild-2.6 (2.6.24-1) unstable; urgency=low + + * New upstream version. + + -- Bastian Blank Tue, 29 Jan 2008 14:03:06 +0100 + +linux-2.6 (2.6.24-1) unstable; urgency=low + + * New upstream release + (closes: #461639) + + [ Martin Michlmayr ] + * Don't build the AdvanSys driver on ARM since it fails to compile. + * Disable ATH5K on ARM since it fails to compile. + * [arm/iop32x] Activate DMADEVICES. + * [mips/mipsel] Turn off CONFIG_NIU since it fails to compile. + + [ maximilian attems ] + * [amd64, i386]: Enable ACPI_SYSFS_POWER and disable ACPI_PROCFS_POWER. + * [fw] Sync with latest git-ieee1394 for sbp2 fixes. + + [ Bastian Blank ] + * Kill reboot warning from old templates. + * Fix strange default value for link_in_boot. (closes: #425056) + * [powerpc/powerpc]: Enable Efika support. + * [powerpc]: Lower mkvmlinuz to the state of a bootloader. + * [powerpc]: Remove ppc and m68k include dirs from headers. + * Remove versions from relations fullfilled in stable. + + [ Aurelien Jarno ] + * [arm]: Update versatile config. + + [ Gordon Farquharson ] + * [arm/ixp4xx] Change the ixp4xx network driver from the driver + written by Christian Hohnstaedt to the driver written by Krzysztof + Hasala which has partially been accepted upstream. + + -- Bastian Blank Sat, 26 Jan 2008 11:35:11 +0100 + +linux-2.6 (2.6.24~rc8-1~experimental.1) experimental; urgency=low + + * New upstream release + (closes: #454776, #458142, #457992, #458899, #426124, #459732, #455566). + + [ maximilian attems ] + * New upstream release, rebase dfsg stuff plus drivers-atm.patch, + scripts-kconfig-reportoldconfig.patch. + * [amd64, powerpc] Set HIGH_RES_TIMERS and NO_HZ (closes: #458312). + * topconfig set NETFILTER_XT_MATCH_TIME, NET_ACT_NAT, KSDAZZLE_DONGLE, + KS959_DONGLE, NET_9P_FD, IP1000, VETH, IXGBE, NIU, TEHUTI, LIBERTAS_CS, + LIBERTAS_SDIO, RT2X00, SENSORS_ADT7470, SENSORS_I5K_AMB, SENSORS_F71882FG, + SENSORS_FSCHMD, SENSORS_IBMPEX, CRYPTO_XTS, CRYPTO_SEED, CRYPTO_AUTHENC, + DVB_S5H1409, DVB_TUNER_MT2131, INET_LRO, MMC_RICOH_MMC, MMC_SPI, + RTC_DRV_DS1374, VIDEO_CX23885, VIDEO_FB_IVTV, USB_SERIAL_CH341, + SCSI_SRP_TGT_ATTRS, ADM8211, MTD_INTEL_VR_NOR, MTD_ALAUDA, + MTD_ONENAND_2X_PROGRAM, MTD_ONENAND_SIM, DM_MULTIPATH_HP, FUJITSU_LAPTOP, + QUOTA_NETLINK_INTERFACE, DM_UEVENT, SCSI_FC_TGT_ATTRS, SSB, BT_HCIUART_LL, + BT_HCIBTSDIO, MTD_OOPS, CGROUPS, MDIO_BITBANG, HIDRAW, P54, SDIO_UART, + NETCONSOLE_DYNAMIC, SECURITY_FILE_CAPABILITIES. + * Disable smbfs in topconfig, not supported upstream, use cifs. + * Disable bcm43xx, deprecated by upstream. Enable B43 (needs v4 firmware) + and B43LEGACY (needs v3 firmware). + * [i386]: Set SND_SC6000, EDAC_I3000, EDAC_I5000, SBC7240_WDT, + NET_9P_VIRTIO, FB_GEODE_LX, VIRTIO_NET, VIRTIO_BLK. + * Set USB_EHCI_TT_NEWSCHED fills USB 2.0 bandwith better. (closes: #454797) + * postrm: Nuke initramfs sha1sum on linux-image removal. (closes: #420245) + * Unifiy BSD_PROCESS_ACCT settings across configs. (closes: #455892) + * Reenable DABUSB as firmware is BSD licensed. + * [hppa]: Disable OCFS2, due build trouble. + * topconfig: Enable delay accounting TASKSTATS. (closes: #433204) + * Add git-ieee1394.patch for latest firewire fixes. + * [i386] Enable PARAVIRT_GUEST. (closes: #457562) + * [amd64, i386] Enable CPU_IDLE for software-controlled idle pm. + * [amd64, i386] Enable IT8712F_WDT, FB_EFI. + * Add and enable at76.patch wireless driver for Atmel USB cards. + * Add and enable ath5k.patch wireless driver for Atheros 5xxx cards. + * Unify VLAN_8021Q setting, needed also on r5k-cobalt. + * Double max SERIAL_8250_NR_UARTS to 32. (closes: #440807) + * topconfig: Enable AUDITSYSCALL for better SELinux support. + + [ Bastian Blank ] + * [amd64, i386]: Set kernel architecture to x86. + * [i386]: Remove linux-libc-dev arch override. + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Enable the new LEDs driver for Cobalt RaQ. + * [arm/iop32x] Re-enable USB_NET and PPP, thanks Daniel Hess (closes: + #456416). + * [arm/iop32x] Enable BSD_PROCESS_ACCT and POSIX_MQUEUE (closes: #455892). + * [mips] Disable AdvanSys SCSI since it doesn't compile. + * [arm/ixp4xx] Enable IP_ADVANCED_ROUTER, requested by Oliver Urbann. + * [arm/iop32x] Enable IP_ADVANCED_ROUTER. + + [ dann frazier ] + * [ia64]: Enable BLK_CPQ_DA + + [ Frederik Schüler ] + * Add GFS2 locking symbols export patch. + + [ Aurelien Jarno ] + * [mips/mipsel] Remove QEMU flavour, as the Malta platform is now correctly + emulated in QEMU. + + [ Christian T. Steigies ] + * [m68k]: Update patches from linux-m68k CVS + * [m68k]: Enable building for bvme6000, mvme147, and mvme16x again + + -- Bastian Blank Fri, 18 Jan 2008 12:23:26 +0100 + +linux-2.6 (2.6.23-2) unstable; urgency=low + + [ dann frazier ] + * [ia64]: Enable BLK_CPQ_DA + + [ Gordon Farquharson ] + * [arm/iop32x] Use the new i2c framework to load rtc-rs5c372 for the + GLAN Tank. + + [ Frederik Schüler ] + * Export gfs2 locking symbols required to build gfs1 module. + + [ maximilian attems ] + * [ppc] Reenable PMAC_BACKLIGHT. + * [sparc] Add davem get_cpu() SunFire boot patch. (closes: #440720) + * Add stable release 2.6.23.10: + - IPV4: Remove bogus ifdef mess in arp_process + - KVM: x86 emulator: Use emulator_write_emulated and not emulator_write_std + - KVM: SVM: Fix FPU leak while emulating clts + - revert "dpt_i2o: convert to SCSI hotplug model" + - KVM: x86 emulator: fix access registers for instructions with ModR/M + byte and Mod = 3 + - KVM: x86 emulator: invd instruction + - KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions + - KVM: Skip pio instruction when it is emulated, not executed + - KVM: VMX: Force vm86 mode if setting flags during real mode + - forcedeth: new mcp79 pci ids + - forcedeth boot delay fix + - PFKEY: Sending an SADB_GET responds with an SADB_GET + - rd: fix data corruption on memory pressure. + - create /sys/.../power when CONFIG_PM is set + - USB: fix up EHCI startup synchronization + - RXRPC: Add missing select on CRYPTO + - KVM: VMX: Reset mmu context when entering real mode + - NET: random : secure_tcp_sequence_number should not assume + CONFIG_KTIME_SCALAR + - NET: Corrects a bug in ip_rt_acct_read() + - NETFILTER: Fix NULL pointer dereference in nf_nat_move_storage() + - netfilter: Fix kernel panic with REDIRECT target. + - IPV6: Restore IPv6 when MTU is big enough + - UNIX: EOF on non-blocking SOCK_SEQPACKET + - x86 setup: add a near jump to serialize %cr0 on 386/486 + - Fix synchronize_irq races with IRQ handler + - CRYPTO api: Fix potential race in crypto_remove_spawn + - TCP: Fix TCP header misalignment + - tmpfs: restore missing clear_highpage (CVE-2007-6417) + - TCP: MTUprobe: fix potential sk_send_head corruption + - NETFILTER: fix forgotten module release in xt_CONNMARK and xt_CONNSECMARK + - fb_ddc: fix DDC lines quirk + - VLAN: Fix nested VLAN transmit bug + - I4L: fix isdn_ioctl memory overrun vulnerability (CVE-2007-6151) + - isdn: avoid copying overly-long strings + - nf_nat: fix memset error + - esp_scsi: fix reset cleanup spinlock recursion + - libertas: properly account for queue commands + - KVM: Fix hang on uniprocessor + - USB: make the microtek driver and HAL cooperate + - TEXTSEARCH: Do not allow zero length patterns in the textsearch + infrastructure + - XFRM: Fix leak of expired xfrm_states + - NETFILTER: xt_TCPMSS: remove network triggerable WARN_ON + - BRIDGE: Lost call to br_fdb_fini() in br_init() error path + - DECNET: dn_nl_deladdr() almost always returns no error + - BRIDGE: Properly dereference the br_should_route_hook + - PKT_SCHED: Check subqueue status before calling hard_start_xmit + - Freezer: Fix APM emulation breakage + - XFS: Make xfsbufd threads freezable + - TCP: Problem bug with sysctl_tcp_congestion_control function + - wait_task_stopped(): pass correct exit_code to wait_noreap_copyout() + - KVM: x86 emulator: implement 'movnti mem, reg' + - TCP: illinois: Incorrect beta usage + - futex: fix for futex_wait signal stack corruption + - libata: kill spurious NCQ completion detection + - hrtimers: avoid overflow for large relative timeouts (CVE-2007-5966) + - Input: ALPS - add support for model found in Dell Vostro 1400 + (closes: #448818) + - PNP: increase the maximum number of resources + - sched: some proc entries are missed in sched_domain sys_ctl debug code + - ATM: [he] initialize lock and tasklet earlier + * Add stable release 2.6.23.11: + - BRIDGE: Section fix. + - Revert "Freezer: Fix APM emulation breakage" + * Backport fix for CVE-2007-5938 + - iwlwifi: fix possible NULL dereference in iwl_set_rate() + * Add stable release 2.6.23.12: + - Revert "PNP: increase the maximum number of resources" + * VM/Security: add security hook to do_brk (CVE-2007-6434) + * security: protect from stack expantion into low vm addresses + * [hppa]: Disable OCFS2, due build trouble. + + [ Aurelien Jarno ] + * [arm/versatile] Disable ACENIC and MYRI10GE as they are useless on this + platform. + * Add em28xx-dv100.patch to add support for Pinnacle Dazzle DVC 100. + + [ Bastian Blank ] + * Fix abi change in 2.6.23.10. + + -- maximilian attems Fri, 21 Dec 2007 11:47:55 +0100 + +linux-kbuild-2.6 (2.6.23-1) unstable; urgency=low + + * New upstream version. + * modpost: Support -s. + + -- Bastian Blank Wed, 05 Dec 2007 08:23:28 +0100 + +linux-2.6 (2.6.23-1) unstable; urgency=low + + * New upstream release (closes: #447682). + - r8169: fix confusion between hardware and IP header alignment + (closes: #452069). + + [ maximilian attems ] + * [ppc] Enable for powerpc config the ams (Apple Motion Sensor). + (closes: #426210) + * Add to linux-doc the missing toplevel text files. + (closes: #360876, #438697) + * Set CONFIG_BLK_DEV_IO_TRACE for blktrace(8) support. (closes: #418442) + * ipw2200: Enable IPW2200_RADIOTAP and IPW2200_PROMISCUOUS for optional + rtap interface. (closes: #432555) + * Enable in topconfig NF_CT_PROTO_UDPLITE, NETFILTER_XT_TARGET_TRACE, + NETFILTER_XT_MATCH_CONNLIMIT, NETFILTER_XT_MATCH_U32, SENSORS_ABITUGURU3, + SENSORS_LM93, SENSORS_DME1737, SENSORS_THMC50, DVB_USB_AF9005, + DVB_USB_AF9005_REMOTE, CRC7, I2C_TAOS_EVM, DS1682, SENSORS_TSL2550, + SPI_LM70_LLP, SPI_TLE62X0, W1_SLAVE_DS2760, TUNER_TEA5761, NET_9P, + DM_MULTIPATH_RDAC, NET_SCH_RR, EEPROM_93CX6, PPPOL2TP, CRYPTO_HW, UIO, + UIO_CIF, SND_CS5530, RTL8187, PC300TOO, TCG_TIS, SCSI_SAS_ATA, + PATA_MARVELL. + * [i386] Enable lguest. + * [amd64, i386] Enable VIDEO_OUTPUT_CONTROL, NETDEVICES_MULTIQUEUE. + * linux-image bugscript add cmdline. + * [amd64, i386, ia64]: Enable DMIID, ACPI_PROC_EVENT. + * Enable TCG_TPM various userspace accesses it. (closes: #439020) + * Add and enable IWLWIFI. + * Add git-ieee1394.patch for latest firewire fixes. + * [ipv6] Enable IPV6_MULTIPLE_TABLES, IPV6_SUBTREES. (closes: #441226) + * Add and enable E1000E. + * Add stable release 2.6.23.1: + - libata: sata_mv: more S/G fixes + + [ Martin Michlmayr ] + * [mips] Add a bcm1480 PCI build fix. + * Update Riku Voipio's Fintek F75375/SP driver to the latest version. + * [arm/iop32x] Set the fan on Thecus N2100 to full speed (Riku Voipio). + * [arm/iop32x] Remove the IPv6 and filesystem info from the config file + so we will get the values from the main config file. This should + enable NFSv4 and ip6tables support requested by Wouter Verhelst. + * [arm/iop32x] Remove even more options to receive the default options. + * [arm/ixp4xx] Remove a lot of options to receive the default options. + * [mips/r4k-ip22] Remove a lot of options to receive the default options. + This will enable ISCSI requested by Martin Zobel-Helas. + * [mips/r5k-ip32] Remove a lot of options to receive the default options. + This will enable PCI Ethernet devices requested by Giuseppe Sacco. + * [mipsel/r5k-cobalt] Remove a lot of options to receive the default + options. + * [mipsel/r5k-cobalt] Enable the modern Cobalt LEDs driver. + * [arm/iop32x] Enable Intel IOP ADMA support. + * [arm] Mark BCM43XX as broken on ARM. + * [mips/r4k-ip22] Disable EARLY PRINTK because it breaks serial console. + * [mips] Add some IP22 fixes from Thomas Bogendoerfer: + - Fix broken EISA interrupt setup by switching to generic i8259 + - Fix broken eeprom access by using __raw_readl/__raw_writel + + [ Bastian Blank ] + * Add unpriviledged only Xen support. + * [i386] Drop k7 images. + * Drop maybe IETF document. (closes: #423040) + * Drop drivers because of binary only firmwares: + - DABUSB driver + - COPS LocalTalk PC support + - Digi Intl. RightSwitch SE-X support + - 3Com 3C359 Token Link Velocity XL adapter support + - SMC ISA/MCA adapter support + - EMI 6|2m USB Audio interface support + - EMI 2|6 USB Audio interface support + - Computone IntelliPort Plus serial support + * Remove binary only firmwares for: + - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support + - Broadcom Tigon3 support + - USB Keyspan USA-xxx Serial Driver + - Korg 1212 IO + - ESS Allegro/Maestro3 + - Yamaha YMF724/740/744/754 + - Technotrend/Hauppauge Nova-USB devices + - YAM driver for AX.25 + - MyriCOM Gigabit Ethernet support + - PTI Qlogic, ISP Driver + - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x + - Madge Ambassador (Collage PCI 155 Server) + - PCA-200E support + - SBA-200E support + - Broadcom NetXtremeII support + * Disable now broken drivers: + - Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support + - USB Keyspan USA-xxx Serial Driver + - Technotrend/Hauppauge Nova-USB devices + - YAM driver for AX.25 + - MyriCOM Gigabit Ethernet support + - PTI Qlogic, ISP Driver + - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x + - Madge Ambassador (Collage PCI 155 Server) + - PCA-200E support + - SBA-200E support + - Broadcom NetXtremeII support + * Add -common to common header package names. + * Drop provides from common header packages. + * Update plain image type. + * Put only a config dump into linux-support. + + [ Aurelien Jarno ] + * [mips, mipsel] Add a 64-bit image (5kc-malta) for the MIPS Malta board. + (closes: #435677) + [sparc] Enable r8169 module on sparc64 and sparc64-smp flavours (closes: + #431977) + + [ Frederik Schüler ] + * Move all PATA options into the global config file, exept PATA_ARTOP + (arm/ixp4xx) and PATA_MPC52xx (powerpc). + * Move new global options into the global config file + * Clean up new amd64 options + + [ dann frazier ] + * [ia64] Re-enable various unintentionally disabled config options + * Enable hugetlbfs on i386, amd64, sparc64 and powerpc64. Closes: #450939 + + [ Bastian Blank ] + * Add stable release 2.6.23.2: + - BLOCK: Fix bad sharing of tag busy list on queues with shared tag maps + - fix tmpfs BUG and AOP_WRITEPAGE_ACTIVATE + - Fix compat futex hangs. (closes: #433187) + - sched: keep utime/stime monotonic + - fix the softlockup watchdog to actually work + - splice: fix double kunmap() in vmsplice copy path + - writeback: don't propagate AOP_WRITEPAGE_ACTIVATE + - SLUB: Fix memory leak by not reusing cpu_slab + - HOWTO: update ja_JP/HOWTO with latest changes + - fix param_sysfs_builtin name length check + - param_sysfs_builtin memchr argument fix + - Remove broken ptrace() special-case code from file mapping + - locks: fix possible infinite loop in posix deadlock detection + - lockdep: fix mismatched lockdep_depth/curr_chain_hash + * Add stable release 2.6.23.3: + - revert "x86_64: allocate sparsemem memmap above 4G" + - x86: fix TSC clock source calibration error + - x86 setup: sizeof() is unsigned, unbreak comparisons + - x86 setup: handle boot loaders which set up the stack incorrectly + - x86: fix global_flush_tlb() bug + - xfs: eagerly remove vmap mappings to avoid upsetting Xen + - xen: fix incorrect vcpu_register_vcpu_info hypercall argument + - xen: deal with stale cr3 values when unpinning pagetables + - xen: add batch completion callbacks + - UML - kill subprocesses on exit + - UML - stop using libc asm/user.h + - UML - Fix kernel vs libc symbols clash + - UML - Stop using libc asm/page.h + - POWERPC: Make sure to of_node_get() the result of pci_device_to_OF_node() + - POWERPC: Fix handling of stfiwx math emulation + - MIPS: R1: Fix hazard barriers to make kernels work on R2 also. + - MIPS: MT: Fix bug in multithreaded kernels. + - Fix sparc64 MAP_FIXED handling of framebuffer mmaps + - Fix sparc64 niagara optimized RAID xor asm + * Add stable release 2.6.23.4: + - mac80211: make ieee802_11_parse_elems return void + - mac80211: only honor IW_SCAN_THIS_ESSID in STA, IBSS, and AP modes + - mac80211: honor IW_SCAN_THIS_ESSID in siwscan ioctl + - mac80211: store SSID in sta_bss_list + - mac80211: store channel info in sta_bss_list + - mac80211: reorder association debug output + - ieee80211: fix TKIP QoS bug + - NETFILTER: nf_conntrack_tcp: fix connection reopening + - Fix netlink timeouts. + - Fix crypto_alloc_comp() error checking. + - Fix SET_VLAN_INGRESS_PRIORITY_CMD error return. + - Fix VLAN address syncing. + - Fix endianness bug in U32 classifier. + - Fix TEQL oops. + - Fix error returns in sys_socketpair() + - softmac: fix wext MLME request reason code endianness + - Fix kernel_accept() return handling. + - TCP: Fix size calculation in sk_stream_alloc_pskb + - Fix SKB_WITH_OVERHEAD calculations. + - Fix 9P protocol build + - Fix advertised packet scheduler timer resolution + - Add get_unaligned to ieee80211_get_radiotap_len + - mac80211: Improve sanity checks on injected packets + - mac80211: filter locally-originated multicast frames + * Add stable release 2.6.23.5: + - zd1211rw, fix oops when ejecting install media + - rtl8187: Fix more frag bit checking, rts duration calc + - ipw2100: send WEXT scan events + - zd1201: avoid null ptr access of skb->dev + - sky2: fix power settings on Yukon XL + - sky2: ethtool register reserved area blackout + - sky2: status ring race fix + - skge: XM PHY handling fixes + - Fix L2TP oopses. + - TG3: Fix performance regression on 5705. + - forcedeth: add MCP77 device IDs + - forcedeth msi bugfix + - ehea: 64K page kernel support fix + - libertas: fix endianness breakage + - libertas: more endianness breakage + * Add stable release 2.6.23.6: + - ACPI: suspend: Wrong order of GPE restore. + - ACPI: sleep: Fix GPE suspend cleanup + - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA, part 2 + - libata: backport ATA_FLAG_NO_SRST and ATA_FLAG_ASSUME_ATA + - libata: add HTS542525K9SA00 to NCQ blacklist + - radeon: set the address to access the GART table on the CPU side correctly + - Char: moxa, fix and optimise empty timer + - Char: rocket, fix dynamic_dev tty + - hptiop: avoid buffer overflow when returning sense data + - ide: Fix cs5535 driver accessing beyond array boundary + - ide: Fix siimage driver accessing beyond array boundary + - ide: Add ide_get_paired_drive() helper + - ide: fix serverworks.c UDMA regression + - i4l: fix random freezes with AVM B1 drivers + - i4l: Fix random hard freeze with AVM c4 card + - ALSA: hda-codec - Add array terminator for dmic in STAC codec + - USB: usbserial - fix potential deadlock between write() and IRQ + - USB: add URB_FREE_BUFFER to permissible flags + - USB: mutual exclusion for EHCI init and port resets + - usb-gadget-ether: prevent oops caused by error interrupt race + - USB: remove USB_QUIRK_NO_AUTOSUSPEND + - MSI: Use correct data offset for 32-bit MSI in read_msi_msg() + - md: raid5: fix clearing of biofill operations + - md: fix an unsigned compare to allow creation of bitmaps with v1.0 metadata + - dm: fix thaw_bdev + - dm delay: fix status + - libata: sync NCQ blacklist with upstream + - ALSA: hdsp - Fix zero division + - ALSA: emu10k1 - Fix memory corruption + - ALSA: Fix build error without CONFIG_HAS_DMA + - ALSA: fix selector unit bug affecting some USB speakerphones + - ALSA: hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs + - IB/mthca: Use mmiowb() to avoid firmware commands getting jumbled up + - IB/uverbs: Fix checking of userspace object ownership + - hwmon/lm87: Disable VID when it should be + - hwmon/lm87: Fix a division by zero + - hwmon/w83627hf: Don't assume bank 0 + - hwmon/w83627hf: Fix setting fan min right after driver load + - i915: fix vbl swap allocation size. + - POWERPC: Fix platinumfb framebuffer + * Add stable release 2.6.23.7: + - NFS: Fix a writeback race... + - ocfs2: fix write() performance regression + - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058) + * Add stable release 2.6.23.8: + - wait_task_stopped: Check p->exit_state instead of TASK_TRACED (CVE-2007-5500) + - TCP: Make sure write_queue_from does not begin with NULL ptr (CVE-2007-5501) + * Add stable release 2.6.23.9: + - ipw2200: batch non-user-requested scan result notifications + - USB: Nikon D40X unusual_devs entry + - USB: unusual_devs modification for Nikon D200 + - softlockup: use cpu_clock() instead of sched_clock() + - softlockup watchdog fixes and cleanups + - x86: fix freeze in x86_64 RTC update code in time_64.c + - ntp: fix typo that makes sync_cmos_clock erratic + - x86: return correct error code from child_rip in x86_64 entry.S + - x86: NX bit handling in change_page_attr() + - x86: mark read_crX() asm code as volatile + - x86: fix off-by-one in find_next_zero_string + - i386: avoid temporarily inconsistent pte-s + - libcrc32c: keep intermediate crc state in cpu order + - geode: Fix not inplace encryption + - Fix divide-by-zero in the 2.6.23 scheduler code + - ACPI: VIDEO: Adjust current level to closest available one. + - libata: sata_sis: use correct S/G table size + - sata_sis: fix SCR read breakage + - reiserfs: don't drop PG_dirty when releasing sub-page-sized dirty file + - x86: disable preemption in delay_tsc() + - dmaengine: fix broken device refcounting + - nfsd4: recheck for secure ports in fh_verify + - knfsd: fix spurious EINVAL errors on first access of new filesystem + - raid5: fix unending write sequence + - oProfile: oops when profile_pc() returns ~0LU + - drivers/video/ps3fb: fix memset size error + - i2c/eeprom: Hide Sony Vaio serial numbers + - i2c/eeprom: Recognize VGN as a valid Sony Vaio name prefix + - i2c-pasemi: Fix NACK detection + + -- maximilian attems Fri, 30 Nov 2007 11:40:09 +0100 + +linux-2.6 (2.6.22-6) unstable; urgency=low + + [ Martin Michlmayr ] + * [mips] Add IP22 (SGI Indy) patches from Thomas Bogendoerfer: + - Disable EARLY PRINTK because it breaks serial. + - fix wrong argument order. + - wrong check for second HPC. Closes: #448488 + + [ maximilian attems ] + * Add stable release 2.6.22.11 - minus ipv6 abi breaker: + - libertas: fix endianness breakage + - libertas: more endianness breakage + - Fix ROSE module unload oops. + - Add get_unaligned to ieee80211_get_radiotap_len + - Fix ipv6 redirect processing, leads to TAHI failures. + - i915: fix vbl swap allocation size. + - Fix ESP host instance numbering. + - Fix TCP MD5 on big-endian. + - Fix zero length socket write() semantics. + - Fix sys_ipc() SEMCTL on sparc64. + - Fix TCP initial sequence number selection. + - lockdep: fix mismatched lockdep_depth/curr_chain_hash + - V4L: ivtv: fix udma yuv bug + - Fix TCP's ->fastpath_cnt_hit handling. + - hwmon/lm87: Fix a division by zero + - hwmon/lm87: Disable VID when it should be + - hwmon/w83627hf: Fix setting fan min right after driver load + - hwmon/w83627hf: Don't assume bank 0 + - netdrvr: natsemi: Fix device removal bug + - Fix ieee80211 handling of bogus hdrlength field + - mac80211: filter locally-originated multicast frames + - POWERPC: Fix handling of stfiwx math emulation + - dm9601: Fix receive MTU + - firewire: fix unloading of fw-ohci while devices are attached + - Fix cls_u32 error return handling. + - ACPI: disable lower idle C-states across suspend/resume + * Add stable release 2.6.22.12-rc1: + - genirq: cleanup mismerge artifact + - genirq: suppress resend of level interrupts + - genirq: mark io_apic level interrupts to avoid resend + - IB/uverbs: Fix checking of userspace object ownership + - minixfs: limit minixfs printks on corrupted dir i_size (CVE-2006-6058) + - param_sysfs_builtin memchr argument fix + - x86: fix global_flush_tlb() bug + - dm snapshot: fix invalidation deadlock + - Revert "x86_64: allocate sparsemem memmap above 4G" + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.5. + - Ignore symbols from never to be merged patch. + + -- maximilian attems Sun, 4 Nov 2007 17:35:51 +0100 + +linux-2.6 (2.6.22-5) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.22.6: + - USB: allow retry on descriptor fetch errors + - PCI: lets kill the 'PCI hidden behind bridge' message + - Netfilter: Missing Kbuild entry for netfilter + - Fix soft-fp underflow handling. + - SPARC64: Fix sparc64 task stack traces. + - TCP: Do not autobind ports for TCP sockets + - DCCP: Fix DCCP GFP_KERNEL allocation in atomic context + - NET: Share correct feature code between bridging and bonding + - SNAP: Fix SNAP protocol header accesses. + - NET: Fix missing rcu unlock in __sock_create() + - IPv6: Invalid semicolon after if statement + - TCP: Fix TCP rate-halving on bidirectional flows. + - TCP: Fix TCP handling of SACK in bidirectional flows. + - uml: fix previous request size limit fix + - usb: add PRODUCT, TYPE to usb-interface events + - PPP: Fix PPP buffer sizing. + - ocfs2: Fix bad source start calculation during kernel writes + - signalfd: fix interaction with posix-timers + - signalfd: make it group-wide, fix posix-timers scheduling + - USB: fix DoS in pwc USB video driver + - sky2: don't clear phy power bits + - PCI: disable MSI on RS690 + - PCI: disable MSI on RD580 + - PCI: disable MSI on RX790 + - IPV6: Fix kernel panic while send SCTP data with IP fragments + - i386: fix lazy mode vmalloc synchronization for paravirt + * Set abi to 3. + * Add stable release 2.6.22.7: (CVE-2007-4573) + - x86_64: Zero extend all registers after ptrace in 32bit entry path. + * Add stable release 2.6.22.8: (CVE-2007-4571) + - Convert snd-page-alloc proc file to use seq_file + * Add stable release 2.6.22.9: + - 3w-9xxx: Fix dma mask setting + - Fix pktgen src_mac handling. + - nfs: fix oops re sysctls and V4 support + - DVB: get_dvb_firmware: update script for new location of tda10046 firmware + - afs: mntput called before dput + - disable sys_timerfd() + - Fix "Fix DAC960 driver on machines which don't support 64-bit DMA" + - futex_compat: fix list traversal bugs + - MTD: Initialise s_flags in get_sb_mtd_aux() + - Fix sparc64 v100 platform booting. + - Fix IPV6 DAD handling + - ext34: ensure do_split leaves enough free space in both blocks + - dir_index: error out instead of BUG on corrupt dx dirs + - Fix oops in vlan and bridging code + - V4L: ivtv: fix VIDIOC_S_FBUF: new OSD values were never set + - crypto: blkcipher_get_spot() handling of buffer at end of page + - Fix datagram recvmsg NULL iov handling regression. + - Handle snd_una in tcp_cwnd_down() + - Fix TCP DSACK cwnd handling + - JFFS2: fix write deadlock regression + - hwmon: End of I/O region off-by-one + - Fix debug regression in video/pwc + - splice: fix direct splice error handling + - Fix race with shared tag queue maps + - Fix ipv6 source address handling. + - POWERPC: Flush registers to proper task context + - bcm43xx: Fix cancellation of work queue crashes + - Fix DAC960 driver on machines which don't support 64-bit DMA + - DVB: get_dvb_firmware: update script for new location of sp8870 firmware + - USB: fix linked list insertion bugfix for usb core + - Correctly close old nfsd/lockd sockets. + - Fix IPSEC AH4 options handling + - setpgid(child) fails if the child was forked by sub-thread + - sigqueue_free: fix the race with collect_signal() + - Fix decnet device address listing. + - Fix inet_diag OOPS. + - Leases can be hidden by flocks + - kconfig: oldconfig shall not set symbols if it does not need to + - MTD: Makefile fix for mtdsuper + - firewire: fw-ohci: ignore failure of pci_set_power_state + (fix suspend regression) + - ieee1394: ohci1394: fix initialization if built non-modular + - Fix device address listing for ipv4. + - Fix tc_ematch kbuild + - V4L: cx88: Avoid a NULL pointer dereference during mpeg_open() + - DVB: b2c2-flexcop: fix Airstar HD5000 tuning regression + - fix realtek phy id in forcedeth + - rpc: fix garbage in printk in svc_tcp_accept() + - Fix IPV6 append OOPS. + - Fix ipv6 double-sock-release with MSG_CONFIRM + - ACPI: Validate XSDT, use RSDT if XSDT fails + * Update vserver patch to 2.2.0.4. + * Add stable release 2.6.22.10: + - i386: Use global flag to disable broken local apic timer on AMD CPUs. + - Fix timer_stats printout of events/sec + - libata: update drive blacklists + - i2c-algo-bit: Read block data bugfix + - scsi_transport_spi: fix domain validation failure from incorrect width + setting + - Fix SMP poweroff hangs + - Fix ppp_mppe kernel stack usage. + - sky2: reduce impact of watchdog timer + - sky2: fix VLAN receive processing + - sky2: fix transmit state on resume + - SELinux: clear parent death signal on SID transitions + - NLM: Fix a circular lock dependency in lockd + - NLM: Fix a memory leak in nlmsvc_testlock + + [ Martin Michlmayr ] + * [mips] Add a fix so qemu NE2000 will work again. + * [mipsel/r5k-cobalt] Enable MTD. + * [mips] Backport "Fix CONFIG_BUILD_ELF64 kernels with symbols in + CKSEG0" to fix crash on boot on IP32 (SGI O2). Closes: #444104. + + [ Steve Langasek ] + * Set CONFIG_MATHEMU=y on alpha, which is required for proper fp math on + at least ev4-ev56 systems. Closes: #411813. + * linux-image packages need to depend on a newer version of coreutils, + because of the use of readlink -q -m inherited from kernel-package. + Closes: #413311. + + [ Bastian Blank ] + * Fix tainted check in bug scripts. + + [ dann frazier ] + * [ia64] Re-enable various unintentionally disabled config options + + -- Maximilian Attems Thu, 11 Oct 2007 13:31:38 +0000 + +linux-2.6 (2.6.22-4) unstable; urgency=low + + [ dann frazier ] + * [hppa] Use generic compat_sys_getdents (closes: #431773) + + [ Martin Michlmayr ] + * [powerpc] Fix PS/2 keyboard detection on Pegasos (closes: #435378). + + [ Emanuele Rocca ] + * [sparc] Add patch to fix PCI config space accesses on sun4u. + * [sparc] Disable CONFIG_SCSI_SCAN_ASYNC. + + [ maximilian attems ] + * Add stable release 2.6.22.2: + - usb-serial: Fix edgeport regression on non-EPiC devices + - Missing header include in ipt_iprange.h + - drivers/video/macmodes.c:mac_find_mode() mustn't be __devinit + - Fix ipv6 tunnel endianness bug. + - aacraid: fix security hole + - USB: cdc-acm: fix sysfs attribute registration bug + - USB: fix warning caused by autosuspend counter going negative + - Fix sparc32 memset() + - Fix leak on /proc/lockdep_stats + - Fix leaks on /proc/{*/sched, sched_debug, timer_list, timer_stats} + - futex: pass nr_wake2 to futex_wake_op + - md: handle writes to broken raid10 arrays gracefully + - forcedeth bug fix: cicada phy + - forcedeth bug fix: vitesse phy + - forcedeth bug fix: realtek phy + - ACPI: dock: fix opps after dock driver fails to initialize + - pcmcia: give socket time to power down + - drm/i915: Fix i965 secured batchbuffer usage (CVE-2007-3851) + - Fix console write locking in sparc drivers. + - Sparc64 bootup assembler bug + - IPV6: /proc/net/anycast6 unbalanced inet6_dev refcnt + - make timerfd return a u64 and fix the __put_user + - Fix error queue socket lookup in ipv6 + - Input: lifebook - fix an oops on Panasonic CF-18 + - readahead: MIN_RA_PAGES/MAX_RA_PAGES macros + - V4L: Add check for valid control ID to v4l2_ctrl_next + - V4L: ivtv: fix broken VBI output support + - V4L: ivtv: fix DMA timeout when capturing VBI + another stream + - V4L: ivtv: Add locking to ensure stream setup is atomic + - V4L: wm8775/wm8739: Fix memory leak when unloading module + - do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY + - Include serial_reg.h with userspace headers (closes: #433755) + - TCP FRTO retransmit bug fix + - Fix rfkill IRQ flags. + - nfsd: fix possible read-ahead cache and export table corruption + - nfsd: fix possible oops on re-insertion of rpcsec_gss modules + - jbd commit: fix transaction dropping + - jbd2 commit: fix transaction dropping + - softmac: Fix ESSID problem + - uml: limit request size on COWed devices + - UML: exports for hostfs + - splice: fix double page unlock + - cfq-iosched: fix async queue behaviour + - cr_backlight_probe() allocates too little storage for struct cr_panel + - sx: switch subven and subid values + - hugetlb: fix race in alloc_fresh_huge_page() + - KVM: SVM: Reliably detect if SVM was disabled by BIOS + - dm io: fix another panic on large request + - md: raid10: fix use-after-free of bio + - fs: 9p/conv.c error path fix + - Fix sparc32 udelay() rounding errors. + - sony-laptop: fix bug in event handling + - eCryptfs: ecryptfs_setattr() bugfix + - Hangup TTY before releasing rfcomm_dev + - dm io: fix panic on large request + - dm raid1: fix status + - dm snapshot: permit invalid activation + - "ext4_ext_put_in_cache" uses __u32 to receive physical block number + - destroy_workqueue() can livelock + - USB: fix for ftdi_sio quirk handling + - Fix TC deadlock. + - Fix IPCOMP crashes. + - gen estimator timer unload race + - Netfilter: Fix logging regression + - Fix user struct leakage with locked IPC shem segment + - Fix reported task file values in sense data + - gen estimator deadlock fix + - Netpoll leak + - dm: disable barriers + - firewire: fw-sbp2: set correct maximum payload (fixes CardBus adapters) + - fw-ohci: fix "scheduling while atomic" + - firewire: fix memory leak of fw_request instances + - ieee1394: revert "sbp2: enforce 32bit DMA mapping" + - libata: add FUJITSU MHV2080BH to NCQ blacklist + - i386: HPET, check if the counter works + - CPU online file permission + - acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR + - Keep rfcomm_dev on the list until it is freed + - SCTP scope_id handling fix + - Fix ipv6 link down handling. + - Fix TCP IPV6 MD5 bug. + - sysfs: release mutex when kmalloc() failed in sysfs_open_file(). + - nf_conntrack: don't track locally generated special ICMP error + * Bump abi due to firewire, ivtv and xrfm changes. + * Add stable release 2.6.22.3: + - fix oops in __audit_signal_info() + - direct-io: fix error-path crashes + - powerpc: Fix size check for hugetlbfs + - stifb: detect cards in double buffer mode more reliably + - pata_atiixp: add SB700 PCI ID + - PPC: Revert "[POWERPC] Add 'mdio' to bus scan id list for platforms + with QE UEC" + - random: fix bound check ordering (CVE-2007-3105) + - softmac: Fix deadlock of wx_set_essid with assoc work + - PPC: Revert "[POWERPC] Don't complain if size-cells == 0 in prom_parse()" + - ata_piix: update map 10b for ich8m + - CPUFREQ: ondemand: fix tickless accounting and software coordination bug + - CPUFREQ: ondemand: add a check to avoid negative load calculation + * Add stable release 2.6.22.4: + - Reset current->pdeath_signal on SUID binary execution (CVE-2007-3848) + * Add stable release 2.6.22.5: + - x86_64: Check for .cfi_rel_offset in CFI probe + - x86_64: Change PMDS invocation to single macro + - i386: Handle P6s without performance counters in nmi watchdog + - revert "x86, serial: convert legacy COM ports to platform devices" + - ACPICA: Fixed possible corruption of global GPE list + - ACPICA: Clear reserved fields for incoming ACPI 1.0 FADTs + - i386: Fix double fault handler + - JFFS2 locking regression fix. + - r8169: avoid needless NAPI poll scheduling + - Linux 2.6.22.5 + - AVR32: Fix atomic_add_unless() and atomic_sub_unless() + - i386: allow debuggers to access the vsyscall page with compat vDSO + - hwmon: (smsc47m1) restore missing name attribute + - hwmon: fix w83781d temp sensor type setting + - Hibernation: do not try to mark invalid PFNs as nosave + - sky2: restore workarounds for lost interrupts + - sky2: carrier management + - sky2: check for more work before leaving NAPI + - sky2: check drop truncated packets + - forcedeth: fix random hang in forcedeth driver when using netconsole + - libata: add ATI SB700 device IDs to AHCI driver + + [ dann frazier ] + * [ia64] Restore config cleanup now that its safe to break the ABI + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.3. + + -- Bastian Blank Thu, 30 Aug 2007 20:19:44 +0200 + +linux-2.6 (2.6.22-3) unstable; urgency=low + + [ dann frazier ] + * [ia64] Config cleanup in 2.6.22-2 broke the ABI; revert most of it + for now (everything but the efivars and sym53c8xx modules) + + [ Martin Michlmayr ] + * [mipsel/r5k-cobalt] Fix a typo in the config file. + * [mipsel/4kc-malta] Update the config file, thanks Aurelien Jarno. + * [mipsel] Add patch from Yoichi Yuasa to fix IDE on Cobalt. + + -- Bastian Blank Sun, 29 Jul 2007 13:47:38 +0200 + +linux-2.6 (2.6.22-2) unstable; urgency=low + + [ Steve Langasek ] + * [alpha] request_irq-retval.patch: capture the return value of all + request_irq() calls in sys_titan.c to suppress the warning (and + build failure with -Werror); failures still aren't being handled, but + there's nothing that needs to be done -- or nothing that can be done + -- if these requests fail anyway. + + [ Christian T. Steigies ] + * Add module.lds to kernel headers (closes: #396220) + * Enable INPUT_UINPUT on mac + * Add 2.6.22 patches from linux-m68k CVS + + [ maximilian attems ] + * Add stable release 2.6.22.1: + - nf_conntrack_h323: add checking of out-of-range on choices' index values + (CVE-2007-3642) + + [ dann frazier ] + * [ia64] Re-enable various config options which were unintentionally + disabled somewhere between 2.6.21 and 2.6.22 + * [ia64] Re-enable vserver flavour - this was somehow lost when 2.6.22 + was merged from trunk to the sid branch + + [ Bastian Blank ] + * Update vserver patch to 2.2.0.3-rc1. + + -- Bastian Blank Mon, 23 Jul 2007 09:38:01 +0200 + +linux-kbuild-2.6 (2.6.22-1) unstable; urgency=low + + * New upstream version. + * Don't fail if no module is specified. + + -- Bastian Blank Tue, 17 Jul 2007 23:14:23 +0200 + +linux-2.6 (2.6.22-1) unstable; urgency=low + + [ Bastian Blank ] + * Drop asfs options. + * Drop linux-libc-headers references. + * Update vserver patch to 2.2.0-rc5. + + [ maximilian attems ] + * Fullfils policy 3.7.2.2. + * Add Sempron to the k7 image description (closes: #384737) + Thanks Robert Millan . + * [powerpc] Enable CONFIG_ADB_PMU_LED. + * [hppa] Disable a bunch of topconfig enabled fb devices. Thanks Frank + Lichtenheld for build fix. + + [ Christian T. Steigies ] + * Add module.lds to kernel headers + * Enable INPUT_UINPUT on mac + * Add 2.6.22 patches from linux-m68k CVS + + [ dann frazier ] + * Enable vserver flavour for ia64 (closes: #423232) + + -- Bastian Blank Sun, 15 Jul 2007 15:03:40 +0200 + +linux-2.6 (2.6.22~rc5-1~experimental.1) experimental; urgency=low + + [ Bastian Blank ] + * [powerpc]: Disable prep. + * [powerpc]: Disable apm emulation. + * Drop inactive members from Uploaders. + + [ maximilian attems ] + * Cleanup configs of old unused variables. + * Enable TCP_CONG_YEAH, TCP_CONG_ILLINOIS, NF_CONNTRACK_SANE, DM_DELAY, + GIGASET_M101, SATA_INIC162X, VIDEO_IVTV, USB_ZR364XX, INFINIBAND_CXGB3, + MLX4_INFINIBAND, SPI_AT25, MFD_SM501, DVB_USB_M920X, DVB_USB_GL861, + DVB_USB_AU6610, DVB_USB_OPERA1, SENSORS_AD7418, SENSORS_ADM1029, + SENSORS_F75375S, SENSORS_CORETEMP, SENSORS_MAX6650, SENSORS_APPLESMC, + I2C_SIMTEC, I2C_TINY_USB, SC92031, LIBERTAS_USB, RFKILL, RFKILL_INPUT, + MTD_UBI, SND_USB_CAIAQ, SND_USB_CAIAQ_INPUT, USB_BERRY_CHARGE, + RTC_DRV_MAX6900, SUNRPC_BIND34, SND_PORTMAN2X4, FB_VT8623, FUSION_LAN, + DISPLAY_SUPPORT, FB_ARK, FB_SM501 + and disable SCSI_ESP_CORE, SPI_SPIDEV, CRYPT_CRYPTD, SYSV68_PARTITION, + MOUSE_PS2_TOUCHKIT, INPUT_POLLDEV in topconfig. + * [amd64, i386]: Take care of the renaming acpi-ibm to thinkpad-acpi. + Enable KINGSUN_DONGLE, AF_RXRPC, RXKAD, MTD_NAND_PLATFORM, BLINK, PHANTOM, + BACKLIGHT_PROGEAR, FB_HECUBA, FB_LE80578, FB_CARILLO_RANCH. + Disable OSS_OBSOLETE. + * Enable WLAN_PRE80211 and WLAN_80211 on all archs with NET_RADIO enabled. + * Fix RTC_INTF_{DEV,SYSFS,PROC}=y where enabled modular. + * Enable new wirless stack mac80211 and improved wireless conf api. + * Enable new USB Touchscreen Driver on all configs with touchscreens. + * Enable the newly added crypto algorythm: fcrypt, pcbc and camellia. + * Unify CONFIG_TR to toplevel config, also enable new drivers 3C359 + and SMCTR. + * Enable the moved USB tablets config options where wacom is enabled. + * [i386] Enable driver for Crystalfontz 128x64 2-color LCD. + * [amd64] Enable KS0108 LCD controller. + * Enable the new firewire stack labeled to be more simple and robust. + * [i386] Enable VMI paravirtualized interface. + * [powerpc] Enable fb for IBM GXT4500P adaptor. + * [amd64] Enable timerstats too. + + [ Martin Michlmayr ] + * mipsel/r5k-cobalt: Use the new RTC system. + + [ dann frazier ] + * Add Xen licensing info to the copyright file. (closes: #368912) + + [ Gordon Farquharson ] + * arm: Mark CHELSIO_T3, NETXEN_NIC, BCM43XX, VIDEO_BT848, + DVB_B2C2_FLEXCOP, and DVB_BUDGET as broken on ARM. + * arm/ixp4xx: Add support for the new generic I2C GPIO driver on the + NSLU2 and the NAS100D. Thanks to Michael-Luke Jones and Rod Whitby. + * arm/ixp4xx: Update Artop PATA support patch for the NAS 100d. + + [ Christian T. Steigies ] + * m68k: Disable already included patches (611, 618, 630) + + -- Bastian Blank Tue, 19 Jun 2007 17:49:52 +0200 + +linux-2.6 (2.6.21-6) unstable; urgency=low + + * Add stable release 2.6.21.6: + - nf_conntrack_h323: add checking of out-of-range on choices' index values + (CVE-2007-3642) + * Update vserver patch to 2.2.0. + + -- Bastian Blank Tue, 10 Jul 2007 18:36:17 +0200 + +linux-2.6 (2.6.21-5) unstable; urgency=low + + [ Christian T. Steigies ] + * [m68k] Add atari isa and scsi fixes + + [ maximilian attems ] + * Add stable release 2.6.21.4: + - cpuset: prevent information leak in cpuset_tasks_read (CVE-2007-2875) + - random: fix error in entropy extraction (CVE-2007-2453 1 of 2) + - random: fix seeding with zero entropy (CVE-2007-2453 2 of 2) + - NETFILTER: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr + dereference (CVE-2007-2876) + * Add stable release 2.6.21.5: + - acpi: fix potential call to a freed memory section. + - USB: set the correct Interrupt interval in usb_bulk_msg + - i386: Fix K8/core2 oprofile on multiple CPUs + - ntfs_init_locked_inode(): fix array indexing + - ALSA: wm8750 typo fix + - neofb: Fix pseudo_palette array overrun in neofb_setcolreg + - e1000: disable polling before registering netdevice + - timer statistics: fix race + - x86: fix oprofile double free + - ALSA: usb-audio: explicitly match Logitech QuickCam + - zd1211rw: Add AL2230S RF support + - IPV4: Correct rp_filter help text. + - Fix AF_UNIX OOPS + - ICMP: Fix icmp_errors_use_inbound_ifaddr sysctl + - NET: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h + - SPARC64: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. + - SPARC64: Don't be picky about virtual-dma values on sun4v. + - SPARC64: Fix two bugs wrt. kernel 4MB TSB. + - cciss: fix pci_driver.shutdown while device is still active + - fix compat console unimap regression + - timer stats: speedups + - SPARC: Linux always started with 9600 8N1 + - pci_ids: update patch for Intel ICH9M + - PCI: quirk disable MSI on via vt3351 + - UML - Improve host PTRACE_SYSEMU check + - NET: parse ip:port strings correctly in in4_pton + - Char: cyclades, fix deadlock + - IPSEC: Fix panic when using inter address familiy IPsec on loopback. + - TCP: Use default 32768-61000 outgoing port range in all cases. + - TG3: Fix link problem on Dell's onboard 5906. + - fuse: fix mknod of regular file + - md: Avoid overflow in raid0 calculation with large components. + - md: Don't write more than is required of the last page of a bitmap + - make freezeable workqueues singlethread + - tty: fix leakage of -ERESTARTSYS to userland + - V4L/DVB (5593): Budget-ci: Fix tuning for TDM 1316 (160..200 MHz) + - Input: i8042 - fix AUX port detection with some chips + - SCSI: aacraid: Correct sa platform support. + (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1) + - BLUETOOTH: Fix locking in hci_sock_dev_event(). + - hpt366: don't check enablebits for HPT36x + - ieee1394: eth1394: bring back a parent device + - NET: Fix race condition about network device name allocation. + - ALSA: hda-intel - Probe additional slots only if necessary + - ALSA: hda-intel - Fix detection of audio codec on Toshiba A100 + - ahci: disable 64bit dma on sb600 + - i386: HPET, check if the counter works + - Ignore bogus ACPI info for offline CPUs + - NOHZ: Rate limit the local softirq pending warning output + - Prevent going idle with softirq pending + - Work around Dell E520 BIOS reboot bug + - NET: "wrong timeout value" in sk_wait_data() v2 + - IPV6 ROUTE: No longer handle ::/0 specially. + - x86_64: allocate sparsemem memmap above 4G + * Bump ABI to 2. + + [ Bastian Blank ] + * Back out ABI fixing changes. + * Update vserver patch to 2.2.0-rc3. + + -- Bastian Blank Fri, 22 Jun 2007 12:39:47 +0200 + +linux-2.6 (2.6.21-4) unstable; urgency=low + + * [powerpc] Fix mkvmlinuz support. + * [s390] Add exception handler for diagnose 224. + + -- Bastian Blank Sat, 26 May 2007 14:08:44 +0200 + +linux-2.6 (2.6.21-3) unstable; urgency=low + + [ Gordon Farquharson ] + * arm/ixp4xx: Add patch to set NSLU2 timer frequency. + + [ maximilian attems ] + * sparc64: enable USB_SERIAL. (closes: #412740) + * Apply stable 2.6.21.1. + * Add stable release 2.6.21.2: + - slob: fix page order calculation on not 4KB page + - libata-sff: Undo bug introduced with pci_iomap changes + - kbuild: fixdep segfault on pathological string-o-death + - IPMI: fix SI address space settings + - IPV6: Reverse sense of promisc tests in ip6_mc_input + - iop: fix iop_getttimeoffset + - iop13xx: fix i/o address translation + - arm: fix handling of svc mode undefined instructions + - CPUFREQ: powernow-k7: fix MHz rounding issue with perflib + - CPUFREQ: Support rev H AMD64s in powernow-k8 + - CPUFREQ: Correct revision mask for powernow-k8 + - JFS: Fix race waking up jfsIO kernel thread + - IPV6: Send ICMPv6 error on scope violations. + - SPARC64: Add missing cpus_empty() check in hypervisor xcall handling. + - SPARC64: Fix recursion in PROM tree building. + - SERIAL SUNHV: Add an ID string. + - SPARC64: Bump PROMINTR_MAX to 32. + - SPARC64: Be more resiliant with PCI I/O space regs. + - oom: fix constraint deadlock + - fix for bugzilla 8426: massive slowdown on SCSI CD/DVD drive connected to + mptspi driver + - x86_64 : Fix vgettimeofday() + - IPV6: Fix slab corruption running ip6sic + - IPSEC: Check validity of direction in xfrm_policy_byid + - CRYPTO: api: Read module pointer before freeing algorithm + - NET_SCHED: prio qdisc boundary condition + - reiserfs: suppress lockdep warning + - USB HID: hiddev - fix race between hiddev_send_event() and + hiddev_release() + - NETFILTER: {ip,nf}_nat_proto_gre: do not modify/corrupt GREv0 packets + through NAT + - fix leaky resv_huge_pages when cpuset is in use + - ACPI: Fix 2.6.21 boot regression on P4/HT + - TG3: Fix TSO bugs. + - TG3: Remove reset during MAC address changes. + - TG3: Update version and reldate. + - BNX2: Fix TSO problem with small MSS. + - BNX2: Block MII access when ifdown. + - BNX2: Save PCI state during suspend. + - BNX2: Update version and reldate. + - sis900: Allocate rx replacement buffer before rx operation + - knfsd: Avoid use of unitialised variables on error path when nfs exports. + - knfsd: rpc: fix server-side wrapping of krb5i replies + - md: Avoid a possibility that a read error can wrongly propagate through + - md/raid1 to a filesystem. + - fat: fix VFAT compat ioctls on 64-bit systems + - NETFILTER: {ip,nf}_conntrack: fix use-after-free in helper destroy + callback invocation + - ppp: Fix ppp_deflate issues with recent zlib_inflate changes + - NETPOLL: Fix TX queue overflow in trapped mode. + - NETPOLL: Remove CONFIG_NETPOLL_RX + - cxacru: Fix infinite loop when trying to cancel polling task + - TCP: zero out rx_opt in tcp_disconnect() + - ipv6: track device renames in snmp6 + - skge: default WOL should be magic only (rev2) + - skge: allow WOL except for known broken chips + - sky2: allow 88E8056 + - sky2: 88e8071 support not ready + - skge: crash on shutdown/suspend + - sky2: fix oops on shutdown + - udf: decrement correct link count in udf_rmdir + - ALSA: hda-codec - Fix resume of STAC92xx codecs + - sata_via: add missing PM hooks + - driver-core: don't free devt_attr till the device is released + - pci-quirks: disable MSI on RS400-200 and RS480 + - highres/dyntick: prevent xtime lock contention + - clocksource: fix resume logic + - smc911x: fix compilation breakage wjen debug is on + - SCTP: Fix sctp_getsockopt_local_addrs_old() to use local storage. + - SCTP: Correctly copy addresses in sctp_copy_laddrs + - SCTP: Prevent OOPS if hmac modules didn't load + - IPV6: Do no rely on skb->dst before it is assigned. + - IPV6 ROUTE: Assign rt6i_idev for ip6_{prohibit,blk_hole}_entry. + + [ Christian T. Steigies ] + * m68k: enable ATARI_SCSI and ATARI_ROM_ISA + + [ Bastian Blank ] + * Fix linux/version.h in linux-libc-dev. + * Make it possible to specifiy special CFLAGS. + * [hppa] Reenable. + * [hppa] Workaround hppa64 failure. + * [hppa] Fix debugging in lws syscalls. + * Fix abi change. + * Add stable release 2.6.21.3: + - [PATCH] GEODE-AES: Allow in-place operations [CVE-2007-2451] + + -- Bastian Blank Fri, 25 May 2007 10:57:48 +0200 + +linux-kbuild-2.6 (2.6.21-1) unstable; urgency=low + + * New upstream version. + + -- Bastian Blank Fri, 18 May 2007 23:45:14 +0200 + +linux-2.6 (2.6.21-2) unstable; urgency=low + + [ Christian T. Steigies ] + * m68k: fix atari scc patch + * m68k: install compressed vmlinuz images so the post-inst script can find it + + [ Steve Langasek ] + * [alpha] isa-mapping-support.patch: add isa_page_to_bus and + isa_bus_to_virt defines to complement the existing isa_virt_to_bus + define; untested, but these should all be straightforward on alpha and + defining them is certainly a better option for getting user feedback + than disabling the affected drivers. + + [ Bastian Blank ] + * [powerpc] Readd mkvmlinuz support. (closes: #419033) + * [sparc]: Disable sparc32 image. + * [hppa]: Temporary disable all images. + + -- Bastian Blank Fri, 18 May 2007 19:52:36 +0200 + +linux-2.6 (2.6.21-1) unstable; urgency=low + + [ maximilian attems ] + * New upstream release see http://kernelnewbies.org/Linux_2_6_21 + (closes: #423874) + * Disable CONFIG_IP_ROUTE_MULTIPATH_CACHED in topconfig. + * Enable CONFIG_IP6_NF_MATCH_MH, CONFIG_CHELSIO_T3, CONFIG_USB_NET_DM9601, + CONFIG_NETFILTER_XT_TARGET_TCPMSS, CONFIG_RTC_DRV_CMOS, + CONFIG_ASUS_LAPTOP, CONFIG_SONY_LAPTOP, CONFIG_DVB_TUNER_QT1010, + CONFIG_USB_IOWARRIOR, CONFIG_ATL1 in topconfig. + * [i386] Enable CONFIG_ACPI_BAY, CONFIG_X86_LONGHAUL, CONFIG_BLK_DEV_DELKIN, + CONFIG_BLK_DEV_IT8213, CONFIG_BLK_DEV_TC86C001, CONFIG_INPUT_ATLAS_BTNS, + CONFIG_SENSORS_ADM1029, CONFIG_FB_SVGALIB, CONFIG_FB_S3, + CONFIG_USB_KC2190, CONFIG_KS0108. + * Add stable release 2.6.21.1: + - IPV4: Fix OOPS'er added to netlink fib. + - IPV6: Fix for RT0 header ipv6 change. + * [i386] Enable CONFIG_NO_HZ, CONFIG_HIGH_RES_TIMERS for dynticks and true + high-resolution timers. + * [i386] Enable CONFIG_TIMER_STATS to collect stats about kernel/userspace + timer aka power usage (see powertop). (closes: #423694) + * [i386] Disable obsolete CONFIG_IRQBALANCE due to bad timer behaviour. + + [ Martin Michlmayr ] + * Add armel (arm with EABI) support. Thanks, Lennert Buytenhek and + Joey Hess. (closes: #410853) + * Mark CHELSIO_T3 as broken on ARM. + * Take arch/arm/tools/mach-types from current git to fix build failure + because MACH_TYPE_EP80219 is not defined. + * mips/sb1: Don't build CONFIG_ATA into the kernel. + * mips/sb1: Unset CONFIG_USB_{KBD,MOUSE} since the generic HID is used. + * arm/iop32x: Don't build CONFIG_ATA into the kernel. + * arm/ixp4xx: Enable more SATA drivers. + * arm/ixp4xx: Enable PATA_ARTOP which is needed by the nas100d. + * arm/ixp4xx: Set CONFIG_USB_EHCI_TT_NEWSCHED. + * mips/4kc-malta: Add an image for the MIPS Malta board. Thanks, + Aurelien Jarno. (closes: #421377) + + [ Emanuele Rocca ] + * sparc: Enable CONFIG_SCSI_QLOGIC_1280. (closes: #423177) + + [ Christian T. Steigies ] + * Add m68k patches for 2.6.21 + * Add type: plain to [image] in arch/m68k/defines to fix missing + Modules.symvers problem + + [ Steve Langasek ] + * Revert change to disable image building on alpha. + + [ Bastian Blank ] + * Update vserver patch to 2.2.0-rc1. + + -- Bastian Blank Wed, 16 May 2007 13:46:38 +0200 + +linux-2.6 (2.6.20-3) unstable; urgency=low + + [ Gordon Farquharson ] + * arm: Mark CONFIG_MTD_NAND_CAFE and CONFIG_NETXEN_NIC as broken to + fix FTBFS. + + [ Bastian Blank ] + * Disable new pata drivers. (closes: #419458) + * Disable pata in ata_piix. + + -- Bastian Blank Tue, 24 Apr 2007 09:54:44 +0200 + +linux-2.6 (2.6.20-2) unstable; urgency=low + + [ Bastian Blank ] + * Rename linux-libc-headers into linux-libc-dev. + * [mips] Drop sb1250 uart support. + * [alpha] Temporary disable alpha images. + * Add stable release 2.6.20.7: + - Linux 2.6.20.7 + - Update libata drive blacklist to the latest from 2.6.21 + - fix page leak during core dump + - revert "retries in ext4_prepare_write() violate ordering requirements" + - revert "retries in ext3_prepare_write() violate ordering requirements" + - libata: Clear tf before doing request sense (take 3) + - fix lba48 bug in libata fill_result_tf() + - ahci.c: walkaround for SB600 SATA internal error issue + - libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK + - softmac: avoid assert in ieee80211softmac_wx_get_rate + - knfsd: allow nfsd READDIR to return 64bit cookies + - Fix TCP slow_start_after_idle sysctl + - Fix tcindex classifier ABI borkage... + - Fix IPSEC replay window handling + - Fix TCP receiver side SWS handling. + - Fix scsi sense handling + - Fix length validation in rawv6_sendmsg() + - NETFILTER: ipt_CLUSTERIP: fix oops in checkentry function + - 8139too: RTNL and flush_scheduled_work deadlock + - Fix calculation for size of filemap_attr array in md/bitmap. + - HID: Do not discard truncated input reports + - DVB: pluto2: fix incorrect TSCR register setting + - DVB: tda10086: fix DiSEqC message length + - sky2: phy workarounds for Yukon EC-U A1 + - sky2: turn on clocks when doing resume + - sky2: turn carrier off when down + - skge: turn carrier off when down + - sky2: reliable recovery + - i386: fix file_read_actor() and pipe_read() for original i386 systems + - kbuild: fix dependency generation + + [ dann frazier ] + * [hppa] Add parisc arch patch from Kyle McMartin + * [hppa] Enable CONFIG_TULIP_MMIO (closes: #332962) + * [hppa] Disable ni52 driver, it doesn't build (and wouldn't work if it did) + + -- Bastian Blank Sun, 15 Apr 2007 16:04:16 +0200 + +linux-kbuild-2.6 (2.6.20-1) unstable; urgency=low + + * New upstream version. + * modpost: Support -w. + + -- Bastian Blank Thu, 12 Apr 2007 06:53:00 +0200 + +linux-2.6 (2.6.20-1) unstable; urgency=low + + [ Martin Michlmayr ] + * mipsel: Drop DECstation support (both r3k-kn02 and r4k-kn04). + * arm: Drop RiscPC (rpc) support. + * arm: Update configs for 2.6.19-rc6. + * arm: source drivers/ata/Kconfig so SATA can be enabled on ARM. + * arm/footbridge: Unset SATA. + * arm/s3c2410: Drop this flavour since no such device is supported + in debian-installer and the ARM build resources are limited. + + [ Sven Luther ] + * [powerpc] Added Genesi Efika support patch + + [ Bastian Blank ] + * Remove legacy pty support. (closes: #338404) + * Enable new scsi parts. + * powerpc: Enable ibmvscsis. + * Add stable release 2.6.20.1: + - Linux 2.6.20.1 + - [PATCH] Fix a free-wrong-pointer bug in nfs/acl server (CVE-2007-0772) + * Add stable release 2.6.20.2: + - Linux 2.6.20.2 + - IPV6: Handle np->opt being NULL in ipv6_getsockopt_sticky() [CVE-2007-1000] + - x86-64: survive having no irq mapping for a vector + - Fix buffer overflow in Omnikey CardMan 4040 driver (CVE-2007-0005) + - TCP: Fix minisock tcp_create_openreq_child() typo. + - gfs2: fix locking mistake + - ATA: convert GSI to irq on ia64 + - pktcdvd: Correctly set cmd_len field in pkt_generic_packet + - video/aty/mach64_ct.c: fix bogus delay loop + - revert "drivers/net/tulip/dmfe: support basic carrier detection" + - throttle_vm_writeout(): don't loop on GFP_NOFS and GFP_NOIO allocations + - fix section mismatch warning in lockdep + - ueagle-atm.c needs sched.h + - kvm: Fix asm constraint for lldt instruction + - lockdep: forward declare struct task_struct + - Char: specialix, isr have 2 params + - buffer: memorder fix + - kernel/time/clocksource.c needs struct task_struct on m68k + - m32r: build fix for processors without ISA_DSP_LEVEL2 + - hugetlb: preserve hugetlb pte dirty state + - enable mouse button 2+3 emulation for x86 macs + - v9fs_vfs_mkdir(): fix a double free + - ufs: restore back support of openstep + - Fix MTRR compat ioctl + - kexec: Fix CONFIG_SMP=n compilation V2 (ia64) + - NLM: Fix double free in __nlm_async_call + - RPM: fix double free in portmapper code + - Revert "[PATCH] LOG2: Alter get_order() so that it can make use of ilog2() on a constant" + - Backport of psmouse suspend/shutdown cleanups + - USB: usbnet driver bugfix + - sched: fix SMT scheduler bug + - tty_io: fix race in master pty close/slave pty close path + - forcedeth: disable msix + - export blk_recount_segments + - Fix reference counting (memory leak) problem in __nfulnl_send() and callers related to packet queueing. + - Fix anycast procfs device leak + - Don't add anycast reference to device multiple times + - Fix TCP MD5 locking. + - Fix %100 cpu spinning on sparc64 + - Fix skb data reallocation handling in IPSEC + - Fix xfrm_add_sa_expire() return value + - Fix interrupt probing on E450 sparc64 systems + - HID: fix possible double-free on error path in hid parser + - POWERPC: Fix performance monitor exception + - libata: add missing CONFIG_PM in LLDs + - libata: add missing PM callbacks + - bcm43xx: Fix assertion failures in interrupt handler + - mmc: Power quirk for ENE controllers + - UML - Fix 2.6.20 hang + - fix umask when noACL kernel meets extN tuned for ACLs + - sata_sil: ignore and clear spurious IRQs while executing commands by polling + - swsusp: Fix possible oops in userland interface + - Fix posix-cpu-timer breakage caused by stale p->last_ran value + - V4L: cx88-blackbird: allow usage of 376836 and 262144 sized firmware images + - V4L: fix cx25840 firmware loading + - DVB: digitv: open nxt6000 i2c_gate for TDED4 tuner handling + - DVB: cxusb: fix firmware patch for big endian systems + - V4L: pvrusb2: Handle larger cx2341x firmware images + - V4L: pvrusb2: Fix video corruption on stream start + - dvbdev: fix illegal re-usage of fileoperations struct + - md: Fix raid10 recovery problem. + - bcm43xx: fix for 4309 + - i386: Fix broken CONFIG_COMPAT_VDSO on i386 + - x86: Don't require the vDSO for handling a.out signals + - x86_64: Fix wrong gcc check in bitops.h + - sky2: transmit timeout deadlock + - sky2: dont flush good pause frames + - Fix oops in xfrm_audit_log() + - Prevent pseudo garbage in SYN's advertized window + - Fix IPX module unload + - Clear TCP segmentation offload state in ipt_REJECT + - Fix atmarp.h for userspace + - UHCI: fix port resume problem + - Fix recently introduced problem with shutting down a busy NFS server. + - Avoid using nfsd process pools on SMP machines. + - EHCI: turn off remote wakeup during shutdown + - IPV6: HASHTABLES: Use appropriate seed for caluculating ehash index. + - MTD: Fatal regression in drivers/mtd/redboot.c in 2.6.20 + - Kconfig: FAULT_INJECTION can be selected only if LOCKDEP is enabled. + - USB HID: Fix USB vendor and product IDs endianness for USB HID devices + - Fix null pointer dereference in appledisplay driver + - ieee1394: fix host device registering when nodemgr disabled + - ieee1394: video1394: DMA fix + - Fix compile error for e500 core based processors + - md: Avoid possible BUG_ON in md bitmap handling. + - Fix allocation failure handling in multicast + - Fix TCP FIN handling + - Fix ATM initcall ordering. + - Fix various bugs with aligned reads in RAID5. + - hda-intel - Don't try to probe invalid codecs + - usbaudio - Fix Oops with unconventional sample rates + - usbaudio - Fix Oops with broken usb descriptors + - USB: fix concurrent buffer access in the hub driver + - Missing critical phys_to_virt in lib/swiotlb.c + - AGP: intel-agp bugfix + - bcm43xx: Fix for oops on ampdu status + - bcm43xx: Fix for oops on resume + - ide: fix drive side 80c cable check + - Keys: Fix key serial number collision handling + - knfsd: Fix a race in closing NFSd connections. + - pata_amd: fix an obvious bug in cable detection + - prism54: correct assignment of DOT1XENABLE in WE-19 codepaths + - rtc-pcf8563: detect polarity of century bit automatically + - x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted + - ocfs2: ocfs2_link() journal credits update + * Update xen patch to changeset 48670 from fedora 2.6.20 branch. + * Support xen versions 3.0.4-1 and 3.0.3-1. + + [ Rod Whitby ] + * arm/ixp4xx: Enable PATA_ARTOP for the nas100d and dsmg600. + * arm/ixp4xx: Enable RTC for the nas100d + * Add nas100d Ethernet MAC setup support. + * Add temporary hack to get Artop PATA support going on the nas100d. + + [ maximilian attems ] + * i386: Enable kvm. + * Add stable release 2.6.20.3: + - Fix sparc64 device register probing + - Fix bug 7994 sleeping function called from invalid context + - Fix timewait jiffies + - Fix UDP header pointer after pskb_trim_rcsum() + - Fix compat_getsockopt + - bcm43xx: Fix problem with >1 GB RAM + - nfnetlink_log: fix NULL pointer dereference + - nfnetlink_log: fix possible NULL pointer dereference + - conntrack: fix {nf, ip}_ct_iterate_cleanup endless loops + - nf_conntrack/nf_nat: fix incorrect config ifdefs + - tcp conntrack: accept SYN|URG as valid + - nfnetlink_log: fix reference leak + - nfnetlink_log: fix use after free + - nf_conntrack: fix incorrect classification of IPv6 fragments as + ESTABLISHED + - nfnetlink_log: zero-terminate prefix + - nfnetlink_log: fix crash on bridged packet + - Fix callback bug in connector + - fix for bugzilla #7544 (keyspan USB-to-serial converter) + - ip6_route_me_harder should take into account mark + * Add myself to uploaders field, entry got lost after 2.6.16-2 + * Add stable release 2.6.20.4: + - fix deadlock in audit_log_task_context() + - EHCI: add delay to bus_resume before accessing ports + - Copy over mac_len when cloning an skb + - fix read past end of array in md/linear.c + - oom fix: prevent oom from killing a process with children/sibling unkillable + - Fix sparc64 hugepage bugs + - Fix page allocation debugging on sparc64 + - Fix niagara memory corruption + - Input: i8042 - really suppress ACK/NAK during panic blink + - Input: i8042 - fix AUX IRQ delivery check + - Input: i8042 - another attempt to fix AUX delivery checks + - Fix rtm_to_ifaddr() error return. + - r8169: fix a race between PCI probe and dev_open + - futex: PI state locking fix + - adjust legacy IDE resource setting (v2) + - UML - arch_prctl should set thread fs + - gdth: fix oops in gdth_copy_cmd() + - Fix extraneous IPSEC larval SA creation + - IA64: fix NULL pointer in ia64/irq_chip-mask/unmask function + - st: fix Tape dies if wrong block size used, bug 7919 + - Fix ipv6 flow label inheritance + - NETFILTER: nfnetlink_log: fix reference counting + - mm: fix madvise infinine loop + - Fix another NULL pointer deref in ipv6_sockglue.c + - NetLabel: Verify sensitivity level has a valid CIPSO mapping + - Fix GFP_KERNEL with preemption disabled in fib_trie + - IrDA: irttp_dup spin_lock initialisation + - hda-intel - Fix codec probe with ATI controllers + - hrtimer: prevent overrun DoS in hrtimer_forward() + - fix MTIME_SEC_MAX on 32-bit + - nfs: nfs_getattr() can't call nfs_sync_mapping_range() for non-regular files + - dio: invalidate clean pages before dio write + - initialise pi_lock if CONFIG_RT_MUTEXES=N + * Add stable release 2.6.20.5: + - FRA_{DST,SRC} are le16 for decnet + - CIFS: reset mode when client notices that ATTR_READONLY is no longer set + - ide: clear bmdma status in ide_intr() for ICHx controllers (revised #4) + - ide: remove clearing bmdma status from cdrom_decode_status() (rev #4) + - NET: Fix sock_attach_fd() failure in sys_accept() + - DCCP: Fix exploitable hole in DCCP socket options + - ide: revert "ide: fix drive side 80c cable check, take 2" for now + - generic_serial: fix decoding of baud rate + - IPV6: Fix ipv6 round-robin locking. + - VIDEO: Fix FFB DAC revision probing + - PPP: Fix PPP skb leak + - V4L: msp_attach must return 0 if no msp3400 was found. + - CRYPTO: api: scatterwalk_copychunks() fails to advance through scatterlist + - APPLETALK: Fix a remotely triggerable crash (CVE-2007-1357) + - UML - fix epoll + - UML - host VDSO fix + - UML - Fix static linking + - UML - use correct register file size everywhere + - libata: sata_mv: don't touch reserved bits in EDMA config register + - libata: sata_mv: Fix 50xx irq mask + - libata bugfix: HDIO_DRIVE_TASK + - V4L: Fix SECAM handling on saa7115 + - DVB: fix nxt200x rf input switching + - SPARC: Fix sparc builds with gcc-4.2.x + - V4L: saa7146: Fix allocation of clipping memory + - uml: fix unreasonably long udelay + - NET: Fix packet classidier NULL pointer OOPS + - NET_SCHED: Fix ingress qdisc locking. + - sata_nv: delay on switching between NCQ and non-NCQ commands + - dvb-core: fix several locking related problems + - ieee1394: dv1394: fix CardBus card ejection + - CIFS: Allow reset of file to ATTR_NORMAL when archive bit not set + - jmicron: make ide jmicron driver play nice with libata ones + - libata: clear TF before IDENTIFYing + - NET: Fix FIB rules compatability + - DVB: isl6421: don't reference freed memory + - V4L: radio: Fix error in Kbuild file + - i2o: block IO errors on i2o disk + * Add stable release 2.6.20.6: + - CRYPTO api: Use the right value when advancing scatterwalk_copychunks + - uml: fix static linking for real + + [ Gordon Farquharson ] + * Disable broken config options on ARM. + + [ Frederik Schüler ] + * Disable NAPI on forcedeth, it is broken. + + [ dann frazier ] + * Hardcode the output of the scripts under arch/ia64/scripts as executed + in an etch environment so that we can build out of tree modules correctly + (re-add; patch seems to have been dropped during a merge.) + See: #392592 + * Allow '.' and '+' in the target dist field of the changelog. dpkg has + supported this since 1.13.20, see #361171. + + -- Bastian Blank Mon, 09 Apr 2007 19:21:52 +0200 + +linux-2.6 (2.6.18.dfsg.1-10) unstable; urgency=low + + [ maximilian attems ] + * Add patches out of stable queue 2.6.18 + - [amd64] Don't leak NT bit into next task (CVE-2006-5755) + - IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G + - SCSI: add missing cdb clearing in scsi_execute() + * Xen postinst: Use takeover for update-initramfs. Makes postinst idempotent. + On creation it should always overwrite. (closes: #401183) + * Hand-picked from stable release 2.6.16.38: + - i2c-viapro: Add support for the VT8237A and VT8251 + - PCI: irq: irq and pci_ids patch for Intel ICH9 + - i2c-i801: SMBus patch for Intel ICH9 + - fix the UML compilation + - drm: allow detection of new VIA chipsets + - drm: Add the P4VM800PRO PCI ID. + - rio: typo in bitwise AND expression. + - i2c-mv64xxx: Fix random oops at boot + - i2c: fix broken ds1337 initialization + - [SUNKBD]: Fix sunkbd_enable(sunkbd, 0); obvious. + - Call init_timer() for ISDN PPP CCP reset state timer (CVE-2006-5749) + - V4L: cx88: Fix leadtek_eeprom tagging + - SPI/MTD: mtd_dataflash oops prevention + - grow_buffers() infinite loop fix (CVE-2006-5757/CVE-2006-6060) + - corrupted cramfs filesystems cause kernel oops (CVE-2006-5823) + - ext2: skip pages past number of blocks in ext2_find_entry + (CVE-2006-6054) + - handle ext3 directory corruption better (CVE-2006-6053) + - hfs_fill_super returns success even if no root inode (CVE-2006-6056) + backout previous fix, was not complete. + - Fix for shmem_truncate_range() BUG_ON() + - ebtables: check struct type before computing gap + - [IPV4/IPV6]: Fix inet{,6} device initialization order. + - [IPV6] Fix joining all-node multicast group. + - [SOUND] Sparc CS4231: Use 64 for period_bytes_min + * [PKTGEN]: Convert to kthread API. Thanks David Miller for patch. + * [IDE] Add driver for Jmicron JMB36x devices by Alan Cox. + Enable jmicron on i386 and amd64 archs. + * Hand-picked from stable release 2.6.16.39: + - atiixp: hang fix + - V4L/DVB: Flexcop-usb: fix debug printk + - V4L/DVB: Fix uninitialised variable in dvb_frontend_swzigzag + - read_zero_pagealigned() locking fix + - adfs: fix filename handling + - sparc32: add offset in pci_map_sg() + - cdrom: set default timeout to 7 seconds + - [SCSI] qla1280 command timeout + - [SCSI] qla1280 bus reset typo + - [Bluetooth] Check if DLC is still attached to the TTY + - [Bluetooth] Fix uninitialized return value for RFCOMM sendmsg() + - [Bluetooth] Return EINPROGRESS for non-blocking socket calls + - [Bluetooth] Handle command complete event for exit periodic inquiry + - [Bluetooth] Fix compat ioctl for BNEP, CMTP and HIDP + - [Bluetooth] Add locking for bt_proto array manipulation + - i386: fix CPU hotplug with 2GB VMSPLIT + + [ dann frazier ] + * Fix raid1 recovery (closes: #406181) + + [ Jurij Smakov ] + * Add dtlb-prot-bug-niagara.patch by David Miller, fixing the bug in the + Niagara's DTLB-PROT trap. + + [ Bastian Blank ] + * i386: Add amd64 image. (closes: #379090) + + -- Bastian Blank Fri, 2 Feb 2007 12:50:35 +0100 + +linux-2.6 (2.6.18.dfsg.1-9) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/iop32x: Enable CONFIG_IP_NF_CONNTRACK_EVENTS and _NETLINK. + * arm/ixp4xx: Enable some more I2C sensor modules. + * arm/ixp4xx: Enable CONFIG_USB_NET_RNDIS_HOST. + * arm/footbridge: Enable CONFIG_NATSEMI. + * Revert mm/msync patches because they cause filesystem corruption + (closes: #401006, #401980, #402707) ... + * ... and add an alternative msync patch from Hugh Dickins that + doesn't depend on the mm changes (closes: #394392). + * mips: provide pci_get_legacy_ide_irq needed by some IDE drivers + (see #404950). + * arm: Implement flush_anon_page(), which is needed for FUSE + (closes: #402876) and possibly dm-crypt/LUKS (see #403426). + * arm: Turn off PCI burst on the Cyber2010, otherwise X11 on + Netwinder will crash. + * arm/iop32x: Enable CONFIG_IEEE80211_SOFTMAC and drivers based + on it. + * arm/ixp4xx: Upgrade to version 0.3.1 of the IXP4xx NPE Ethernet + driver. This version fixes stuck connections, e.g. with scp and + NFS (closes: #404447). + * arm/ixp4xx: Enable CONFIG_VIDEO_CPIA_USB. + * arm/ixp4xx: Enable CONFIG_ISCSI_TCP. + * arm/iop32x: Likewise. + + [ Bastian Blank ] + * Bump ABI to 4. + * Update vserver patch to 2.0.2.2-rc9. (closes: #402743, #403790) + * Update xen patch to changeset 36186 from Fedora 2.6.18 branch. + * i386/xen: Build only the pae version. (closes: #390862) + * hppa: Override host type when necessary. + * Fix tg3 reset. (closes: #405085) + + [ dann frazier ] + * Fix potential fragmentation attacks in ip6_tables (CVE-2006-4572) + * Backport a number of fixes for the cciss driver + - Fix a bug with 1TB disks caused by converting total_size to an int + - Claim devices that are of the HP RAID class and have a valid cciss sig + - Make NR_CMDS a per-controller define - most can do 1024 commands, but + the E200 family can only support 128 + - Change the SSID on the E500 as a workaround for a firmware bug + - Disable prefetch on the P600 controller. An ASIC bug may result in + prefetching beyond the end of physical memory + - Increase blk_queue_max_sectors from 512 to 2048 to increase performance + - Map out more memor for the PCI config table, required to reach offset + 0x214 to disable DMA on the P600 + - Set a default raid level on a volume that either does not support + reading the geometry or reports an invalid geometry for whatever reason + to avoid problems with buggy firmware + - Revert change that replaed XFER_READ/XFER_WRITE macros with + h->cciss_read/h->cciss_write that caused command timeouts on older + controllers on ia32 (closes: #402787) + * Fix mincore hang (CVE-2006-4814) + * ia64: turn on IOC4 modules for SGI Altix systems. Thanks to Stephane Larose + for suggesting this. + * Add versioned build dep on findutils to make sure the system find command + supports the -execdir action (closes: #405150) + * Hardcode the output of the scripts under arch/ia64/scripts as executed + in an etch environment so that we can build out of tree modules correctly + (closes: #392592) + * Update unusual_devs entry for ipod to fix an eject issue (closes: #406124) + * Re-add verify_pmtmr_rate, resolving problems seen on older K6 ASUS + boards where the ACPI PM timer runs too fast (closes: #394753) + * Avoid condition where /proc/swaps header may not be printed + (closes: #292318) + * [hppa] disable XFS until it works (closes: #350482) + + [ Norbert Tretkowski ] + * libata: handle 0xff status properly. (closes: #391867) + * alpha: enabled CONFIG_SCSI_ARCMSR. (closes: #401187) + * removed BROKEN_ON_SMP dependency from I2C_ELEKTOR. (closes: #402253) + + [ Christian T. Steigies ] + * m68k/atari: enable keyboard, mouse and fb drivers + * m68k/atari: fixes for ethernec and video driver by Michael Schmitz + * m68k/atari: fixes for scsi driver by Michael Schmitz + * m68k/mac: fixes for mace and cuda driver by Finn Thain + * m68k/atari: fixes for ide driver by Michael Schmitz + * m68k/atari: fixes for ide driver by Michael Schmitz + * m68k/atari: fixes for ethernec and atakeyb driver by Michael Schmitz, build ethernec as module + * m68k/mac: fixes for mace and adb driver by Finn Thain + + [ maximilian attems ] + * Add stable release 2.6.18.6: + - EBTABLES: Fix wraparounds in ebt_entries verification. + - EBTABLES: Verify that ebt_entries have zero ->distinguisher. + - EBTABLES: Deal with the worst-case behaviour in loop checks. + - EBTABLES: Prevent wraparounds in checks for entry components' sizes. + - skip data conversion in compat_sys_mount when data_page is NULL + - bonding: incorrect bonding state reported via ioctl + - x86-64: Mark rdtsc as sync only for netburst, not for core2 + (closes: #406767) + - dm crypt: Fix data corruption with dm-crypt over RAID5 (closes: #402812) + - forcedeth: Disable INTx when enabling MSI in forcedeth + - PKT_SCHED act_gact: division by zero + - XFRM: Use output device disable_xfrm for forwarded packets + - IPSEC: Fix inetpeer leak in ipv4 xfrm dst entries. + - V4L: Fix broken TUNER_LG_NTSC_TAPE radio support + - m32r: make userspace headers platform-independent + - IrDA: Incorrect TTP header reservation + - SUNHME: Fix for sunhme failures on x86 + - Bluetooth: Add packet size checks for CAPI messages (CVE-2006-6106) + - softmac: remove netif_tx_disable when scanning + - DVB: lgdt330x: fix signal / lock status detection bug + - dm snapshot: fix freeing pending exception + - NET_SCHED: policer: restore compatibility with old iproute binaries + - NETFILTER: ip_tables: revision support for compat code + - ARM: Add sys_*at syscalls + - ieee1394: ohci1394: add PPC_PMAC platform code to driver probe + - softirq: remove BUG_ONs which can incorrectly trigger + * Hand-picked from stable release 2.6.16.30: + - [PPPOE]: Advertise PPPoE MTU + * Hand-picked from stable release 2.6.16.31: + - [NETFILTER]: Fix ip6_tables extension header bypass bug (CVE-2006-4572) + - fix RARP ic_servaddr breakage + * Hand-picked from stable release 2.6.16.32: + - drivers/telephony/ixj: fix an array overrun + - flush D-cache in failure path + * Hand-picked from stable release 2.6.16.33: + - Add new PHY to sis900 supported list + - ipmi_si_intf.c: fix "&& 0xff" typos + - drivers/scsi/psi240i.c: fix an array overrun + * Hand-picked from stable release 2.6.16.34: + - [IPX]: Annotate and fix IPX checksum + - [IGMP]: Fix IGMPV3_EXP() normalization bit shift value. + * Hand-picked from stable release 2.6.16.35: + - sgiioc4: Disable module unload + - Fix a masking bug in the 6pack driver. + - drivers/usb/input/ati_remote.c: fix cut'n'paste error + - proper flags type of spin_lock_irqsave() + * Hand-picked from stable release 2.6.16.37: + - [CRYPTO] sha512: Fix sha384 block size + - [SCSI] gdth: Fix && typos + - Fix SUNRPC wakeup/execute race condition + * Enable DEBUG_FS for usbmon in generic config. Don't disable it on alpha, + amd64, hppa and ia64. (closes: 378542) + * Backport a number of upstream fixes for the r8169 driver, needed for + network performance (closes: 388870, 400524) + - r8169: more alignment for the 0x8168 + - r8169: phy program update + - r8169: more magic during initialization of the hardware + - r8169: perform a PHY reset before any other operation at boot time + - r8169: Fix iteration variable sign + - r8169: remove extraneous Cmd{Tx/Rx}Enb write + * sound: hda: detect ALC883 on MSI K9A Platinum motherboards (MS-7280) + patch from Leonard Norrgard + * tulip: Add i386 specific patch to remove duplicate pci ids. + Thanks Jurij Smakov (closes: #334104, #405203) + * amd64, i386: Disable SK98LIN as SKGE is the modern capable driver. + (closes: 405196) + * Backout net-bcm43xx_netdev_watchdog.patch and push 2.6.18.2 fix. + (closes: 402475) + + [ Jurij Smakov ] + * Add bugfix/sparc/isa-dev-no-reg.patch to make sure that + isa_dev_get_resource() can deal with devices which do not have a 'reg' + PROM property. Failure to handle such devices properly resulted in an + oops during boot on Netra X1. Thanks to Richard Mortimer for debugging + and patch. (closes: #404216) + * Add bugfix/sparc/ehci-hub-contol-alignment.patch to prevent unaligned + memory accesses in ehci-hub-control() by adding an alignment attribute + to the tbuf array declaration. Thanks to David Miller for the patch. + + [ Sven Luther ] + * [powerpc] Enable CONFIG_PMAC_BACKLIGHT_LEGACY (Closes: #407671). + + -- Bastian Blank Wed, 24 Jan 2007 13:21:51 +0100 + +linux-2.6 (2.6.18-8) unstable; urgency=low + + * Fix relations in the generated control file. (closes: #400544) + * Add stable release 2.6.18.4: + - bridge: fix possible overflow in get_fdb_entries (CVE-2006-5751) + * Add stable release 2.6.18.5: + - pcmcia: fix 'rmmod pcmcia' with unbound devices + - BLUETOOTH: Fix unaligned access in hci_send_to_sock. + - alpha: Fix ALPHA_EV56 dependencies typo + - TG3: Add missing unlock in tg3_open() error path. + - softmac: fix a slab corruption in WEP restricted key association + - AGP: Allocate AGP pages with GFP_DMA32 by default + - V4L: Do not enable VIDEO_V4L2 unconditionally + - bcm43xx: Drain TX status before starting IRQs + - fuse: fix Oops in lookup + - UDP: Make udp_encap_rcv use pskb_may_pull + - NETFILTER: Missing check for CAP_NET_ADMIN in iptables compat layer + - NETFILTER: ip_tables: compat error way cleanup + - NETFILTER: ip_tables: fix module refcount leaks in compat error paths + - NETFILTER: Missed and reordered checks in {arp,ip,ip6}_tables + - NETFILTER: arp_tables: missing unregistration on module unload + - NETFILTER: Kconfig: fix xt_physdev dependencies + - NETFILTER: xt_CONNSECMARK: fix Kconfig dependencies + - NETFILTER: H.323 conntrack: fix crash with CONFIG_IP_NF_CT_ACCT + - IA64: bte_unaligned_copy() transfers one extra cache line. + - x86 microcode: don't check the size + - scsi: clear garbage after CDBs on SG_IO + - IPV6: Fix address/interface handling in UDP and DCCP, according to the scoping architecture. + * Revert abi changing patch from 2.6.18.5. + + -- Bastian Blank Sun, 10 Dec 2006 17:51:53 +0100 + +linux-2.6 (2.6.18-7) unstable; urgency=low + + [ Bastian Blank ] + * Emit conflict lines for initramfs generators. (closes: #400305) + * Update vserver patch to 2.0.2.2-rc8. + * s390: Add patch to fix posix types. + + [ Martin Michlmayr ] + * r8169: Add an option to ignore parity errors. + * r8169: Ignore parity errors on the Thecus N2100. + * rtc: Add patch from Riku Voipio to get RS5C372 going on the N2100. + * arm/iop32x: Build RS5C372 support into the kernel. + + [ maximilian attems ] + * hfs: Fix up error handling in HFS. (MOKB-14-11-2006) + * sata: Avoid null pointer dereference in SATA Promise. + * cifs: Set CIFS preferred IO size. + + [ Jurij Smakov ] + * Add bugfix/sunhme-pci-enable.patch, fixing the failure of sunhme + driver on x86/PCI hosts due to missing pci_enable_device() and + pci_set_master() calls, lost during code refactoring upstream. + (closes: #397460) + + -- Bastian Blank Mon, 4 Dec 2006 15:20:30 +0100 + +linux-2.6 (2.6.18-6) unstable; urgency=low + + [ maximilian attems ] + * Enable the new ACT modules globally. They were already set for amd64, hppa + and mips/mipsel - needed by newer iproute2. (closes: #395882, #398172) + * Fix msync() for LSB 3.1 compliance, backport fedora patches from 2.6.19 + - mm: tracking shared dirty pages + - mm: balance dirty pages + - mm: optimize the new mprotect() code a bit + - mm: small cleanup of install_page() + - mm: fixup do_wp_page() + - mm: msync() cleanup (closes: #394392) + * [amd64,i386] Enable CONFIG_USB_APPLETOUCH=m (closes: #382298) + * Add stable release 2.6.18.3: + - x86_64: Fix FPU corruption + - e1000: Fix regression: garbled stats and irq allocation during swsusp + - POWERPC: Make alignment exception always check exception table + - usbtouchscreen: use endpoint address from endpoint descriptor + - fix via586 irq routing for pirq 5 + - init_reap_node() initialization fix + - CPUFREQ: Make acpi-cpufreq unsticky again. + - SPARC64: Fix futex_atomic_cmpxchg_inatomic implementation. + - SPARC: Fix missed bump of NR_SYSCALLS. + - NET: __alloc_pages() failures reported due to fragmentation + - pci: don't try to remove sysfs files before they are setup. + - fix UFS superblock alignment issues + - NET: Set truesize in pskb_copy + - block: Fix bad data direction in SG_IO (closes: #394690) + - cpqarray: fix iostat + - cciss: fix iostat + - Char: isicom, fix close bug + - TCP: Don't use highmem in tcp hash size calculation. + - S390: user readable uninitialised kernel memory, take 2. + - correct keymapping on Powerbook built-in USB ISO keyboards + - USB: failure in usblp's error path + - Input: psmouse - fix attribute access on 64-bit systems + - Fix sys_move_pages when a NULL node list is passed. + - CIFS: report rename failure when target file is locked by Windows + - CIFS: New POSIX locking code not setting rc properly to zero on successful + - Patch for nvidia divide by zero error for 7600 pci-express card + (maybe fixes 398258) + - ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS + + [ Steve Langasek ] + * [alpha] new titan-video patch, for compatibility with TITAN and similar + systems with non-standard VGA hose configs + * [alpha] bugfix for srm_env module from upstream (Jan-Benedict Glaw), + makes the module compatible with the current /proc interface so that + reads no longer return EFAULT. (closes: #353079) + * Bump ABI to 3 for the msync fixes above. + + [ Martin Michlmayr ] + * arm: Set CONFIG_BINFMT_MISC=m + * arm/ixp4xx: Set CONFIG_ATM=m (and related modules) so CONFIG_USB_ATM has + an effect. + * arm/iop32x: Likewise. + * arm/s3c2410: Unset CONFIG_PM_LEGACY. + * arm/versatile: Fix Versatile PCI config byte accesses + * arm/ixp4xx: Swap the disk 1 and disk 2 LED definitions so they're right. + * mipsel/r5k-cobalt: Unset CONFIG_SCSI_SYM53C8XX_2 because the timeout is + just too long. + * arm/ixp4xx: Enable more V4L USB devices. + + [ dann frazier ] + * Backport various SCTP changesets from 2.6.19, recommended by Vlad Yasevich + (closes: #397946) + * Add a "Scope of security support" section to README.Debian, recommended + by Moritz Muehlenhoff + + [ Thiemo Seufer ] + * Enable raid456 for mips/mipsel qemu kernel. + + [ dann frazier ] + * The scope of the USR-61S2B unusual_dev entry was tightened, but too + strictly. Loosen it to apply to additional devices with a smaller bcd. + (closes: #396375) + + [ Sven Luther ] + * Added support for TI ez430 development tool ID in ti_usb. + Thanks to Oleg Verych for providing the patch. + + [ Christian T. Steigies ] + * Added support for Atari EtherNEC, Aranym, video, keyboard, mouse, and serial + by Michael Schmitz + + [ Bastian Blank ] + * [i386] Reenable AVM isdn card modules. (closes: #386872) + + -- Bastian Blank Tue, 21 Nov 2006 11:28:09 +0100 + +linux-2.6 (2.6.18-5) unstable; urgency=low + + [ maximilian attems ] + * [s390] readd the fix for "S390: user readable uninitialised kernel memory + (CVE-2006-5174)" + * [s390] temporarily add patch queued for 2.6.18.3 fixing 32 bit opcodes and + instructions. + + [ Thiemo Seufer ] + * Fix build failure of hugetlbfs (closes: #397139). + * Add kernel configuration for qemu's mips/mipsel emulation, thanks to + Aurelien Jarno. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2.2-rc6. + * Update xen parts for vserver. (closes: #397281) + + [ dann frazier ] + * [ia64] Move to upstream version of sal-flush-fix patch, which is slightly + different than the early version added in 2.6.18-3. + + [ Frederik Schüler ] + * [i386] Acticate CONFIG_SX for all flavours. (closes: #391275) + + [ Steve Langasek ] + * [alpha] new asm-subarchs patch: tell the compiler that we're + deliberately emitting ev56 or ev6 instructions, so that this code + will still compile without having to cripple gcc-4.1's checking of + whether the correct instruction set is used. Closes: #397139. + + [ Martin Michlmayr ] + * arm/ixp4xx: Enable CONFIG_USB_ATM. + * arm/iop32x: Enable CONFIG_PPPOE. + * arm/iop32x: Enable CONFIG_USB_ATM. + + -- Bastian Blank Wed, 8 Nov 2006 17:15:55 +0100 + +linux-2.6 (2.6.18-4) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Switched to gcc-4.1. + + [ Jurij Smakov ] + * [sparc] Remove sparc64-atyfb-xl-gr.patch, it does more harm than + good in 2.6.18. + * [sparc] Add bugfix/sparc/compat-alloc-user-space-alignment.patch + (thanks to David Miller) to make sure that compat_alloc_user_space() + always returns memory aligned on a 8-byte boundary on sparc. This + prevents a number of unaligned memory accesses, like the ones in + sys_msgrcv() and compat_sys_msgrcv(), triggered every 5 seconds whenever + fakeroot is running. + * [sparc] Add bugfix/sparc/bus-id-size.patch (thanks to David Miller) + to ensure that the size of the strings stored in the bus_id field of + struct device never exceeds the amount of memory allocated for them + (20 bytes). It fixes the situations in which storing longer device + names in this field would cause corruption of adjacent memory regions. + (closes: #394697). + * [sparc] Add bugfix/sparc/sunblade1k-boot-fix.patch (thanks to David + Miller) to fix a boottime crash on SunBlade1000. + * [sparc] Add bugfix/sparc/t1k-cpu-lockup.patch (thanks to David Miller) + to prevent soft CPU lockup on T1000 servers, which can be triggered from + userspace, resulting in denial of service. + + [ Martin Michlmayr ] + * arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100. + * arm/iop32x: Allow USB and serial to co-exist on N2100. + * arm/ixp4xx: Add clocksource for Intel IXP4xx platforms. + * arm: Enable CONFIG_AUDIT=y again. + * arm/ixp4xx: Add the IXP4xx Ethernet driver. + * arm/ixp4xx: Build LED support into the kernel. + * Add a driver for Fintek F75375S/SP and F75373. + * arm/iop32x: Build F75375S/SP support in. + * arm/iop32x: Fix the size of the RedBoot config partition. + + [ maximilian attems ] + * Add netpoll leak fix. + * Add upstream forcedeth swsusp support. + * r8169: PCI ID for Corega Gigabit network card. + * r8169: the MMIO region of the 8167 stands behin BAR#1. + * r8169: Add upstream fix for infinite loop during hotplug. + * Bump build-dependency on kernel-package to 10.063. + * r8169: pull revert mac address change support. + * bcm43xx: Add full netdev watchout timeout patch. (closes: 392065) + Thanks Sjoerd Simons for the testing. + * Add stable release 2.6.18.2: + - Remove not yet released, revert the included patches. + - Keep aboves bcm43xx fix, it's more complete. + - Watchdog: sc1200wdt - fix missing pnp_unregister_driver() + - fix missing ifdefs in syscall classes hookup for generic targets + - JMB 368 PATA detection + - usbfs: private mutex for open, release, and remove + - sound/pci/au88x0/au88x0.c: ioremap balanced with iounmap + - x86-64: Fix C3 timer test + - Reintroduce NODES_SPAN_OTHER_NODES for powerpc + - ALSA: emu10k1: Fix outl() in snd_emu10k1_resume_regs() + - IB/mthca: Use mmiowb after doorbell ring + - SCSI: DAC960: PCI id table fixup + - ALSA: snd_rtctimer: handle RTC interrupts with a tasklet + - JFS: pageno needs to be long + - SPARC64: Fix central/FHC bus handling on Ex000 systems. + - SPARC64: Fix memory corruption in pci_4u_free_consistent(). + - SPARC64: Fix PCI memory space root resource on Hummingbird. + (closes: #392078) + - Fix uninitialised spinlock in via-pmu-backlight code. + - SCSI: aic7xxx: pause sequencer before touching SBLKCTL + - IPoIB: Rejoin all multicast groups after a port event + - ALSA: Dereference after free in snd_hwdep_release() + - rtc-max6902: month conversion fix + - NET: Fix skb_segment() handling of fully linear SKBs + - SCTP: Always linearise packet on input + - SCSI: aic7xxx: avoid checking SBLKCTL register for certain cards + - IPV6: fix lockup via /proc/net/ip6_flowlabel [CVE-2006-5619] + - fix Intel RNG detection + - ISDN: check for userspace copy faults + - ISDN: fix drivers, by handling errors thrown by ->readstat() + - splice: fix pipe_to_file() ->prepare_write() error path + - ALSA: Fix bug in snd-usb-usx2y's usX2Y_pcms_lock_check() + - ALSA: Repair snd-usb-usx2y for usb 2.6.18 + - PCI: Remove quirk_via_abnormal_poweroff + - Bluetooth: Check if DLC is still attached to the TTY + - vmscan: Fix temp_priority race + - Use min of two prio settings in calculating distress for reclaim + - __div64_32 for 31 bit. Fixes funny clock speed on hercules emulator. + (closes: 395247) + - DVB: fix dvb_pll_attach for mt352/zl10353 in cx88-dvb, and nxt200x + - fuse: fix hang on SMP + - md: Fix bug where spares don't always get rebuilt properly when they become live. + - md: Fix calculation of ->degraded for multipath and raid10 + - knfsd: Fix race that can disable NFS server. + - md: check bio address after mapping through partitions. + - fill_tgid: fix task_struct leak and possible oops + - uml: fix processor selection to exclude unsupported processors and features + - uml: remove warnings added by previous -stable patch + - Fix sfuzz hanging on 2.6.18 + - SERIAL: Fix resume handling bug + - SERIAL: Fix oops when removing suspended serial port + - sky2: MSI test race and message + - sky2: pause parameter adjustment + - sky2: turn off PHY IRQ on shutdown + - sky2: accept multicast pause frames + - sky2: GMAC pause frame + - sky2: 88E803X transmit lockup (2.6.18) + - tcp: cubic scaling error + - mm: fix a race condition under SMC + COW + - ALSA: powermac - Fix Oops when conflicting with aoa driver + - ALSA: Fix re-use of va_list + - posix-cpu-timers: prevent signal delivery starvation + - NFS: nfs_lookup - don't hash dentry when optimising away the lookup + - uml: make Uml compile on FC6 kernel headers + - Fix potential interrupts during alternative patching + * Backport atkbd - supress "too many keys" error message. + * [s390] Revert temporarly 2.6.18.1 "S390: user readable uninitialised + kernel memory (CVE-2006-5174)" fix as it causes ftfbs + + [ Sven Luther ] + * [powerpc] Added exception alignement patch from Benjamin Herrenschmidt. + + [ Frederik Schüler ] + * Bump ABI to 2. + * Update vserver patch to 2.0.2.2-rc4. + + [ Thiemo Seufer ] + * Add patches from linux-mips.org's 2.6.18-stable branch: + - bugfix/copy-user-highpage.patch, needed for cache alias handling + on mips/mipsel/hppa. + - bugfix/mips/syscall-wiring.patch, fixes TLS register access, and + n32 rt_sigqueueinfo. + - bugfix/mips/sb1-flush-cache-data-page.patch, missing cache flush + on SB-1. + - bugfix/mips/trylock.patch, fix trylock implementation for R1x000 + and R3xxx. + - bugfix/mips/smp-cpu-bringup.patch, correct initialization of + non-contiguous CPU topology. + - bugfix/mips/header-exports.patch, clean up userland exports of + kernel headers. + - bugfix/mips/sb1-interrupt-handler.patch, fix broken interrupt + routing on SB-1. + - bugfix/mips/cache-alias.patch, fixes #387498 for mips/mipsel. + - bugfix/mips/ip22-zilog-console.patch, fix long delays seen with + SGI ip22 serial console. + - bugfix/mips/signal-handling.patch, fixes a signal handling race + condition shown with gdb. + - bugfix/mips/sb1-duart-tts.patch, replaces mips-sb1-duart-tts.patch, + use standard Linux names for SB-1 consoles. + - bugfix/mips/wait-race.patch, correct behaviour of the idle loop. + - bugfix/mips/sgi-ioc3.patch, checksumming fix for IOC3 network + driver. + - features/mips/qemu-kernel.patch, support for the mips/mipsel + machine emulated by Qemu. + - features/mips/backtrace.patch, reimplementation of stack analysis + and backtrace printing, useful for in-kernel debugging. + - bugfix/mips/dec-scsi.patch, replaces mips-dec-scsi.patch, fixes DSP + SCSI driver for DECstations. + - bugfix/mips/dec-serial.patch, replaces mips-dec-serial.patch, fix + serial console handling on DECstations. + + -- Frederik Schüler Sat, 4 Nov 2006 18:45:02 +0100 + +linux-2.6 (2.6.18-3) unstable; urgency=low + + [ Bastian Blank ] + * Fix home of patch apply script. + * Unify CPUSET option. (closes: #391931) + * Support xen version 3.0.3-1. + * Add AHCI suspend support. + * Add patch to support bindmount without nodev on vserver. + * Update fedora xen patch to changeset 36252. + + [ Steve Langasek ] + * [alpha] restore alpha-prctl.patch, which keeps disappearing every time + there's a kernel upgrade :/ + + [ Frederik Schüler ] + * Activate CONFIG_NET_CLS_* globaly. (Closes: #389918) + * Make CONFIG_EFI_VARS modular on i386. (Closes: #381951) + * Activate CONFIG_SCSI_ARCMSR on amd64, powerpc, sparc too. + * [vserver] Activate HARDCPU and HARDCPU_IDLE. + * [vserver] Upgrade to vs2.0.2.2-rc2. + + [ maximilian attems ] + * [mipsel] Disable CONFIG_SECURITY_SECLVL on DECstations too. + * Add stable release 2.6.18.1: + - add utsrelease.h to the dontdiff file + - V4L: copy-paste bug in videodev.c + - block layer: elv_iosched_show should get elv_list_lock + - NETFILTER: NAT: fix NOTRACK checksum handling + - bcm43xx: fix regressions in 2.6.18 (Closes: #392065) + - x86-64: Calgary IOMMU: Fix off by one when calculating register space + location + - ide-generic: jmicron fix + - scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode + - invalidate_inode_pages2(): ignore page refcounts + - rtc driver rtc-pcf8563 century bit inversed + - fbdev: correct buffer size limit in fbmem_read_proc() + - mm: bug in set_page_dirty_buffers + - TCP: Fix and simplify microsecond rtt sampling + - MD: Fix problem where hot-added drives are not resynced. + - IPV6: Disable SG for GSO unless we have checksum + - PKT_SCHED: cls_basic: Use unsigned int when generating handle + - sata_mv: fix oops + - [SPARC64]: Kill bogus check from bootmem_init(). + - IPV6: bh_lock_sock_nested on tcp_v6_rcv + - [CPUFREQ] Fix some more CPU hotplug locking. + - SPARC64: Fix serious bug in sched_clock() on sparc64 + - Fix VIDIOC_ENUMSTD bug + - load_module: no BUG if module_subsys uninitialized + - i386: fix flat mode numa on a real numa system + - cpu to node relationship fixup: map cpu to node + - cpu to node relationship fixup: acpi_map_cpu2node + - backlight: fix oops in __mutex_lock_slowpath during head + /sys/class/graphics/fb0/* + - do not free non slab allocated per_cpu_pageset + - rtc: lockdep fix/workaround + - powerpc: Fix ohare IDE irq workaround on old powermacs + - sysfs: remove duplicated dput in sysfs_update_file + - powerpc: fix building gdb against asm/ptrace.h + - Remove offsetof() from user-visible + - Clean up exported headers on CRIS + - Fix v850 exported headers + - Don't advertise (or allow) headers_{install,check} where inappropriate. + - Remove UML header export + - Remove ARM26 header export. + - Fix H8300 exported headers. + - Fix m68knommu exported headers + - Fix exported headers for SPARC, SPARC64 + - Fix 'make headers_check' on m32r + - Fix 'make headers_check' on sh64 + - Fix 'make headers_check' on sh + - Fix ARM 'make headers_check' + - One line per header in Kbuild files to reduce conflicts + - sky2 network driver device ids + - sky2: tx pause bug fix + - netdrvr: lp486e: fix typo + - mv643xx_eth: fix obvious typo, which caused build breakage + - zone_reclaim: dynamic slab reclaim + - Fix longstanding load balancing bug in the scheduler + - jbd: fix commit of ordered data buffers + - ALSA: Fix initiailization of user-space controls + - USB: Allow compile in g_ether, fix typo + - IB/mthca: Fix lid used for sending traps + - S390: user readable uninitialised kernel memory (CVE-2006-5174) + - zd1211rw: ZD1211B ASIC/FWT, not jointly decoder + - V4L: pvrusb2: Limit hor res for 24xxx devices + - V4L: pvrusb2: Suppress compiler warning + - V4L: pvrusb2: improve 24XXX config option description + - V4L: pvrusb2: Solve mutex deadlock + - DVB: cx24123: fix PLL divisor setup + - V4L: Fix msp343xG handling regression + - UML: Fix UML build failure + - uml: use DEFCONFIG_LIST to avoid reading host's config + - uml: allow using again x86/x86_64 crypto code + - NET_SCHED: Fix fallout from dev->qdisc RCU change + * Add backported git patch remving BSD secure level - request by the + Debian Security Team. (closes: 389282) + * [powerpc] Add DAC960-ipr PCI id table fixup. + * [powerpc] Fix uninitialised spinlock in via-pmu-backlight code. + * Fix serial_cs resume handling. + * Fix oops when removing suspended serial port. + * Check if DLC is still attached to the TTY. + * Add fedora backport of i965 DRM support. + + [ Martin Michlmayr ] + * [mips] Apply some patches from linux-mips' linux-2.6.18-stable GIT tree: + - The o32 fstatat syscall behaves differently on 32 and 64 bit kernels + - fstatat syscall names + - BCM1480: Mask pending interrupts against c0_status.im. + - Cobalt: Time runs too quickly + - Show actual CPU information in /proc/cpuinfo + - Workaround for bug in gcc -EB / -EL options + - Do not use -msym32 option for modules + - Fix O32 personality(2) call with 0xffffffff argument + - Use compat_sys_mount + + [ dann frazier ] + * [ia64]: Fix booting on HP cell systems, thanks to Troy Heber + - Enable CONFIG_HUGETLBFS + - bugfix/ia64/sal-flush-fix.patch: delay sal cache flush + * bugfix/sky2-receive-FIFO-fix.patch: fix sky2 hangs on some chips + Thanks to Stephen Hemminger for the patch. (Closes: #391382) + * features/all/drivers/cciss-support-for-gt-2TB-volumes.patch: + Add support for > 2TB volumes + * bugfix/sym2-dont-claim-raid-devs.patch: Prevent cpqarray/sym2 conflict + by telling sym2 not to claim raid devices. (Closes: #391384) + + [ Sven Luther ] + * [powerpc] Added AMD74xx driver module to the powerpc64 flavour + (Closes: #391861). + + [ Kyle McMartin ] + * [hppa] Force CROSS_COMPILE=hppa64-linux-gnu- (closes: #389296) + + -- Bastian Blank Sat, 21 Oct 2006 15:59:43 +0200 + +linux-2.6 (2.6.18-2) unstable; urgency=low + + [ Bastian Blank ] + * hppa: Fix compiler dependencies. (closes: #389296) + * Make cfq the default io scheduler. + * Add arcmsr (Areca) driver. + * powerpc/prep: Fix compatibility asm symlink. + * m68k: Disable initramfs support. + + [ Kyle McMartin ] + * hppa: Add parisc patchset. + + [ Norbert Tretkowski ] + * [alpha] Workaround undefined symbols by setting CONFIG_SCSI=y for smp flavour. + (closes: #369517) + + [ Christian T. Steiges ] + * m68k: Update patches for 2.6.18. + * m68k: Re-Add m68k-as and m68k-macro patch which allow building with current binutils. + * m68k: disable CONFIG_AUDIT for m68k. + * m68k/mac: add m68k-no-backlight and m68k-fbcon patch. + * m68k/mac: enable SONIC, disable all ADB but CUDA. + + [ Jurij Smakov ] + * Add bugfix/proc-fb-reading.patch to fix the inconsistent behaviour + of /proc/fb. (Closes: #388815) + * sparc: Enable vserver flavour for sparc64. (Closes: #386656) + + -- Bastian Blank Fri, 29 Sep 2006 14:12:19 +0200 + +linux-kbuild-2.6 (2.6.18-1) unstable; urgency=low + + * New upstream version. + * Use included headers. (closes: #382286, #384211) + + -- Bastian Blank Mon, 25 Sep 2006 21:45:50 +0200 + +linux-2.6 (2.6.18-1) unstable; urgency=low + + The unpruned release + + [ Martin Michlmayr ] + * Bump build-dependency on kernel-package to 10.054. + * arm/iop32x: Build ext2/3 as modules. + * arm/iop32x: Disable CONFIG_EMBEDDED. + * mipsel/r5k-cobalt: Enable ISDN. + * arm/footbridge: Enable the CIFS module (closes: #274808). + * arm/nslu2: Drop flavour since this machine is supported by arm/ixp4xx. + * arm: Make get_unaligned() work with const pointers and GCC 4.1. + * mipsel/r5k-cobalt: Enable CONFIG_BONDING as a module. + * arm/iop32x: Likewise. + * arm/ixp4xx: Likewise. + * arm: Disable CONFIG_AUDIT for now since it's broken. + + [ Sven Luther ] + * [powerpc] Enabled the -prep flavour. (Closes: #359025) + * [powerpc] The sisfb framebuffer device is now builtin. + * [powerpc] Updated the powerpc serial patch. This fixes the XServe serial + port, but at the cost powermac pcmcia serial cards support. + Thanks go to Mark Hymers for providing the patch. + (Closes: #364637, #375194) + * [powerpc] Added patch to fix oldworld/quik booting. + Thanks fo to Christian Aichinger for investigating to Benjamin + Herrenschmidt for providing the patch. (Closes: #366620, #375035). + * [powerpc] Fixes hvc_console caused suspsend-to-disk breakage. Thanks to + Andrew Morton for providing the patch. (Closes: #387178) + * [powerpc] Disabled mv643xx_eth on powerpc64 flavours, as there never was a + Marvell Discovery northbrige for 64bit powerpc cpus. + + [ Frederik Schüler ] + * Remove obsolete options from amd64 and i386 configs. + * Deactivate EVBUG. + * Make PARPORT options global. + * [i386] Add class definition for 486 flavour. + + [ maximilian attems ] + * Enable CONFIG_PRINTER=m for all powerpc flavours. + * Enable the new alsa CONFIG_SND_AOA framework for powerpc. + * Add the merged advansys pci table patch. + + [ Bastian Blank ] + * hppa: Use gcc-4.1. + * Only provide 16 legacy ptys. + + [ Norbert Tretkowski ] + * [alpha] Updated configs. + * [alpha] Disabled CONFIG_AUDIT, broken. + * [alpha] Added vserver flavour. + + -- Bastian Blank Sun, 24 Sep 2006 15:55:37 +0200 + +linux-2.6 (2.6.17-9) unstable; urgency=medium + + [ Bastian Blank ] + * Update vserver patch to 2.0.2. + - Fix possible priviledge escalation in remount code. (CVE-2006-4243) + + [ Frederik Schüler ] + * Add stable release 2.5.17.12: + - sky2: version 1.6.1 + - sky2: fix fiber support + - sky2: MSI test timing + - sky2: use dev_alloc_skb for receive buffers + - sky2: clear status IRQ after empty + - sky2: accept flow control + - dm: Fix deadlock under high i/o load in raid1 setup. + - Remove redundant up() in stop_machine() + - Missing PCI id update for VIA IDE + - PKTGEN: Fix oops when used with balance-tlb bonding + - PKTGEN: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too. + - Silent data corruption caused by XPC + - uhci-hcd: fix list access bug + - binfmt_elf: fix checks for bad address + - [s390] bug in futex unqueue_me + - fcntl(F_SETSIG) fix + - IPV6 OOPS'er triggerable by any user + - SCTP: Fix sctp_primitive_ABORT() call in sctp_close(). + - SPARC64: Fix X server crashes on sparc64 + - TG3: Disable TSO by default + - dm: mirror sector offset fix + - dm: fix block device initialisation + - dm: add module ref counting + - dm: fix mapped device ref counting + - dm: add DMF_FREEING + - dm: change minor_lock to spinlock + - dm: move idr_pre_get + - dm: fix idr minor allocation + - dm snapshot: unify chunk_size + - Have ext2 reject file handles with bad inode numbers early. + - Allow per-route window scale limiting + - bridge-netfilter: don't overwrite memory outside of skb + - fix compilation error on IA64 + - Fix output framentation of paged-skbs + - spectrum_cs: Fix firmware uploading errors + - TEXTSEARCH: Fix Boyer Moore initialization bug + * Add stable release 2.6.17.13: + - lib: add idr_replace + - pci_ids.h: add some VIA IDE identifiers + * Remove patches merged upstream: + - s390-kernel-futex-barrier.patch + * Unpatch ia64-mman.h-fix.patch + + -- Bastian Blank Wed, 13 Sep 2006 14:54:14 +0200 + +linux-2.6 (2.6.17-8) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/ixp4xx: Enable CONFIG_W1. + + [ dann frazier ] + * sound-pci-hda-mac-mini-quirks.diff, sound-pci-hda-intel-d965.diff + sound-pci-hda-mac-mini-intel945.diff: + Updates to patch_sigmatel.c to add x86 mac-mini sound support + Thanks to Matt Kraai. (closes: #384972) + + [ Kyle McMartin ] + * hppa: Re-enable pa8800 fixing patches from James Bottomley. + Pulled fresh from parisc-linux git tree. + * ia64: Pull in compile-failure fix from Christian Cotte-Barrot. + Pulled from linux-ia64 mailing list. Fix is correct. + * hppa/alpha/mips: Fix compile-failure due to missing arch_mmap_check. Patch sent + upstream to stable@kernel.org. + + [ dann frazier ] + * sym2: only claim "Storage" class devices - the cpqarray driver should be + used for 5c1510 devices in RAID mode. (closes: #380272) + + [ Bastian Blank ] + * Backport change to allow all hypercalls for xen. + + -- Bastian Blank Thu, 31 Aug 2006 12:12:51 +0200 + +linux-2.6 (2.6.17-7) unstable; urgency=low + + [ Martin Michlmayr ] + * arm/iop32x: Enable CONFIG_BLK_DEV_OFFBOARD. + * arm/iop32x: Unset CONFIG_BLK_DEV_AMD74XX since it fails on ARM + with "Unknown symbol pci_get_legacy_ide_irq". + * arm/iop32x: Enable a number of MD and DM modules. + * arm/iop32x: Enable some more USB network modules. + * mipsel/r5k-cobalt: Increase 8250 NR_UARTS and RUNTIME_UARTS to 4. + * mipsel/r5k-cobalt: Fix MAC detection problem on Qube 2700. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc29. + * Add stable release 2.6.17.10: + - Fix possible UDF deadlock and memory corruption (CVE-2006-4145) + - elv_unregister: fix possible crash on module unload + - Fix sctp privilege elevation (CVE-2006-3745) + + [ maximilian attems ] + * Add RAM range to longclass for -bigmem. (closes: 382799) + * Add stable release 2.6.17.9: + - powerpc: Clear HID0 attention enable on PPC970 at boot time + (CVE-2006-4093) + * Add stable release 2.6.17.11: + - Fix ipv4 routing locking bug + - disable debugging version of write_lock() + - PCI: fix ICH6 quirks + - 1394: fix for recently added firewire patch that breaks things on ppc + - Fix IFLA_ADDRESS handling + - Fix BeFS slab corruption + - Fix timer race in dst GC code + - Have ext3 reject file handles with bad inode numbers early + - Kill HASH_HIGHMEM from route cache hash sizing + - sys_getppid oopses on debug kernel + - IA64: local DoS with corrupted ELFs + - tpm: interrupt clear fix + - ulog: fix panic on SMP kernels + - dm: BUG/OOPS fix + - MD: Fix a potential NULL dereference in md/raid1 + - ip_tables: fix table locking in ipt_do_table + - swsusp: Fix swap_type_of + - sky2: phy power problem on 88e805x + - ipx: header length validation needed + + [ Frederik Schüler ] + * Activate CONFIG_R8169_VLAN on amd64. (closes: #383707) + * Activate EFI boot support on i386. (closes: #381951) + + [ dann frazier ] + * Include module.lds in headers package if it exists. (closes: #342246) + * Add Apple MacBook product IDs to usbhid and set + CONFIG_USB_HIDINPUT_POWERBOOK=y on i386 and amd64. (closes: #383620) + + -- Bastian Blank Thu, 24 Aug 2006 15:54:51 +0000 + +linux-2.6 (2.6.17-6) unstable; urgency=low + + [ maximilian attems ] + * debian/arch/i386/defines: Activate 686-bigmem flavour for enterprise + usage. + * Add ubuntu pci table patch for scsi drivers advansys and fdomain. + + [ Martin Michlmayr ] + * arm/armeb: Use gcc-4.1. + * mips/mipsel: Use gcc-4.1. + * arm/ixp4xx: Update config based on the NSLU2 config. + * arm/s3c2410: Unset CONFIG_DEBUG_INFO. + * arm/iop32x: xscale: don't mis-report 80219 as an iop32x + * arm/iop32x: Add an MTD map for IOP3xx boards + * arm/iop32x: Add support for the Thecus N2100. + * arm/iop32x: Add support for the GLAN Tank. + * arm/iop32x: Add a flavour for IOP32x based machines. + + [ Bastian Blank ] + * Shrink short descriptions. + * Make gcc-4.1 the default compiler. + * [powerpc]: Use gcc-4.1. + * Move latest and transitional packages to linux-latest-2.6. + + [ Frederik Schüler ] + * [amd64] Add smp-alternatives backport. + * [amd64] Drop smp flavours. + * [amd64] Merge k8 and p4 flavours into a generic one, following upstreams + advice. + * Activate BSD_PROCESS_ACCT_V3. + * Add stable release 2.6.17.8: + - ALSA: Don't reject O_RDWR at opening PCM OSS + - Add stable branch to maintainers file + - tty serialize flush_to_ldisc + - S390: fix futex_atomic_cmpxchg_inatomic + - Fix budget-av compile failure + - cond_resched() fix + - e1000: add forgotten PCI ID for supported device + - ext3: avoid triggering ext3_error on bad NFS file handle + - ext3 -nobh option causes oops + - Fix race related problem when adding items to and svcrpc auth cache. + - ieee1394: sbp2: enable auto spin-up for Maxtor disks + - invalidate_bdev() speedup + - Sparc64 quad-float emulation fix + - VLAN state handling fix + - Update frag_list in pskb_trim + - UHCI: Fix handling of short last packet + - sky2: NAPI bug + - i2c: Fix 'ignore' module parameter handling in i2c-core + - scx200_acb: Fix the block transactions + - scx200_acb: Fix the state machine + - H.323 helper: fix possible NULL-ptr dereference + - Don't allow chmod() on the /proc// files + - PCI: fix issues with extended conf space when MMCONFIG disabled because of e820 + + [ Sven Luther ] + * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour, for + non-virtualized IBM power machines serial console. + + -- Bastian Blank Fri, 11 Aug 2006 19:58:06 +0200 + +linux-kbuild-2.6 (2.6.17-3) unstable; urgency=low + + * Replace own modpost with original one. + + -- Bastian Blank Tue, 1 Aug 2006 11:01:18 +0200 + +linux-2.6 (2.6.17-5) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm/nslu2] Enable CONFIG_USB_EHCI_SPLIT_ISO. Closes: #378554 + + [ maximilian attems ] + * Add stable release 2.6.17.7: + - BLOCK: Fix bounce limit address check + - v4l/dvb: Fix budget-av frontend detection + - v4l/dvb: Fix CI on old KNC1 DVBC cards + - v4l/dvb: Fix CI interface on PRO KNC1 cards + - v4l/dvb: Backport fix to artec USB DVB devices + - v4l/dvb: Backport the DISEQC regression fix to 2.6.17.x + - v4l/dvb: stradis: dont export MODULE_DEVICE_TABLE + - pnp: suppress request_irq() warning + - generic_file_buffered_write(): handle zero-length iovec segments + - serial 8250: sysrq deadlock fix + - Reduce ACPI verbosity on null handle condition + - ieee80211: TKIP requires CRC32 + - Make powernow-k7 work on SMP kernels. + - via-velocity: the link is not correctly detected when the device starts + - Add missing UFO initialisations + - USB serial ftdi_sio: Prevent userspace DoS (CVE-2006-2936) + - cdrom: fix bad cgc.buflen assignment + - splice: fix problems with sys_tee() + - fix fdset leakage + - struct file leakage + - XFS: corruption fix + - v4l/dvb: Kconfig: fix description and dependencies for saa7115 module + - dvb-bt8xx: fix frontend detection for DViCO FusionHDTV DVB-T Lite rev 1.2 + - IB/mthca: restore missing PCI registers after reset + - v4l/dvb: Backport the budget driver DISEQC instability fix + - Fix IPv4/DECnet routing rule dumping + - pdflush: handle resume wakeups + - x86_64: Fix modular pc speaker + - Fix powernow-k8 SMP kernel on UP hardware bug. + - ALSA: RME HDSP - fixed proc interface (missing {}) + - ALSA: au88x0 - Fix 64bit address of MPU401 MMIO port + - ALSA: Fix a deadlock in snd-rtctimer + - ALSA: Fix missing array terminators in AD1988 codec support + - ALSA: Fix model for HP dc7600 + - ALSA: Fix mute switch on VAIO laptops with STAC7661 + - ALSA: fix the SND_FM801_TEA575X dependencies + - ALSA: Fix undefined (missing) references in ISA MIRO sound driver + - ALSA: Fix workaround for AD1988A rev2 codec + - ALSA: hda-intel - Fix race in remove + - Suppress irq handler mismatch messages in ALSA ISA drivers + - PKT_SCHED: Fix illegal memory dereferences when dumping actions + - PKT_SCHED: Return ENOENT if action module is unavailable + - PKT_SCHED: Fix error handling while dumping actions + - generic_file_buffered_write(): deadlock on vectored write + - ethtool: oops in ethtool_set_pauseparam() + - memory hotplug: solve config broken: undefined reference to `online_page' + * Add budget-av-compile-fix.patch stable compile fix. + * Enable in all configs setting SND_FM801_TEA575X SND_FM801_TEA575X_BOOL=y. + + -- Bastian Blank Sat, 29 Jul 2006 13:30:06 +0200 + +linux-2.6 (2.6.17-4) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.17.5: + - Fix nasty /proc vulnerability (CVE-2006-3626) + * Add stable release 2.6.17.6: + - Relax /proc fix a bit + * Set section of images to admin. + + [ dann frazier ] + * [ia64] Drop the non-SMP flavours; they are not well maintained upstream. + Note that the non-SMP flavours have been identical to the SMP builds + since 2.6.13-1; this was to avoid having to drop then re-add these + flavours if upstream resolved the issue - but that never happened. + Note that this is a measurable performance penalty on non-SMP systems. + + -- Bastian Blank Mon, 17 Jul 2006 11:08:41 +0200 + +linux-2.6 (2.6.17-3) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.17.2: + - ide-io: increase timeout value to allow for slave wakeup + - NTFS: Critical bug fix (affects MIPS and possibly others) + - Link error when futexes are disabled on 64bit architectures + - SCTP: Reset rtt_in_progress for the chunk when processing its sack. + - SPARC32: Fix iommu_flush_iotlb end address + - ETHTOOL: Fix UFO typo + - UML: fix uptime + - x86: compile fix for asm-i386/alternatives.h + - bcm43xx: init fix for possible Machine Check + - SCTP: Fix persistent slowdown in sctp when a gap ack consumes rx buffer. + - kbuild: bugfix with initramfs + - Input: return correct size when reading modalias attribute + - ohci1394: Fix broken suspend/resume in ohci1394 + - idr: fix race in idr code + - USB: Whiteheat: fix firmware spurious errors + - libata: minor patch for ATA_DFLAG_PIO + - SCTP: Send only 1 window update SACK per message. + - PFKEYV2: Fix inconsistent typing in struct sadb_x_kmprivate. + - SCTP: Limit association max_retrans setting in setsockopt. + - SCTP: Reject sctp packets with broadcast addresses. + - IPV6: Sum real space for RTAs. + - IPV6 ADDRCONF: Fix default source address selection without + CONFIG_IPV6_PRIVACY + - IPV6: Fix source address selection. + * Add stable release 2.6.17.3: + - NETFILTER: SCTP conntrack: fix crash triggered by packet without chunks + [CVE-2006-2934] + * Deapply merged sparc32-iotlb.patch. + * Fix README.Debian: Correct svn location, remove old boot param bswap + reference, the asfs patch is in the Debian kernel. Remove reference to + AMD 768 erratum 10, it was solved in 2.6.12. Add wording corrections. + * Set CONFIG_SERIAL_8250_RN_UARTS=16 for all archs beside mips/m68k unless + explicitly set on a specific value. (closes: 377151) + * Add stable release 2.6.17.4: + - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451) + + [ Sven Luther ] + * Re-enabled fs-asfs patch. + + [ Thiemo Seufer ] + * [mips,mipsel] Fix sb1 interrupt handlers. + * [mips,mipsel] Fix devfs-induced build failure in sb1250 serial driver. + * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache. + * [mips] Fix SGI ip22 serial console, thanks to Julien Blache. + + [ Martin Michlmayr ] + * [arm/nslu2] Enable HFS and some other filesystems. + * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853. + + -- Bastian Blank Thu, 13 Jul 2006 13:14:53 +0200 + +linux-kbuild-2.6 (2.6.17-2) unstable; urgency=low + + * Fix uninitialied variable. (closes: #377656) + + -- Bastian Blank Tue, 11 Jul 2006 10:10:24 +0200 + +linux-kbuild-2.6 (2.6.17-1) unstable; urgency=low + + * Initial release. (closes: #368544) + + -- Bastian Blank Sat, 1 Jul 2006 19:10:07 +0200 + +linux-2.6 (2.6.17-2) unstable; urgency=low + + [ Jurij Smakov ] + * [sparc] Switch to gcc-4.1 as it produces a working kernel, + while gcc-4.0 does not. No ABI bump neccessary, because + 2.6.17-1 sparc binaries never made it to the archive. + * [sparc32] Add sparc32-iotlb.patch to fix DMA errors on sparc32. + + [ Sven Luther ] + * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour. + * [powerpc] Fixed mkvmlinuz support, which was missing from -1. (Closes: #375645) + * [powerpc] Added PowerBook HID support for last-gen PowerBook keyboards. + (Closes: #307327) + + [ Martin Michlmayr ] + * [mipsel] Fix compilation error in dz serial driver. + * [mipsel] Update configs. + * [mipsel] Add a build fix for the Cobalt early console support. + * [arm/nslu2] Disable SE Linux support for now so the kernel fits into flash. + + [ Christian T. Steigies ] + * [m68k] Update patches for 2.6.17. + * [m68k] Add m68k-as and m68k-macro patch which allow building with current binutils. + * [m68k] Disable all subarches but amiga and mac for official linux-images. + + [ Kyle McMartin ] + * [hppa] Update patchset (2.6.17-pa6) from parisc-linux.org. + Which fixes relocation errors in modules with 64-bit kernels, and + a softlockup on non-SMP flavours with gettimeofday. + + -- Bastian Blank Thu, 29 Jun 2006 18:49:35 +0200 + +linux-2.6 (2.6.17-1) unstable; urgency=low + + [ Frederik Schüler ] + * New upstream release. + * [amd64] Use gcc 4.1. + * [amd64] Drop amd64-generic flavor. We will use amd64-k8 for the + installer. + + [ Martin Michlmayr ] + * [mips] Update patches for 2.6.17. + * [arm] Update configs. + * [armeb] Update configs. + + [ Thiemo Seufer ] + * [mips] Fix SWARM FPU detection. + * [mips] Update configurations. + + [ Kyle McMartin ] + * [hppa] Set PDC_CHASSIS_WARN to y. + * [hppa] Update patchset (2.6.17-pa2) from parisc-linux.org. + * [hppa] Change NR_CPUS to 8 from 32 on both SMP flavours. + * [hppa] Set PARISC_PAGE_SIZE to 4K on all platforms. + + [ Bastian Blank ] + * [s390] Use gcc 4.1. + * [i386] Enable REGPARM. + * [i386] Use gcc 4.1. + * [powerpc] Disable prep. + + [ dann frazier ] + * [ia64] Update configs + * [ia64] Use gcc 4.1. + + [ maximilian attems ] + * Add stable release 2.6.17.1: + - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085) + + -- Bastian Blank Thu, 22 Jun 2006 12:13:15 +0200 + +linux-2.6 (2.6.16+2.6.17-rc3-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release candidate. + * Switch HZ from 1000 to 250, following upstreams default. + * Activate CONFIG_BCM43XX_DEBUG. + + [ maximilian attems ] + * Disable broken and known unsecure LSM modules: CONFIG_SECURITY_SECLVL, + CONFIG_SECURITY_ROOTPLUG. Upstream plans to remove them for 2.6.18 + + -- Frederik Schüler Sun, 7 May 2006 17:06:29 +0200 + +linux-2.6.16 (2.6.16-18) unstable; urgency=high + + [ Sven Luther ] + * [powerpc] Added console=hvsi0 too to CMDLINE to the powerpc64 flavour, + for non-virtualized IBM power machines serial console. + + [ dann frazier ] + * fs-ext3-bad-nfs-handle.patch: avoid triggering ext3_error on bad NFS + file handle (CVE-2006-3468) + * cdrom-bad-cgc.buflen-assign.patch: fix buffer overflow in dvd_read_bca + * usb-serial-ftdi_sio-dos.patch: fix userspace DoS in ftdi_sio driver + + [ Bastian Blank ] + * Update xen patch to changeset 9762. + + -- Frederik Schüler Fri, 18 Aug 2006 20:29:17 +0200 + +linux-2.6.16 (2.6.16-17) unstable; urgency=high + + [ Martin Michlmayr ] + * Add stable release 2.6.16.22: + - powernow-k8 crash workaround + - NTFS: Critical bug fix (affects MIPS and possibly others) + - JFS: Fix multiple errors in metapage_releasepage + - SPARC64: Fix D-cache corruption in mremap + - SPARC64: Respect gfp_t argument to dma_alloc_coherent(). + - SPARC64: Fix missing fold at end of checksums. + - scsi_lib.c: properly count the number of pages in scsi_req_map_sg() + - I2O: Bugfixes to get I2O working again + - Missed error checking for intent's filp in open_namei(). + - tmpfs: time granularity fix for [acm]time going backwards + - USB: Whiteheat: fix firmware spurious errors + - fs/namei.c: Call to file_permission() under a spinlock in do_lookup_path() + * Add stable release 2.6.16.23: + - revert PARPORT_SERIAL should depend on SERIAL_8250_PCI patch + - NETFILTER: SCTP conntrack: fix crash triggered by packet without + chunks (CVE-2006-2934) + * Add stable release 2.6.16.24: + - fix prctl privilege escalation and suid_dumpable (CVE-2006-2451) + * Add stable release 2.6.16.25: + - Fix nasty /proc vulnerability (CVE-2006-3626) + * Relax /proc fix a bit (Linus Torvalds) + + * [arm/nslu2] Unset CONFIG_USB_STORAGE_DEBUG. Closes: #377853. + * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache. + * [mips] Fix SGI ip22 serial console, thanks to Julien Blache. + + [ Bastian Blank ] + * Fix vserver patch. + + -- Bastian Blank Sat, 15 Jul 2006 17:18:49 +0200 + +linux-2.6.16 (2.6.16-16) unstable; urgency=low + + [ Sven Luther ] + * [powerpc] Added console=hvc0 default commandline option to powerpc64 flavour. + * [powerpc] Now THERM_PM72 and all WINDFARMs are builtin, for better fan control. + + [ Martin Michlmayr ] + * [arm/nslu2] Disable SE Linux support for now so the kernel fits into + flash. Closes: #376926. + + [ Bastian Blank ] + * [powerpc,powerpc-miboot] Enable OpenFirmware device tree support. + (closes: #376012) + + -- Bastian Blank Sat, 8 Jul 2006 17:57:57 +0200 + +linux-2.6.16 (2.6.16-15) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.16.18: + - NETFILTER: SNMP NAT: fix memory corruption (CVE-2006-2444) + * Add stable release 2.6.16.19: + - NETFILTER: Fix small information leak in SO_ORIGINAL_DST (CVE-2006-1343) + * Add stable release 2.6.16.20: + - x86_64: Don't do syscall exit tracing twice + - Altix: correct ioc4 port order + - Input: psmouse - fix new device detection logic + - PowerMac: force only suspend-to-disk to be valid + - the latest consensus libata resume fix + - Altix: correct ioc3 port order + - Cpuset: might sleep checking zones allowed fix + - ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices + - sbp2: backport read_capacity workaround for iPod + - sbp2: fix check of return value of hpsb_allocate_and_register_addrspace + - x86_64: x86_64 add crashdump trigger points + - ipw2200: Filter unsupported channels out in ad-hoc mode + * Add stable release 2.6.16.21: + - check_process_timers: fix possible lockup + - run_posix_cpu_timers: remove a bogus BUG_ON() (CVE-2006-2445) + - xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085) + - powerpc: Fix machine check problem on 32-bit kernels (CVE-2006-2448) + + [ Christian T. Steigies ] + * [m68k] Add mac via patch from Finn Thain. + * [m68k] Enable INPUT_EVDEV. + + [ Martin Michlmayr ] + * [mips/b1-bcm91250a] Enable SMP. + * [mips] Add a compile fix for the Maxine fb. + * [mipsel] Add a patch that let's you enable serial console on DECstation. + * [mipsel] Add a patch to get SCSI working on DECstation. + * [mipsel] Handle memory-mapped RTC chips properly. + * [mipsel] Add configs for r3k-kn02 and r4k-kn04 DECstation. + * [arm] Allow RiscPC machines to boot an initrd (tagged list fix). + * [arm/nslu2] Enable many modules. + * [arm] Build loop support as a module. + * [arm] Use the generic netfilter configuration. + * [arm/footbridge] Enable sound. + + [ Kyle McMartin ] + * [hppa] Pulled patch from cvs to fix build of kernel/ptrace.c which needs + {read,write}_can_lock. + * [hppa] Disable CONFIG_DETECT_SOFTLOCKUP to fix boot on pa8800 machines. + + [ Sven Luther ] + * [powerpc,prep] Added a new ARCH=ppc PReP flavour, currently mostly a copy + of the -powerpc one. + * Upgraded mkvmlinuz dependency to mkvmlinuz 21. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc21. + * Bump build-dependency on kernel-package to 10.049. + + [ Jurij Smakov ] + * Add dcache-memory-corruption.patch to fix the mremap(), occasionally + triggered on sparc in the form of dpkg database corruption. Affects + sparc64, mips and generic includes. Thanks to David Miller, original + patch is included in 2.6.17. + Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=114920963824047&w=2 + * Add sparc32-iotlb.patch to fix the DMA errors encountered with latest + kernels on sparc32, in particularly HyperSparcs. Thanks to Bob Breuer. + Ref: http://marc.theaimsgroup.com/?l=linux-sparc&m=115077649707675&w=2 + + -- Bastian Blank Wed, 21 Jun 2006 14:09:11 +0200 + +linux-2.6 (2.6.16-14) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.16.16: + - fs/locks.c: Fix lease_init (CVE-2006-1860) + * Make i386 xen images recommend libc6-xen. + * Update vserver patch to 2.0.2-rc20. + * Update xen patch to changeset 9687. + + [ Christian T. Steigies ] + * [m68k] Add generic m68k ide fix. + * [m68k] Add cross-compile instructions. + * [m68k] Enable INPUT_EVDEV for yaird. + * [m68k] sun3 general compile and scsi fixes, enable sun3 SCSI again. + + [ dann frazier ] + * cs4281 - Fix the check of timeout in probe to deal with variable HZ. + (closes: #361197) + + [ Norbert Tretkowski ] + * [alpha] Readded patch to support prctl syscall, got lost when upgrading + to 2.6.16. + + [ Frederik Schüler ] + * Add stable release 2.6.16.17: + - SCTP: Validate the parameter length in HB-ACK chunk (CVE-2006-1857) + - SCTP: Respect the real chunk length when walking parameters + (CVE-2006-1858) + - ptrace_attach: fix possible deadlock schenario with irqs + - Fix ptrace_attach()/ptrace_traceme()/de_thread() race + - page migration: Fix fallback behavior for dirty pages + - add migratepage address space op to shmem + - Remove cond_resched in gather_stats() + - VIA quirk fixup, additional PCI IDs + - PCI quirk: VIA IRQ fixup should only run for VIA southbridges + - Fix udev device creation + - limit request_fn recursion + - PCI: correctly allocate return buffers for osc calls + - selinux: check for failed kmalloc in security_sid_to_context() + - TG3: ethtool always report port is TP. + - Netfilter: do_add_counters race, possible oops or info leak + (CVE-2006-0039) + - scx200_acb: Fix resource name use after free + - smbus unhiding kills thermal management + - fs/compat.c: fix 'if (a |= b )' typo + - smbfs: Fix slab corruption in samba error path + - fs/locks.c: Fix sys_flock() race + - USB: ub oops in block_uevent + - via-rhine: zero pad short packets on Rhine I ethernet cards + - md: Avoid oops when attempting to fix read errors on raid10 + + -- Bastian Blank Mon, 22 May 2006 14:56:11 +0200 + +linux-2.6 (2.6.16-13) unstable; urgency=low + + [ Frederik Schüler ] + * Add stable release 2.6.16.14: + - smbfs chroot issue (CVE-2006-1864) + + [ Bastian Blank ] + * Don't make headers packages depend on images. + * Bump abiname to 2. (closes: #366291) + * Update vserver patch to 2.0.2-rc19. + * Update xen patch to changeset 9668. + * Remove abi fixes. + * Add stable release 2.6.16.15: + - SCTP: Allow spillover of receive buffer to avoid deadlock. (CVE-2006-2275) + - SCTP: Fix panic's when receiving fragmented SCTP control chunks. (CVE-2006-2272) + - SCTP: Fix state table entries for chunks received in CLOSED state. (CVE-2006-2271) + - SCTP: Prevent possible infinite recursion with multiple bundled DATA. (CVE-2006-2274) + * Switch HZ from 1000 to 250. + + [ Christian T. Steigies ] + * [m68k] Add patches that allow building images for atari + * [m68k] Enable atyfb driver for atari + + -- Bastian Blank Wed, 10 May 2006 18:58:44 +0200 + +linux-2.6 (2.6.16-12) unstable; urgency=low + + [ Bastian Blank ] + * Add stable release 2.6.16.12: + - dm snapshot: fix kcopyd destructor + - x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages + - for_each_possible_cpu + - Simplify proc/devices and fix early termination regression + - sonypi: correct detection of new ICH7-based laptops + - MIPS: Fix tx49_blast_icache32_page_indexed. + - NET: e1000: Update truesize with the length of the packet for packet split + - i386: fix broken FP exception handling + - tipar oops fix + - USB: fix array overrun in drivers/usb/serial/option.c + - Altix snsc: duplicate kobject fix + - Alpha: strncpy() fix + - LSM: add missing hook to do_compat_readv_writev() + - Fix reiserfs deadlock + - make vm86 call audit_syscall_exit + - fix saa7129 support in saa7127 module for pvr350 tv out + - dm flush queue EINTR + - get_dvb_firmware: download nxt2002 firmware from new driver location + - cxusb-bluebird: bug-fix: power down corrupts frontend + - x86_64: Fix a race in the free_iommu path. + - MIPS: Use "R" constraint for cache_op. + - MIPS: R2 build fixes for gcc < 3.4. + - cs5535_gpio.c: call cdev_del() during module_exit to unmap kobject references and other cleanups + - MIPS: Fix branch emulation for floating-point exceptions. + - x86/PAE: Fix pte_clear for the >4GB RAM case + * Add stable release 2.6.16.13: + - NETFILTER: SCTP conntrack: fix infinite loop (CVE-2006-1527) + * Remove merged patches. + * Rediff xen patch. + * Bump build-dependency on kernel-package to 10.047. + + [ Martin Michlmayr ] + * [arm] Enable cramfs for ixp4xx and rpc. + + -- Bastian Blank Thu, 4 May 2006 11:37:26 +0200 + +linux-2.6 (2.6.16-11) unstable; urgency=low + + * Update vserver patch to 2.0.2-rc18. + - Limit ccaps to root inside a guest (CVE-2006-2110) + * Conflict with known broken grub versions. (closes: #361308) + * Enable s390 vserver image. + * Enable xen and xen-vserver images. + * Use localversion for kernel-package images. (closes: #365505) + + -- Bastian Blank Mon, 1 May 2006 16:38:45 +0200 + +linux-2.6 (2.6.16-10) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Added backport of for_each_possible_cpu() to fix alpha build. + (closes: #364206) + * Add stable release 2.6.16.10: + - IPC: access to unmapped vmalloc area in grow_ary() + - Add more prevent_tail_call() + - alim15x3: ULI M-1573 south Bridge support + - apm: fix Armada laptops again + - fbdev: Fix return error of fb_write + - Fix file lookup without ref + - m41t00: fix bitmasks when writing to chip + - Open IPMI BT overflow + - x86: be careful about tailcall breakage for sys_open[at] too + - x86: don't allow tail-calls in sys_ftruncate[64]() + - IPV6: XFRM: Fix decoding session with preceding extension header(s). + - IPV6: XFRM: Don't use old copy of pointer after pskb_may_pull(). + - IPV6: Ensure to have hop-by-hop options in our header of &sk_buff. + - selinux: Fix MLS compatibility off-by-one bug + - PPC: fix oops in alsa powermac driver + - MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's + - i2c-i801: Fix resume when PEC is used + - Fix hotplug race during device registration + - Fix truesize underflow + - efficeon-agp: Add missing memory mask + - 3ware 9000 disable local irqs during kmap_atomic + - 3ware: kmap_atomic() fix + + [ maximilian attems ] + * Add stable release 2.6.16.11: + - Don't allow a backslash in a path component (CVE-2006-1863) + + -- Bastian Blank Tue, 25 Apr 2006 13:56:19 +0200 + +linux-2.6 (2.6.16-9) unstable; urgency=low + + [ maximilian attems ] + * Add stable release 2.6.16.8: + - ip_route_input panic fix (CVE-2006-1525) + * Add stable release 2.6.16.9: + - i386/x86-64: Fix x87 information leak between processes (CVE-2006-1056) + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc17. + + -- Bastian Blank Thu, 20 Apr 2006 15:37:28 +0200 + +linux-2.6 (2.6.16-8) unstable; urgency=low + + * Fix ABI-breakage introduced in -7. (closes: #363032) + * Add stable release 2.6.16.6: + - ext3: Fix missed mutex unlock + - RLIMIT_CPU: fix handling of a zero limit + - alpha: SMP boot fixes + - m32r: security fix of {get, put}_user macros + - m32r: Fix cpu_possible_map and cpu_present_map initialization for SMP kernel + - shmat: stop mprotect from giving write permission to a readonly attachment (CVE-2006-1524) + - powerpc: fix incorrect SA_ONSTACK behaviour for 64-bit processes + - MPBL0010 driver sysfs permissions wide open + - cciss: bug fix for crash when running hpacucli + - fuse: fix oops in fuse_send_readpages() + - Fix utime(2) in the case that no times parameter was passed in. + - Fix buddy list race that could lead to page lru list corruptions + - NETFILTER: Fix fragmentation issues with bridge netfilter + - USB: remove __init from usb_console_setup + - Fix suspend with traced tasks + - isd200: limit to BLK_DEV_IDE + - edac_752x needs CONFIG_HOTPLUG + - fix non-leader exec under ptrace + - sky2: bad memory reference on dual port cards + - atm: clip causes unregister hang + - powerpc: iSeries needs slb_initialize to be called + - Fix block device symlink name + - Incorrect signature sent on SMB Read + * Add stable release 2.6.16.7: + - fix MADV_REMOVE vulnerability (CVE-2006-1524 for real this time) + + -- Bastian Blank Tue, 18 Apr 2006 16:22:31 +0200 + +linux-2.6 (2.6.16-7) unstable; urgency=low + + [ Frederik Schüler ] + * Add stable release 2.6.16.3: + - Keys: Fix oops when adding key to non-keyring (CVE-2006-1522) + + [ Bastian Blank ] + * Add stable release 2.6.16.4: + - RCU signal handling (CVE-2006-1523) + + [ Sven Luther ] + * [powerpc] Transitioned mkvmlinuz support patch to the 2.6.16 ARCH=powerpc + tree. PReP is broken in 2.6.16 though. + + [ maximilian attems ] + * Add stable release 2.6.16.5: + - x86_64: Clean up execve + - x86_64: When user could have changed RIP always force IRET (CVE-2006-0744) + * Disable CONFIG_SECCOMP (adds useless overhead on context-switch) - + thanks to fs for checking abi. + + [ Christian T. Steigies ] + * [m68k] update m68k patch and config to 2.6.16, temporarily disable atari + + -- Bastian Blank Sat, 15 Apr 2006 13:56:05 +0200 + +linux-2.6 (2.6.16-6) unstable; urgency=medium + + [ Bastian Blank ] + * Provide version infos in support package and don't longer rely on the + changelog. + * [amd64/i386] Enable cpu hotplug support. + + [ maximilian attems ] + * Add stable release 2.6.16.2: + - PCMCIA_SPECTRUM must select FW_LOADER + - drivers/net/wireless/ipw2200.c: fix an array overun + - AIRO{,_CS} <-> CRYPTO fixes + - tlclk: fix handling of device major + - fbcon: Fix big-endian bogosity in slow_imageblit() + - Fix NULL pointer dereference in node_read_numastat() + - USB: EHCI full speed ISO bugfixes + - Mark longhaul driver as broken. + - fib_trie.c node freeing fix + - USB: Fix irda-usb use after use + - sysfs: zero terminate sysfs write buffers (CVE-2006-1055) + - USB: usbcore: usb_set_configuration oops (NULL ptr dereference) + - pcmcia: permit single-character-identifiers + - hostap: Fix EAPOL frame encryption + - wrong error path in dup_fd() leading to oopses in RCU + - {ip, nf}_conntrack_netlink: fix expectation notifier unregistration + - isicom must select FW_LOADER + - knfsd: Correct reserved reply space for read requests. + - Fix module refcount leak in __set_personality() + - sbp2: fix spinlock recursion + - powerpc: make ISA floppies work again + - opti9x - Fix compile without CONFIG_PNP + - Add default entry for CTL Travel Master U553W + - Fix the p4-clockmod N60 errata workaround. + - kdump proc vmcore size oveflow fix + + -- Bastian Blank Mon, 10 Apr 2006 16:09:51 +0200 + +linux-2.6 (2.6.16-5) unstable; urgency=low + + [ Bastian Blank ] + * Provide real dependency packages for module building. + - Add linux-headers-$version-$abiname-all and + linux-headers-$version-$abiname-all-$arch. + * Rename support package to linux-support-$version-$abiname. + * Fix module package output. + * Include .kernelrelease in headers packages. (closes: #359813) + * Disable Cumana partition support completely. (closes: #359207) + * Update vserver patch to 2.0.2-rc15. + + [ dann frazier ] + * [ia64] initramfs-tools works now, no longer restrict initramfs-generators + + -- Bastian Blank Mon, 3 Apr 2006 14:00:08 +0200 + +linux-2.6 (2.6.16-4) unstable; urgency=medium + + [ Martin Michlmayr ] + * [arm/armeb] Update nslu2 config. + * Add stable release 2.6.16.1: + - Fix speedstep-smi assembly bug in speedstep_smi_ownership + - DMI: fix DMI onboard device discovery + - cciss: fix use-after-free in cciss_init_one + - DM: Fix bug: BIO_RW_BARRIER requests to md/raid1 hang. + - fix scheduler deadlock + - proc: fix duplicate line in /proc/devices + - rtc.h broke strace(1) builds + - dm: bio split bvec fix + - v9fs: assign dentry ops to negative dentries + - i810fb_cursor(): use GFP_ATOMIC + - NET: Ensure device name passed to SO_BINDTODEVICE is NULL terminated. + - XFS writeout fix + - sysfs: fix a kobject leak in sysfs_add_link on the error path + - get_cpu_sysdev() signedness fix + - firmware: fix BUG: in fw_realloc_buffer + - sysfs: sysfs_remove_dir() needs to invalidate the dentry + - TCP: Do not use inet->id of global tcp_socket when sending RST (CVE-2006-1242) + - 2.6.xx: sata_mv: another critical fix + - Kconfig: VIDEO_DECODER must select FW_LOADER + - V4L/DVB (3324): Fix Samsung tuner frequency ranges + - sata_mv: fix irq port status usage + + -- Bastian Blank Tue, 28 Mar 2006 17:19:10 +0200 + +linux-2.6 (2.6.16-3) unstable; urgency=low + + [ Frederik Schüler ] + * [amd64] Add asm-i386 to the linux-headers packages. + + [ Jonas Smedegaard ] + * Tighten yaird dependency to at least 0.0.12-8 (supporting Linux + 2.6.16 uppercase hex in Kconfig and new IDE sysfs naming, and VIA + IDE on powerpc). + + [ Martin Michlmayr ] + * [arm/armeb] Enable CONFIG_NFSD on NSLU2 again. Closes: #358709. + * [arm/footbridge] CONFIG_NE2K_PCI should be a module, not built-in. + * [arm/footbridge] Enable CONFIG_BLK_DEV_IDECD=m since the CATS can + have a CD-ROM drive. + * [mips/sb1*] Use ttyS rather than duart as the name for the serial + console since the latter causes problems with debian-installer. + + [ Bastian Blank ] + * Update vserver patch to 2.0.2-rc14. + - Fix sendfile. (closes: #358391, #358752) + + -- Bastian Blank Mon, 27 Mar 2006 16:08:20 +0200 + +linux-2.6 (2.6.16-2) unstable; urgency=low + + [ dann frazier ] + * [ia64] Set unconfigured options: + CONFIG_PNP_DEBUG=n and CONFIG_NET_SB1000=m + * [hppa] Update config for 2.6.16 + + [ Martin Michlmayr ] + * [mips/mipsel] Put something in the generic config file because diff + will otherwise remove the empty file, causing the build to fail. + * [mipsel/r5k-cobalt] Set CONFIG_PACKET=y. + * [arm] Set CONFIG_MACLIST=y for ixp4xx because nas100d needs it. + + [ Frederik Schüler ] + * Add Maximilian Attems to uploaders list. + + -- Martin Michlmayr Wed, 22 Mar 2006 15:15:14 +0000 + +linux-2.6 (2.6.16-1) unstable; urgency=low + + [ Bastian Blank ] + * New upstream release. + * Default to initramfs-tools 0.55 or higher on s390. + + [ maximilian attems ] + * Default to initramfs-tools on arm and armeb. + + [ Martin Michlmayr ] + * [mips/mipsel] Add an image for the Broadcom BCM91480B evaluation board + (aka "BigSur"). + * [arm, armeb] Enable the netconsole module. + * [mipsel/cobalt] Enable the netconsole module. + * [mips] SB1: Fix interrupt disable hazard (Ralf Baechle). + * [mips] SB1: Support for 1480 ethernet (Broadcom). + * [mips] SB1: Support for NAPI (Tom Rix). + * [mips] SB1: DUART support (Broadcom). + * [mips] Work around bad code generation for (Ralf Baechle). + * [mips] Fix VINO drivers when using a 64-bit kernel (Mikael Nousiainen). + * [arm/armeb] Update configs for 2.6.16. + * [mips/mipsel] Update configs for 2.6.16. + * [arm/armeb] Enable the SMB module on NSLU2. + * [mipsel] Enable parallel port modules for Cobalt since there are PCI + cards that can be used in a Qube. + * [mipsel] Enable the JFS module on Cobalt. + + [ dann frazier ] + * [ia64] use yaird on ia64 until #357414 is fixed + * [ia64] Update configs for 2.6.16 + + -- Bastian Blank Tue, 21 Mar 2006 16:12:16 +0100 + +linux-2.6 (2.6.15+2.6.16-rc5-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release candidate. + + [ Martin Michlmayr ] + * Add initial mips/mipsel 2.6 kernels. + * Important changes compared to the 2.4 kernels: + - Drop the XXS1500 flavour since there's little interest in it. + - Drop the LASAT flavour since these machines never went into + production. + - Drop the IP22 R5K (Indy, Indigo2) flavour since the IP22 R4K + image now also works on machines with a R5K CPU. + - Add an image for SGI IP32 (O2). + - Rename the sb1-swarm-bn flavour to sb1-bcm91250a. + - Enable PCI network (and other) modules on Cobalt. Closes: #315895. + * Add various MIPS related patches: + - Fix iomap compilation on machines without COW. + - Improve gettimeofday on MIPS. + - Fix an oops on IP22 zerilog (serial console). + - Improve IDE probing so it won't take so long on Cobalt. + - Probe for IDE disks on SWARM. + - Test whether there's a scache (fixes Cobalt crash). + - Add Tulip fixes for Cobalt. + * Fix a typo in the description of the linux-doc-* package, + thanks Justin Pryzby. Closes: #343424. + * [arm] Enable nfs and nfsd modules. + * [arm/footbride] Suggest nwutil (Netwinder utilities). + + -- Frederik Schüler Thu, 9 Mar 2006 14:13:17 +0000 + +linux-2.6 (2.6.15+2.6.16-rc4-0experimental.1) experimental; urgency=low + + [ Frederik Schüler ] + * New upstream release. + * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64. + Closes: #353292 + * Globally enable NAPI on all network card drivers which support it. + + [ maximilian attems ] + * Drop fdutils from i386 and amd64 Suggests. + * Swap lilo and grub Suggests for i386 and amd64. + + [ Jurij Smakov ] + * Make sure that LOCALVERSION environment variable is not + passed to a shell while invoking make-kpkg, since it + appends it to the version string, breaking the build. + Closes: #349472 + * [sparc32] Re-enable the building of sparc32 images. + * [sparc64] Re-add (partial) sparc64-atyf-xl-gr.patch, since it + was only partially applied upstream, so the problem (garbled + screen output on SunBlade 100) is still present. Thanks to + Luis Ortiz for pointing it out. + * Bump the build-dep on kernel-package to 10.035, which fixes + the problem with building documentation packages. + + [ Martin Michlmayr ] + * [sparc] Add sys_newfstatat -> sys_fstatat64 fix from git. + * [arm] Update configs for 2.6.16-rc3. + * [armeb] Update configs for 2.6.16-rc3. + * [arm/armeb] Fix compilation error on NSLU2 due to recent flash + changes. + * [arm/armeb] Fix a compilation error in the IXP4xx beeper support + (Alessandro Zummo). + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config* for 2.6.16-rc3. + + -- Bastian Blank Fri, 24 Feb 2006 16:02:11 +0000 + +linux-2.6 (2.6.15-8) unstable; urgency=high + + [ maximilian attems ] + * Add stable Release 2.6.15.5: + - Fix deadlock in br_stp_disable_bridge + - Fix a severe bug + - i386: Move phys_proc_id/early intel workaround to correct function + - ramfs: update dir mtime and ctime + - sys_mbind sanity checking + - Fix s390 build failure. + - Revert skb_copy_datagram_iovec() recursion elimination. + - s390: add #ifdef __KERNEL__ to asm-s390/setup.h + - netfilter missing symbol has_bridge_parent + - hugetlbfs mmap ENOMEM failure + - IB/mthca: max_inline_data handling tweaks + - it87: Fix oops on removal + - hwmon it87: Probe i2c 0x2d only + - reiserfs: disable automatic enabling of reiserfs inode attributes + - Fix snd-usb-audio in 32-bit compat environment + - dm: missing bdput/thaw_bdev at removal + - dm: free minor after unlink gendisk + - gbefb: IP32 gbefb depth change fix + - shmdt cannot detach not-alined shm segment cleanly. + - Address autoconfiguration does not work after device down/up cycle + - gbefb: Set default of FB_GBE_MEM to 4 MB + - XFS ftruncate() bug could expose stale data (CVE-2006-0554) + - sys_signal: initialize ->sa_mask + - do_sigaction: cleanup ->sa_mask manipulation + - fix zap_thread's ptrace related problems + - fix deadlock in ext2 + - cfi: init wait queue in chip struct + - sd: fix memory corruption with broken mode page headers + - sbp2: fix another deadlock after disconnection + - skge: speed setting + - skge: fix NAPI/irq race + - skge: genesis phy initialization fix + - skge: fix SMP race + - x86_64: Check for bad elf entry address (CVE-2006-0741) + - alsa: fix bogus snd_device_free() in opl3-oss.c + - ppc32: Put cache flush routines back into .relocate_code section + - sys32_signal() forgets to initialize ->sa_mask + - Normal user can panic NFS client with direct I/O (CVE-2006-0555) + * Deactivate merged duplicates: s390-klibc-buildfix.patch, + powerpc-relocate_code.patch. + * Add stable Release 2.6.15.6: + - Don't reset rskq_defer_accept in reqsk_queue_alloc + - fs/nfs/direct.c compile fix + - mempolicy.c compile fix, make sure BITS_PER_BYTE is defined + - [IA64] die_if_kernel() can return (CVE-2006-0742) + + [ Sven Luther ] + * [powerpc] Disabled CONFIG_IEEE1394_SBP2_PHYS_DMA, which was broken on + powerpc64, as it used the long deprecated bus_to_virt symbol. + (Closes: #330225) + * [powerpc] Fixed gettimeofday breakage causing clock drift. + + -- Bastian Blank Mon, 6 Mar 2006 11:06:28 +0100 + +linux-2.6 (2.6.15-7) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Disabled CONFIG_ALPHA_LEGACY_START_ADDRESS for -alpha-generic and + -alpha-smp flavours, and introduced a new -alpha-legacy flavour for MILO + based machines, which has CONFIG_ALPHA_LEGACY_START_ADDRESS enabled. + (closes: #352186) + * [alpha] Added new patch to support prctl syscall. (closes: #349765) + * [i386] Renamed kernel-image-2.6-486 to kernel-image-2.6-386, it's meant for + transition only, and kernel-image-2.6-386 is the package name in sarge. + + [ Jurij Smakov ] + * Bump build-dependency on kernel-package to 10.035, which is fixed + to build the documentation packages again. + Closes: #352000, #348332 + + [ Frederik Schüler ] + * Activate CONFIG_DVB_AV7110_OSD on alpha amd64 and ia64. + Closes: #353292 + * Deactivate CONFIG_FB_ATY_XL_INIT on all architectures: it is broken and + already removed in 2.6.16-rc. + Closes: #353310 + + [ Christian T. Steigies ] + * [m68k] build in cirrusfb driver + + -- Bastian Blank Tue, 21 Feb 2006 17:35:21 +0000 + +linux-2.6 (2.6.15-6) unstable; urgency=low + + [ Bastian Blank ] + * Moved the mkvmlinuz support patch modification to a -1 version of the + patch. + + [ maximilian attems ] + * Add stable treee 2.6.15.4 + - PCMCIA=m, HOSTAP_CS=y is not a legal configuration + - Input: iforce - do not return ENOMEM upon successful allocation + - x86_64: Let impossible CPUs point to reference per cpu data + - x86_64: Clear more state when ignoring empty node in SRAT parsing + - x86_64: Dont record local apic ids when they are disabled in MADT + - Fix keyctl usage of strnlen_user() + - Kill compat_sys_clock_settime sign extension stub. + - Input: grip - fix crash when accessing device + - Input: db9 - fix possible crash with Saturn gamepads + - Input: iforce - fix detection of USB devices + - Fixed hardware RX checksum handling + - SCSI: turn off ordered flush barriers + - Input: mousedev - fix memory leak + - seclvl settime fix + - fix regression in xfs_buf_rele + - md: remove slashes from disk names when creation dev names in sysfs + - d_instantiate_unique / NFS inode leakage + - dm-crypt: zero key before freeing it + - bridge: netfilter races on device removal + - bridge: fix RCU race on device removal + - SELinux: fix size-128 slab leak + - __cmpxchg() must really always be inlined + - emu10k1 - Fix the confliction of 'Front' control + - Input: sidewinder - fix an oops + * Deactivate merged alpha-cmpxchg-inline.patch, sparc64-clock-settime.patch. + + [ Christian T. Steigies ] + * [m68k] Add fix for m68k/buddha IDE and m68k/mac SCSI driver + * [m68k] Patch by Peter Krummrich to stop flickering pixels with PicassoII + * [m68k] make Amiga keyboard usable again, patch by Roman Zippel + * [m68k] prevent wd33c93 SCSI driver from crashing the kernel, patch by Roman Zippel + * [m68k] remove SBCs from VME descriptions (closes: #351924) + + -- Frederik Schüler Fri, 10 Feb 2006 15:33:21 +0000 + +linux-2.6 (2.6.15-5) unstable; urgency=low + + [ Martin Michlmayr ] + * Add a fix for the input support for the ixp4xx beeper driver from + 2.6.16-rc2. + * Add stable tree 2.6.15.3: + - Fix extra dst release when ip_options_echo fails (CVE-2006-0454) + + [ Sven Luther ] + * [powerpc] Removed -o root -g root option to mkvmlinuz support patch. + (Closes: #351412) + + -- Sven Luther Tue, 7 Feb 2006 19:23:14 +0000 + +linux-2.6 (2.6.15-4) unstable; urgency=low + + [ Jurij Smakov ] + * [sparc64] Add sparc64-clock-settime.patch to fix the incorrect + handling of the clock_settime syscall arguments, which resulted + in a hang when trying to set the date using 'date -s'. Patch + by David Miller is applied upstream. Thanks to Ludovic Courtes + and Frans Pop for reporting and testing. + Ref: http://marc.theaimsgroup.com/?t=113861017400002&r=1&w=2 + + [ Christian T. Steigies ] + * [m68k] update m68k patch and config to 2.6.15 + * [m68k] SCSI drivers need to be built in until ramdisk generator tools + supports loading scsi modules + * [m68k] ISCSI and IDE-TAPE don't compile, disabled + * [m68k] set CC_OPTIMIZE_FOR_SIZE=n + * [m68k] added vmeints patch which fixes building for vme + + [ maximilian attems ] + * Use initramfs-tools for ia64 - fixed klibc. + * Add stable tree 2.6.15.2: + - Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open + - (CVE-2005-3356) + - Mask off GFP flags before swiotlb_alloc_coherent + - usb-audio: don't use empty packets at start of playback + - Make second arg to skb_reserved() signed. + - Input: HID - fix an oops in PID initialization code + - Fix oops in ufs_fill_super at mount time + - Kill blk_attempt_remerge() + - Fix i2o_scsi oops on abort + - Fix mkiss locking bug + - Fix timekeeping on sparc64 ultra-IIe machines + - Someone broke reiserfs v3 mount options and this fixes it + * Deactivate sparc64-jumping-time.patch, amd64-pppd-fix.patch incl in aboves. + * Add s390-klibc-buildfix.patch, regression due to header file changes. + + [ Steve Langasek ] + * [alpha] set __attribute__((always_inline)) on __cmpxchg(), to avoid + wrong optimizations with -Os (Closes: #347556). + + [ Martin Michlmayr ] + * Add input support for the ixp4xx beeper driver (Alessandro Zummo). + * [arm] Add NSLU2 specific portion of ixp4xx beeper driver (Alessandro Zummo). + * [arm/nslu2] Build PPP as a module. + * [arm/nslu2] Enable wireless. + * [arm/nslu2] Enable most USB modules. + * [arm/nslu2] Enable ALSA and USB sound modules. + * [arm/nslu2] Set 4 MB as the size of the initrd in the kernel cmd line. + * [arm/footbridge] Set CONFIG_BLK_DEV_RAM_SIZE to 8192. + * [armeb] Add support for big-endian ARM. + * [armeb/nslu2] Use the nslu2 config from arm. + + [ Frederik Schüler ] + * [amd64] Add amd64-pppd-fix.patch to fix kernel panic when using pppd. + (Closes: #347711) + * Add 64bit-vidiocswin-ioctl-fix.patch to fix VIDIOCSWIN ioctl on 64bit + kernel 32bit userland setups. (Closes: #349338) + + [ Sven Luther ] + * [powerpc] Adapted apus config file to be more modular and in sync with the + other powerpc configs. Scsi drivers are disabled as they don't build + cleanly though (need some esp stuff). + * [powerpc] Default to initramfs-tools as initramfs generator, as klibc + build is fixed now. + + [ Bastian Blank ] + * [powerpc] Fix dependencies of image packages. + + -- maximilian attems Wed, 1 Feb 2006 11:34:20 +0100 + +linux-2.6 (2.6.15-3) unstable; urgency=low + + [ Martin Michlmayr ] + * [arm] Update configs for 2.6.15; closes: #347998. + * [arm] Activate tmpfs. + * [arm] Allow modules to be unloaded. + * [arm] Enable CONFIG_INPUT_EVDEV since yaird needs this module in + order to generate initrds. + * [arm/footbridge] Activate IDEPCI so SL82C105 will really be + compiled in. + * [arm/footbridge] Activate the right network drivers (Tulip and + NE2K). + * [arm/footbridge] Enable more framebuffer drivers. + * debian/patches/arm-fix-dc21285.patch: Fix compilation of DC21285 + flash driver. + * [arm/footbridge] Enable MTD and the DC21285 flash driver. + * [arm/footbridge] Enable RAID and LVM modules. + * [arm/footbridge] Enable USB modules. + * [arm/nslu2] Add an image for Network Storage Link for USB 2.0 Disk + Drives. + * debian/patches/arm-memory-h-page-shift.patch: Fix error "PAGE_SHIFT + undeclared" (Rod Whitby). + * debian/patches/mtdpart-redboot-fis-byteswap.patch: recognise a foreign + endian RedBoot partition table (John Bowler). + * debian/patches/maclist.patch: Add support for the maclist interface + (John Bowler). + * debian/patches/arm-nslu2-maclist.patch: Add NSLU2 maclist support + (John Bowler). + * [arm/nslu2] Activate maclist. + + [ maximilian attems ] + * Add stable tree 2.6.15.1: + - arch/sparc64/Kconfig: fix HUGETLB_PAGE_SIZE_64K dependencies + - moxa serial: add proper capability check + - fix /sys/class/net//wireless without dev->get_wireless_stats + - Don't match tcp/udp source/destination port for IP fragments + - Fix sys_fstat64() entry in 64-bit syscall table. + - UFS: inode->i_sem is not released in error path + - netlink oops fix due to incorrect error code + - Fix onboard video on SPARC Blade 100 for 2.6.{13,14,15} + - Fix DoS in netlink_rcv_skb() (CVE-2006-0035) + - fix workqueue oops during cpu offline + - Fix crash in ip_nat_pptp (CVE-2006-0036) + - Fix another crash in ip_nat_pptp (CVE-2006-0037) + - ppc32: Re-add embed_config.c to ml300/ep405 + - Fix ptrace/strace + - vgacon: fix doublescan mode + - BRIDGE: Fix faulty check in br_stp_recalculate_bridge_id() + - skge: handle out of memory on ring changes + * Drop merged patch: + - sparc64-atyfb-xl-gr-final.patch + + [ Simon Horman ] + * Fix booting on PReP machines + (Closes: #348040) + powerpc-relocate_code.patch + + -- Simon Horman Tue, 17 Jan 2006 18:01:17 +0900 + +linux-2.6 (2.6.15-2) unstable; urgency=low + + [ maximilian attems ] + * Default to initramfs-tools as initramfs generator for amd64, hppa, i386, + alpha and sparc. More archs will be added once klibc matures. + (Closes: #346141, #343147, #341524, #346305) + * Backport alsa patch for opl3 - Fix the unreleased resources. + (Closes: #346273) + * Readd buslogic-pci-id-table.patch. + + [ dann frazier ] + * [ia64] Update config for 2.6.15. + + [ Frederik Schüler ] + * Make CONFIG_IPW2100 a per-architecture option and deactivate it on all + architectures but i386. (Closes: #344515) + + [ Sven Luther ] + * Removed spurious file from powerpc-apus patch. (Closes: #346159) + + [ Norbert Tretkowski ] + * Backport the generic irq framework for alpha. (closes: #339080) + + [ Bastian Blank ] + * Remove pre-sarge conflict with hotplug. + * Fix hppa diff to apply. + * Make the latest packages depend on the corect version of the real images. + (closes: #346366) + + -- Bastian Blank Tue, 10 Jan 2006 16:54:21 +0100 + +linux-2.6 (2.6.15-1) unstable; urgency=low + + [ Sven Luther ] + * New upstream release. + * [powerpc] Now use ARCH=powerpc for 64bit powerpc flavours, 32bit still + stays with ARCH=ppc for now. + * [powerpc] Readded PReP Motorola PowerStack II Utah IDE interrupt + (Closes: #345424) + * [powerpc] Fixed apus patch. + * Added make-kpkg --arch option support to gencontrol.py. + * Added debian/bin/kconfig.ml to process config file snipplet, so we can + preserve the pre 2.6.15 ordering of config file snipplets. Upto 2.6.15 + the kernel Kconfig magic apparently kept the later occuring config options, + but it seems that this is no more the case. Instead of catting the config + files together, not use the kconfig.ml script to read in the files from + more generic to more specific, and keep only the more specific. + + [ Bastian Blank ] + * [s390] Update configs. + + [ Kyle McMartin ] + * [hppa] Snag latest hppa.diff from cvs.parisc-linux.org. + * [hppa] Update configs for 2.6.15. + * [hppa] Change parisc kernel names to something less ambiguous. + + [ dann frazier ] + * [ia64] Update ia64 configs + + [ maximilian attems ] + * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load + ide-generic and those successfull boots with initramfs-tools. + * Disable CONFIG_USB_BANDWIDTH, causes major trouble for alsa usb cards. + + [ Norbert Tretkowski ] + * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding + the klibc bug! + + [ Jonas Smedegaard ] + * Adjust short description of transitional package kernel-image-2.6- + 486 to mention 2.6 (not 2.6.12). + * Clean duplicate Kconfig options. + + [ Frederik Schüler ] + * Add updated version of drivers-scsi-megaraid_splitup.patch. + * Deactivate CONFIG_IDE_TASK_IOCTL on alpha and ia64 and make it a global + option. + * Make CONFIG_VIDEO_SAA7134 a global option. + * New option CONFIG_CC_OPTIMIZE_FOR_SIZE set per-arch. + * Rename i386 368 flavour to 486. + * Add myself to uploaders. + * Readdition of qla2xxx drivers, as firmware license has been fixed. + * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures: + statically linked has better performance then modules due to TLB issue. + * clean up debian-patches dir: remove all obsolete patches: + - alpha-compile-fix.patch: obsolete + - amd64-int3-fix.patch: fixed since 2.6.12 + - net-ipconntrack-nat-fix.patch: merged upstream after 2.6.14 release + - net-nf_queue-oops.patch: merged upstream after 2.6.14 release + - qla2xxx-removed.patch: obsolete + * Drop M386 support remains from the i386 386 flavour: built with M486 + from now on. + + [ Martin Michlmayr ] + * [arm] Don't define "compiler" since GCC 4.x is the default now anyway. + * [arm] Add descriptions for "class" and "longclass". + * [arm] Compile CONFIG_BLK_DEV_SL82C105 support into the kernel on + Footbridge. + * [arm] Compile ext3 support into the kernel on Footbridge. + * [arm] Turn on CONFIG_SERIAL_8250 support on Footbridge. + + [ Jurij Smakov ] + * [sparc] Correct the patch for the atyfb framebuffer driver + (sparc64-atyfb-xl-gr.patch) to finally fix the console and X + image defects on Blade 100/150. The new patch is named + sparc64-atyfb-xl-gr-final.patch to avoid the confusion. + Thanks to Luis F. Ortiz for fixing the patch and Luigi Gangitano + for testing it out. + * Drop tty-locking-fixes9.patch, which was preventing the oops during + shutdown on some sparc machines with serial console. Proper fix has + been incorporated upstream. + + [ Simon Horman ] + * Enable MKISS globally (closes: #340215) + * Add recommends libc6-i686 to 686 and k7 image packages + (closes: #278729) + * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO + as alsa snd-usb-audio still isn't quite there. + I expect this to be re-disabled at some stage, + possibly soon if it proves to be a source of bugs. + (closes: #340388) + + -- Sven Luther Tue, 3 Jan 2006 06:48:07 +0000 + +linux-2.6 (2.6.14-7) unstable; urgency=low + + [ maximilian attems ] + * Add stable tree 2.6.14.5 fixes: + - setting ACLs on readonly mounted NFS filesystems (CVE-2005-3623) + - Fix bridge-nf ipv6 length check + - Perform SA switchover immediately. + - Input: fix an OOPS in HID driver + - Fix hardware checksum modification + - kernel/params.c: fix sysfs access with CONFIG_MODULES=n + - Fix RTNLGRP definitions in rtnetlink.h + - Fix CTA_PROTO_NUM attribute size in ctnetlink + - Fix unbalanced read_unlock_bh in ctnetlink + - Fix NAT init order + - Fix incorrect dependency for IP6_NF_TARGET_NFQUEUE + - dpt_i2o fix for deadlock condition + - SCSI: fix transfer direction in sd (kernel panic when ejecting iPod) + - SCSI: fix transfer direction in scsi_lib and st + - Fix hardware rx csum errors + - Fix route lifetime. + - apci: fix NULL deref in video/lcd/brightness + * Disable CONFIG_USB_BANDWIDTH, causes major trouble on alsa usb cards. + (Closes: #344939) + + -- maximilian attems Tue, 27 Dec 2005 20:50:28 +0100 + +linux-2.6 (2.6.14-6) unstable; urgency=low + + [ Kyle McMartin ] + * Change parisc kernel names to something less ambiguous. + + [ maximilian attems ] + * Drop modular-ide.patch, nacked by ide upstream. Prevents udev to load + ide-generic and those successfull boots with initramfs-tools. + * Add stable tree 2.6.14.4 with the following fixes: + - drivers/scsi/dpt_i2o.c: fix a user-after-free + - drivers/message/i2o/pci.c: fix a use-after-free + - drivers/infiniband/core/mad.c: fix a use-after-free + - DVB: BUDGET CI card depends on STV0297 demodulator + - setkeys needs root + - Fix listxattr() for generic security attributes + - AGPGART: Fix serverworks TLB flush. + - Fix crash when ptrace poking hugepage areas + - I8K: fix /proc reporting of blank service tags + - i82365: release all resources if no devices are found + - bonding: fix feature consolidation + - libata: locking rewrite (== fix) + - cciss: bug fix for BIG_PASS_THRU + - ALSA: nm256: reset workaround for Latitude CSx + - cciss: bug fix for hpacucli + - V4L/DVB: Fix analog NTSC for Thomson DTT 761X hybrid tuner + - BRIDGE: recompute features when adding a new device + - 32bit integer overflow in invalidate_inode_pages2() + - USB: Adapt microtek driver to new scsi features + - ide-floppy: software eject not working with LS-120 drive + - Add try_to_freeze to kauditd + - V4L/DVB (3135) Fix tuner init for Pinnacle PCTV Stereo + - NETLINK: Fix processing of fib_lookup netlink messages + - ACPI: fix HP nx8220 boot hang regression + + [ Norbert Tretkowski ] + * [alpha] Removed conflict with initramfs-tools, thanks vorlon for finding + the klibc bug! + + [ Frederik Schüler ] + * Add updated drivers-scsi-megaraid_splitup.patch. (Closes: #317258) + * Add ppc64-thermal-overtemp.patch to fix a thermal control bug in G5 + machines. (Closes: #343980) + * Unpatch the following patches which are included in 2.6.14.4: + - setkeys-needs-root-1.patch + - setkeys-needs-root-2.patch + - mm-invalidate_inode_pages2-overflow.patch + - net-bonding-consolidation-fix.patch + + -- Frederik Schüler Tue, 20 Dec 2005 18:50:41 +0000 + +linux-2.6 (2.6.14-5) unstable; urgency=low + + [ dann frazier ] + * ia64-new-assembler-fix.patch + Fix ia64 builds with newer assembler (Closes: #341257) + + [ Sven Luther ] + * [powerpc] incremented ramdisk size to 24576 from 8192, needed by the + graphical installer, maybe we can bring this to 16384 later. + + [ Simon Horman ] + * Add recommends libc6-i686 to 686 and k7 image packages + (closes: #278729) + * Enable OBSOLETE_OSS_USB_DRIVER and USB_AUDIO + as alsa snd-usb-audio still isn't quite there. + I expect this to be re-disabled at some stage, + possibly soon if it proves to be a source of bugs. + (closes: #340388) + + [ dann frazier ] + * buslogic-pci-id-table.patch + add a pci device id table to fix initramfs-tools discovery. + (closes #342057) + * fix feature consolidation in bonding driver. (closes #340068) + + -- dann frazier Thu, 8 Dec 2005 10:59:31 -0700 + +linux-2.6 (2.6.14-4) unstable; urgency=low + + [ dann frazier ] + * setkeys-needs-root-1.patch, setkeys-needs-root-2.patch: + [SECURITY] Require root privilege to write the current + function key string entry of other user's terminals. + See CVE-2005-3257 (Closes: #334113) + + [ Simon Horman ] + * Enable MKISS globally (closes: #340215) + * mm-invalidate_inode_pages2-overflow.patch + [SECURITY] 32bit integer overflow in invalidate_inode_pages2() (local DoS) + * ctnetlink-check-if-protoinfo-is-present.patch + [SECURITY] ctnetlink: check if protoinfo is present (local DoS) + * ctnetlink-fix-oops-when-no-icmp-id-info-in-message.patch + [SECURITY] ctnetlink: Fix oops when no ICMP ID info in message (local DoS) + + [ Sven Luther ] + * Re-added powerpc/apus patch, now that Roman Zippel merged it in. + * Let's create asm-(ppc|ppc64) -> asm-powerpc symlink farm. (Closes: #340571) + + [ maximilian attems ] + * Add 2.6.14.3 patch - features changelog: + - isdn/hardware/eicon/os_4bri.c: correct the xdiLoadFile() signature + - x86_64/i386: Compute correct MTRR mask on early Noconas + - PPTP helper: Fix endianness bug in GRE key / CallID NAT + - nf_queue: Fix Ooops when no queue handler registered + - ctnetlink: check if protoinfo is present + - ip_conntrack: fix ftp/irc/tftp helpers on ports >= 32768 + - VFS: Fix memory leak with file leases + - hwmon: Fix lm78 VID conversion + - hwmon: Fix missing it87 fan div init + - ppc64 memory model depends on NUMA + - Generic HDLC WAN drivers - disable netif_carrier_off() + - ctnetlink: Fix oops when no ICMP ID info in message + - Don't auto-reap traced children + - packet writing oops fix + - PPTP helper: fix PNS-PAC expectation call id + - NAT: Fix module refcount dropping too far + - Fix soft lockup with ALSA rtc-timer + - Fix calculation of AH length during filling ancillary data. + - ip_conntrack TCP: Accept SYN+PUSH like SYN + - refcount leak of proto when ctnetlink dumping tuple + - Fix memory management error during setting up new advapi sockopts. + - Fix sending extension headers before and including routing header. + - hwmon: Fix missing boundary check when setting W83627THF in0 limits + * Remove ctnetlink-check-if-protoinfo-is-present.patch, + net-nf_queue-oops.patch - already included in 2.6.14.3. + + [ Frederik Schüler ] + * Make CONFIG_PACKET, PACKET_MM and UNIX builtin on all architectures: + statically linked has better performance then modules due to TLB issue. + * Add myself to uploaders. + + -- Frederik Schüler Sat, 26 Nov 2005 13:18:41 +0100 + +linux-2.6 (2.6.14-3) unstable; urgency=low + + [ Norbert Tretkowski ] + * [alpha] Switch to gcc 4.0. + * [alpha] Conflict with initramfs-tools, klibc is broken on alpha. + * [alpha] Enabled CONFIG_KOBJECT_UEVENT in arch/alphaconfig to fix trouble + with latest udev, thanks to Uwe Schindler for reporting. (closes: #338911) + * Bumped ABI revision: + + ABI changes on sparc and alpha because of compiler switch. + + 2.6.14.1 changes ABI of procfs. + + [ Sven Luther ] + * Set default TCP congestion algorithm to NewReno + BIC (Closes: #337089) + + [ maximilian attems ] + * Reenable CONFIG_SOFTWARE_SUSPEND on i386 and ppc, resume=/dev/ + must be set by boot loader. (Closes: #267600) + * Set CONFIG_USB_SUSPEND on i386. Usefull for suspend to ram and apm suspend. + * Add 2.6.14.1 patch: + - Al Viro: CVE-2005-2709 sysctl unregistration oops + * Add 2.6.14.2 patch: + - airo.c/airo_cs.c: correct prototypes + - fix XFS_QUOTA for modular XFS (closes: #337072) + - USB: always export interface information for modalias + - NET: Fix zero-size datagram reception + - fix alpha breakage + - Oops on suspend after on-the-fly switch to anticipatory i/o scheduler + - ipvs: fix connection leak if expire_nodest_conn=1 + - Fix ptrace self-attach rule + - fix signal->live leak in copy_process() + - fix de_thread() vs send_group_sigqueue() race + - prism54 : Fix frame length + - tcp: BIC max increment too large + * Remove alpha compile fix as contained in 2.6.14.2 + * Readd CONFIG_XFS_QUOTA=y. + * Disable ACPI cutoff year on i386, was set to 2001. + No need for acpi=force on boot. + + [ Jurij Smakov ] + * Fix the install-image script to correctly include all the necessary + stuff in scripts. (Closes: #336424) + * Enable CONFIG_SND_ALI5451 on sparc. + * Switch sparc to gcc-4.0. Thanks to Norbert for making sure it successfully + builds a working kernel now. + * Apply patch to fix ATI framebuffer output corruption on SunBlade 100 + (sparc64-atyfb-xl-gr.patch). Thanks to Luigi Gangitano. (Closes: #321200) + * Disable CONFIG_PARPORT_PC_FIFO on sparc, since it causes a hang whenever + something is sent to the parallel port device. Thanks to Attilla + (boera at rdslink.ro) for pointing that out. + + [ Simon Horman ] + * [386, AMD64] Set CONFIG_FRAMEBUFFER_CONSOLE=y instead of m. + As vesadb now built into the kernel, after finally dropping the + debian-specific patch to make it modular, make fbcons builtin too, else + all sorts of weird stuff happens which is hard for the inird builders to + automatically compenste for. (Closes: #336450) + * Redisable CONFIG_SOFTWARE_SUSPEND on ppc/miboot as it required + CONFIG_PM to compile. + * [NETFILTER] nf_queue: Fix Ooops when no queue handler registered + This is a regression introduced in 2.6.14. + net-nf_queue-oops.patch. (Closes: #337713) + * Make manuals with defconfig, as is required for kernel-package 10.008 + + [ dann frazier ] + * net-ipconntrack-nat-fix.patch - fix compilation of + ip_conntrack_helper_pptp.c when NAT is disabled. (Closes: #336431) + + [ Christian T. Steigies ] + * update m68k.diff to 2.6.14 + * add m68k-*vme* patches + * disable macsonic driver until the dma patch is fixed + * disable IEEE80211 drivers for all of m68k + + [ Frederik Schüler ] + * activate CONFIG_SECURITY_NETWORK to fix SElinux operation. + (Closes: #338543) + + -- Norbert Tretkowski Mon, 14 Nov 2005 10:23:05 +0100 + +linux-2.6 (2.6.14-2) unstable; urgency=low + + [ Simon Horman ] + * [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL + This fix, included as part of the 2.6.13.4 patch in + 2.6.13+2.6.14-rc4-0experimental.1 is CVE-2005-3181 + * Fix genearation of .extraversion, again (closes: #333842) + * Add missing kernel-arch and kernel-header-dirs to defines + so headers get included. (closes: #336521) + N.B: I only filled in arches where other's hadn't done so alread. + Please fix if its wrong. + * Allow powerpc64 to compile with AUDIT enabled but + AUDITSYSCALL disabled. powerpc64-audit_sysctl-build.patch + + [ dann frazier ] + * Update hppa.diff to 2.6.14-pa0 + + [ Norbert Tretkowski ] + * [alpha] New patch to include compiler.h in barrier.h, barrier() is used in + non-SMP case. + * [alpha] Added kernel-header-dirs and kernel-arch to debian/arch/alpha/defines + to include asm-alpha in linux-headers package. + * Added myself to Uploaders. + + [ Frederik Schüler ] + * [amd64] use DISCONTIGMEM instead of SPARSEMEM on amd64-k8-smp flavour to + fix bootup kernel panic. + * [amd64] include asm-x86_64 in linux-headers package. + * Deactivate AUDITSYSCALL globally, it slows down the kernel and is not + needed for selinux at all. + + -- Simon Horman Tue, 1 Nov 2005 15:27:40 +0900 + +linux-2.6 (2.6.14-1) unstable; urgency=low + + [ Sven Luther ] + * New upstream release. + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config* for 2.6.14. + + [ Simon Horman ] + * Fix misformatting of long description of + linux-patch-debian-linux-patch-debian-X.Y.Z. + templates/control.main.in + (closes: #335088) + * Make sure version is seeded in apply and unapply scripts. + Actually changed in some earlier, post 2.6.12, release, + but the changelog seems to be missing. + (closes: #324583) + + [ dann frazier ] + * [ia64] Disable the CONFIG_IA64_SGI_SN_XP module. This forces + CONFIG_GENERIC_ALLOCATOR and CONFIG_IA64_UNCACHED_ALLOCATOR to y, which + appears to break on zx1 systems. + + -- Simon Horman Fri, 28 Oct 2005 16:26:03 +0900 + +linux-2.6 (2.6.13+2.6.14-rc5-0experimental.1) experimental; urgency=low + + [ Sven Luther ] + * Upgraded to 2.6.14-rc5. + + [ Jonas Smedegaard ] + * Quote variables in debian/rules.real and postinstall (making it + safer to run with weird characters in path of build environment). + + [ Bastian Blank ] + * Add some missing files from scripts to headers packages. + * Add new patch powerpc-build-links.patch: Emit relative symlinks in + arch/ppc{,64}/include. + * Include arch/*/include into headers package. + + -- Sven Luther Tue, 25 Oct 2005 03:56:11 +0000 + +linux-2.6 (2.6.13+2.6.14-rc4-0experimental.1) experimental; urgency=low + + [ Sven Luther ] + * Upgraded to 2.6.14-rc4. + + [ Simon Horman ] + * Fix genearation of .extraversion (closes: #333842) + + [ dann frazier ] + * Enhance the linux-source description to explain the types of patches + Debian adds to it. (closes: #258043) + * Correct linux-patch-debian description. It replaces the + kernel-patch-debian packages, not the kernel-source packages. + + [ Jonas Smedegaard ] + * Fix building from within a very long dir (all patches was applied at + once - exhausting shell commandline, now applied one by one). + * Add Simon Horman, Sven Luther and myself as Uploaders. + + [ Bastian Blank ] + * Use list of revisions in patch scripts. + * Use correct names for tarball and scripts. + + [ Jurij Smakov ] + * [i386] Set the CONFIG_HPET_EMULATE_RTC option to make the clock + work properly on certain Dell machines. This required setting the + CONFIG_RTC option to 'y' instead of 'm'. (closes: #309909) + [i386] Enable VIDEO_CX88 and VIDEO_CX88_DVB (both set to 'm') by + popular demand. (closes: #330916) + + [ Norbert Tretkowski ] + * [alpha] Update arch/alpha/config for 2.6.13. + + [ Kyle McMartin ] + * [hppa] Oops. Fix linux-headers not including asm-parisc by adding + headers_dirs = parisc to Makefile.inc. + + [ maximilian attems ] + * Set CONFIG_FB_VESA=y for i386 and amd64 configs. (closes: #333003) + + [ Sven Luther ] + * [powerpc] Fixed apus build, now use mkvmlinuz too to generate the vmlinuz + kernel. + * Fixed control.image.in to depend on : + initramfs-tools | yaird | linux-ramdisk-tool + where linux-ramdisk-tools is the virtual package provided by all + initrd/initramfs generating tools. + + [ Frederik Schüler ] + * deactivate FB_RIVA on all architectures. + * deactivate BLK_DEV_IDESCSI on all architectures. + * Added patch-2.6.13.4: + - [SECURITY] key: plug request_key_auth memleak + See CAN-2005-3119 + - [SECURITY] Fix drm 'debug' sysfs permissions + See CAN-2005-3179 + - [SECURITY] Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL + - [SPARC64] Fix userland FPU state corruption. + - BIC coding bug in Linux 2.6.13 + - [SECURITY] orinoco: Information leakage due to incorrect padding + See CAN-2005-3180 + - ieee1394/sbp2: fixes for hot-unplug and module unloading + + [ Christian T. Steigies ] + * disable CONFIG_EXT2_FS_XIP for m68k like on all(?) other arches + * deactivate OKTAGON_SCSI for amiga/m68k until it can be compiled again + * deactivate CONFIG_KEYBOARD_HIL_OLD, CONFIG_KEYBOARD_HIL, CONFIG_MOUSE_HIL, + CONFIG_HIL_MLC, and CONFIG_HP_SDC for hp/m68k + * update m68k.diff for 2.6.13 + * split out patches that do not intefere with other arches to + patches-debian/m68k-* + + -- Bastian Blank Fri, 21 Oct 2005 12:17:47 +0000 + +linux-2.6 (2.6.13-1) experimental; urgency=low + + * New upstream release "git booost": + - new arch xtensa + - kexec/kdump + - execute-in-place + - inotify (closes: #304387) + - time-sharing cfq I/O scheduler + - manual driver binding + - voluntary preemption + - user-space I/O initiation for InfiniBand + - new speedy DES (crypto) implementation + - uml "almost-skas" mode support + - 250 HZ default (closes: #320366) + - fixes all over (alsa, archs, ide, input, ntfs, scsi, swsusp, usb, ..) + - orinoco driver updates (closes: #291684) + - md, dm updates (closes: #317787) + + [ Frederik Schüler ] + * [amd64] Added class and longclass descriptions for amd64 flavours. + * [amd64] add amd64-tlb-flush-sigsegv-fix.patch: disable tlb flush + filtering on smp systems to workaround processor errata. + * backport kernel-api-documentation-generation-fix.diff from git to fix + documentation build. + * Added patch-2.6.13.1: + - raw_sendmsg DoS (CAN-2005-2492) + - 32bit sendmsg() flaw (CAN-2005-2490) + - Reassembly trim not clearing CHECKSUM_HW + - Use SA_SHIRQ in sparc specific code. + - Fix boundary check in standard multi-block cipher processors + - 2.6.13 breaks libpcap (and tcpdump) + - x86: pci_assign_unassigned_resources() update + - Fix PCI ROM mapping + - aacraid: 2.6.13 aacraid bad BUG_ON fix + - Kconfig: saa7134-dvb must select tda1004x + + [ Simon Horman ] + * Disable BSDv3 accounting on hppa and alpha, it was already + disabled on all other architectures. Also unify BSD accounting + config into top level config, rather than per flavour configs. + * [SECURITY] The seq_file memory leak fix included in 2.6.12-6 + as part of upstream's 2.6.12.6 patchset is now CAN-2005-2800. + + [ Jurij Smakov, Simon Horman ] + * Ensure that only one kernel-manual/linux-manual package can + be installed at a time to avoid file conflicts. (closes: #320042) + + [ Bastian Blank ] + * Move audit, preempt and security settings to core config file. + * Fix powerpc configuration. + * Add debian version information to kernel version string. + * Drop coreutils | fileutils dependencies. + * Drop modular-vesafb patch. (closes: #222374, #289810) + + [ Christian T. Steigies ] + * update m68k.diff for linux-2.6.13 + * add m68k-42_dma.patch and m68k-sonic.patch that will be in upstream 2.6.14 + (which makes sun3 build fail, needs fixing) + + [ maximilian attems ] + * Drop drivers-add-scsi_changer.patch (merged) + * Drop drivers-ide-dma-blacklist-toshiba.patch (merged) + * Drop drivers-ide-__devinit.patch (merged) + * Added patch-2.6.13.2: + - USB: ftdi_sio: custom baud rate fix + - Fix up more strange byte writes to the PCI_ROM_ADDRESS config word + - Fix MPOL_F_VERIFY + - jfs: jfs_delete_inode must call clear_inode + - Fix DHCP + MASQUERADE problem + - Sun HME: enable and map PCI ROM properly + - Sun GEM ethernet: enable and map PCI ROM properly + - hpt366: write the full 4 bytes of ROM address, not just low 1 byte + - forcedeth: Initialize link settings in every nv_open() + - Lost sockfd_put() in routing_ioctl() + - lost fput in 32bit ioctl on x86-64 + * Added patch-2.6.13.3: + - Fix fs/exec.c:788 (de_thread()) BUG_ON + - Don't over-clamp window in tcp_clamp_window() + - fix IPv6 per-socket multicast filtering in exact-match case + - yenta oops fix + - ipvs: ip_vs_ftp breaks connections using persistence + - uml - Fix x86_64 page leak + - skge: set mac address oops with bonding + - tcp: set default congestion control correctly for incoming connections + + [ Sven Luther ] + * [powerpc] Added hotplug support to the mv643xx_eth driver : + powerpc-mv643xx-hotplug-support.patch + thanks go to Nicolas Det for providing the patch. + * [powerpc] Modified a couple of configuration options for the powerpc64 + flavour, fixes and enhances Apple G5 support (Closes: #323724, #328324) + * [powerpc] Added powerpc-miboot flavour to use exclusively with oldworld + powermac miboot floppies for debian-installer. + * [powerpc] Checked upgraded version of the apus patches, separated them in + a part which is safe to apply, and one which needs checking, and is thus + not applied yet. + + [ Kyle McMartin ] + * [hppa] Update hppa.diff to 2.6.13-pa4. + * [hppa] Add space register fix to pacache.S to hppa.diff. + + [ dann frazier ] + * Add a note to README.Debian that explains where users can find the .config + files used to generate the linux-image packages. Closes: #316809 + * [ia64] Workaround #325070 until upstream works out an acceptable solution. + This bug breaks module loading on non-SMP ia64 kernels. The workaround + is to temporarily use an SMP config for the non-SMP kernels. (Note that + John Wright is running benchmarks to determine the overhead of running + an SMP kernel on UP systems to help decide if this should be a + permanent change). + * [ia64] Update arch/ia64/config for 2.6.13 + + -- Simon Horman Thu, 6 Oct 2005 15:45:21 +0900 + +linux-2.6 (2.6.12-6) unstable; urgency=high + + [ Andres Salomon, Bastian Blank ] + * Change ATM and Classical-IP-over-ATM to be modular, instead of being + statically included. (closes: #323143) + + [ Sven Luther ] + * [powerpc] powerpc-pmac-sound-check.patch: Added pmac-sound sanity check. + * [powerpc] powerpc-apus.patch: + Added preliminary apus patch to package, not applied to kernel tree yet. + + [ Simon Horman ] + * Unset CC_OPTIMIZE_FOR_SIZE in i386 config, + it breaks iproute's (and other netlink users) ability + to set routes. (closes: #322723) + * Added 2.6.12.6 + - [SECURITY: CAN-2005-2555] Restrict socket policy loading to + CAP_NET_ADMIN. + - [SECURITY] Fix DST leak in icmp_push_reply(). Possible remote + DoS? + - [SECURITY] NPTL signal delivery deadlock fix; possible local + DoS. + - fix gl_skb/skb type error in genelink driver in usbnet + - [SECURITY] fix a memory leak in devices seq_file implementation; + local DoS. + - [SECURITY] Fix SKB leak in ip6_input_finish(); local DoS. + + [ Andres Salomon ] + * [hppa] enable discontiguous memory support for 32bit hppa images, so + they build. + + -- Andres Salomon Tue, 06 Sep 2005 10:14:35 -0400 + +linux-2.6 (2.6.12-5) unstable; urgency=low + + * Change ARM to use GCC 3.3 to avoid FTBFS errors with GCC 4 + (dann frazier) + + * Remove spurious double quote character from ia64 package descriptions. + (dann frazier) + + * Add transitional meta packages (kernel-image-2.6-*) for ia64. + (dann frazier) + + * Change fuzz factor to 1, stricter patch appliance. (Maximilian Attems) + + * Enabled CONFIG_THERM_PM72 on powerpc64 flavour. (Sven Luther) + + -- Bastian Blank Tue, 16 Aug 2005 21:43:31 +0200 + +linux-2.6 (2.6.12-4) unstable; urgency=low + + * Supply correct subarch values for the powerpc images. + + -- Bastian Blank Mon, 15 Aug 2005 21:06:18 +0200 + +linux-2.6 (2.6.12-3) unstable; urgency=low + + * Added reference to old kernel-* package names to make + transition a little more obvious to end users. + A Dan Jacobson special. (Simon Horman) Closes: #321167 + + * By the time this makes it into the archive, it will + be handling kernel-image-2.6-* packages. (Simon Horman) + Closes: #321867 + + * Link palinfo statically on ia64. (dann frazier) (Closes: #321885) + + * [hppa] : + - Add hppa arch specific patch. + - Build-Depend on binutils-hppa64 and gcc-4.0-hppa64. + (Kyle McMartin) + + * Fix permissions in source tarball. (Bastian Blank) (Closes: #322409) + + * Enable the CONFIG_IP_ADVANCED_ROUTER and related options on + sparc64 to sync with other architectures. (Jurij Smakov) + Closes: #321236 + + * Include all executables as well as *.sh and *.pl files found in + scripts directory in the headers package. (Bastian Blank) + Closes: #322612, #322680, #322765 + + * Include m68k headers into the arch-common headers package on + powerpc and make sure that all the directories are linked to + properly from the flavour-specific headers packages. (Jurij Smakov) + Closes: #322610 + + * [powerpc] Enabled the powerpc64 flavour, now that we have a real biarch + toolchain in sid. Many thanks go to GOTO Masanori and Matthias Klose as + well as any other who worked on the biarch toolchain to make this happen. + + * Added 2.6.12.5 (Simon Horman) + - Fix BUG() is triggered by a call to set_mempolicy() with a negativ + first argument. + - [amd64] Fix a SRAT handling on systems with dual cores. + - [amd64] SMP timing problem + - [security] Zlib fixes See CAN-2005-2458, CAN-2005-2459 + http://sources.redhat.com/ml/bug-gnu-utils/1999-06/msg00183.html + http://bugs.gentoo.org/show_bug.cgi + - Add zlib deflateBound() + - [security] Fix error during session join. See CAN-2005-2098 + - [security] Fix keyring destructor. See CAN-2005-2099 + - Module per-cpu alignment cannot always be met + http://www.ussg.iu.edu/hypermail/linux/kernel/0409.0/0768.html + Closes: #323039 + + -- Bastian Blank Mon, 15 Aug 2005 16:42:05 +0200 + +linux-2.6 (2.6.12-2) unstable; urgency=low + + * The Kernel Team offers its condolences to the family of Jens Schmalzing + (jensen@debian), who died Saturday, July 30, 2005 in a tragic accident in + Munich. Jens was a member of the Kernel Team, and was instrumental in + taking the powerpc kernel package to 2.6, as well as maintaining MOL + and its kernel modules. + + * Add @longclass@ variable to control file autogeneration. (Andres Salomon) + + * Bump build-depends on kernel-package to a fixed version (>= 9.005). + (Jurij Smakov, Sven Luther) (closes: #319657, #320422, #321625) + + * Change default ramdisk size for sparc to 16,384K to accomodate a fatter + d-i initrd for netboot installs. + (Joshua Kwan) + + * Don't build-depend on console-tools on s390. (Bastian Blank) + + * Add ARM support. (Vincent Sanders) + + * Add ia64 descriptions. (dann frazier) + + * Strip down the scripts dir in the headers packages. (Bastian Blank) + + * Add m68k support. (Christian T. Steigies) + + * Added 2.6.12.4 (Frederik Schüler) + - Fix powernow oops on dual-core athlon + - Fix early vlan adding leads to not functional device + - sys_get_thread_area does not clear the returned argument + - bio_clone fix + - Fix possible overflow of sock->sk_policy (CAN-2005-2456) + (closes: #321401) + - Wait until all references to ip_conntrack_untracked are dropped on + unload + - Fix potential memory corruption in NAT code (aka memory NAT) + - Fix deadlock in ip6_queue + - Fix signedness issues in net/core/filter.c + - x86_64 memleak from malicious 32bit elf program + - rocket.c: Fix ldisc ref count handling + - kbuild: build TAGS problem with O= + + * Enable CONFIG_6PACK=m for all archs (Andres Salomon) + (closes: #319646) + + * Overhaul the generation of the control file. Now it is handled + by debian/bin/gencontrol.py. The debian/control target in rules + also fails now, since we don't want the control file generated + during build. Arch-specific Depends and suggests are now generated + correctly. (Bastian Blank) (Closes: #319896) + + * [powerpc] Fixed typo which made asm-ppc and asm-ppc64 not being included + in the header package. (Sven Luther) (Closes: #320817) + + * Added list of flavours built to common header package. (Sven Luther) + + -- Bastian Blank Tue, 09 Aug 2005 11:12:40 +0200 + +linux-2.6 (2.6.12-1) unstable; urgency=low + + * New upstream release: + - "git rocks" + - address space randomization + - conversion of ide driver code to the device model + - restored Philips webcam driver + - new Broadcom bcm5706 gigabit driver + - new resource limits for the audio community + - Multipath device mapper + - Intel HD Audio alsa driver + - fixes + arch updates.. + - readdition of tg3 driver, as firmware license has been fixed + + * Dropped the following patches: + - patch-2.6.11.*.patch (merged) + - powerpc-ppc64-ibmvscsi.patch (Christoph didn't like it, and it failed + to build anyways) (Sven Luther) + - doc-post_halloween.patch (unless someone can come up w/ a valid + reason for carrying around rapidly bitrotting documentation...) + (Andres Salomon) + - sparc32-hypersparc-srmmu.patch (dropped until sparc32 is working + again, and we can figure out whether it's necessary) + - fix-alpha-ext3-oops.patch (no longer needed, fixed by compiler) + - x86-i486_emu.patch (buggy and insecure 80486 instruction emulation + for 80386; we're no longer supporting this) (closes: #250468) + - amd64-outs.patch (according to + http://www.ussg.iu.edu/hypermail/linux/kernel/0502.3/1095.html, this + is unnecessary for us) (Andres Salomon) + - sparc64-rtc-mostek.patch (merged) + - sparc64-compat-nanoseconds.patch (merged) + - sparc64-sunsu-init-2.6.11.patch (merged) + - sunsab-uart-update-timeout.patch (merged) + - alpha-read-trylock.patch (different version got merged) + - powerpc-prep-motorola-irq-fix.patch (merged) + - drivers-media-video-saa7134-update.patch (merged) + - drivers-media-video-saa7134-update-2.patch (merged) + - drivers-media-video-pll-lib.patch (merged) + - drivers-media-video-pll-lib-2.patch (merged) + - drivers-media-video-tuner-update-1.patch (merged) + - drivers-media-video-tuner-update-2.patch (merged) + - drivers-media-video-v4l-mpeg-support.patch (merged) + - drivers-media-video-mt352-update.patch (merged) + - arch-ppc64-hugepage-aio-panic.patch (merged) + - drivers-input-serio-nmouse.patch (merged) + - sparc64-sb1500-clock-2.6.patch (merged) + - docbook-allow-preprocessor-directives-... (merged) + - docbook-fix-function-parameter-descriptin-in-fbmem.patch (merged) + - docbook-move-kernel-doc-comment-next-to-function.patch (merged) + - powerpc-therm-adt746x-new-i2c-fix.patch (merged) + - powerpc-mv643xx-enet.patch (merged) + - powerpc-mv643xx-eth-pegasos.patch (merged) + - powerpc-pmac-agp-sleep.patch (merged) + - drivers-input-serio-8042-resume.patch (merged) + + * Premiere of the common-source kernel package + (Jurij Smakov, Andres Salomon) + - build all architectures out of kernel source package + - rename source and binary packages + - create a common config for different architectures, and management + tools to allow for easier modification of config options + - drop default configs, autogenerate them instead; requires + kernel-package >= 9.002. + + * Add 2.6.12.1 (Maximilian Attems) + - Clean up subthread exec (CAN-2005-1913) + - ia64 ptrace + sigrestore_context (CAN-2005-1761) + + * Add 2.6.12.2 (Frederik Schüler) + - Fix two socket hashing bugs. + - ACPI: Make sure we call acpi_register_gsi() even for default PCI + interrupt assignment + - Add "memory" clobbers to the x86 inline asm of strncmp and friends + - e1000: fix spinlock bug + - fix remap_pte_range BUG + - Fix typo in drivers/pci/pci-driver.c + + * Add 2.6.12.3 (Joshua Kwan) + - Fix semaphore handling in __unregister_chrdev + - Fix TT mode in UML. + - Check for a null return in tty_ldisc_ref. + - v4l: cx88 hue offset fix + - Fix 8139cp breakage that occurs with tpm driver. + - Fix the 6pack driver in SMP environments. + - Switch to spinlocks in the shaper driver. + - ppc32: stop misusing NTP's time_offset value + - netfilter: go back to dropping conntrack references manually + - ACPI: don't accept 0 as a PCI IRQ. + + * Enable CONFIG_SCSI_INITIO. (Maximilian Attems) (closes: #318121) + + * [powerpc] : + - Added powerpc-mkvmlinuz-support patch which allows, together with + kernel-package 9.0002 to add mkvmlinuz support to hand built packages. + - Removed powerpc-ppc64-ibmvscsi.patch, FTBFS, and Christoph doesn't like + it and thinks it is not needed. + - Disabled swim3 on powerpc-smp, FTBFS. + - Disabled software-suspend on powerpc-smp, FTBFS, amd64/i386 only smp code. + - Rediffed and readded the G4 L2 hardware flush assist patch from Jacob Pan. + (Sven Luther) + + * [sparc] + - Drop sparc32 flavour for now. sparc32 kernel is currently in the + category "too buggy for us to support". In spite of numerous efforts + I still see occasional random filesystem corruptions in my tests. + That does NOT mean that we are dropping sparc32 support, we will + work with upstream trying to solve these problems for the next + kernel release. Those interested in helping/testing are encouraged + to subscribe to debian-sparc mailing list. + (Jurij Smakov) + + * [alpha] + - Renamed resulting binary packages for alpha, kernel-image-x.y.z-generic + wasn't a generic kernel, it was a generic kernel for alpha machines, so + we're now using linux-image-x.y.z-alpha-generic (and of course, the same + change for the smp kernel-image). This change was postponed after the + sarge release. (closes: #260003) + (Norbert Tretkowski) + + * [amd64] + - Now using the default compiler (gcc-4.0), thus we get rid of the + annoying MAKEFLAGS="CC=gcc-3.4" make-kpkg... invocation for third-party + modules. + This release lacks 64bit kernels for i386 userland; support will be + added in a later release as soon as the toolchain has stabilized again. + (Frederik Schüler) + + -- Andres Salomon Wed, 20 Jul 2005 17:16:04 -0400 + diff --git a/compat b/compat new file mode 100644 index 00000000000..ec635144f60 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/config.defines.dump b/config.defines.dump new file mode 100644 index 00000000000..f92af114873 --- /dev/null +++ b/config.defines.dump @@ -0,0 +1,2204 @@ +cdebian_linux.config +ConfigCore +p0 +(tRp1 +(Vbase +p2 +tp3 +(dp4 +Varches +p5 +(lp6 +Valpha +p7 +aVamd64 +p8 +aVarm64 +p9 +aVarmel +p10 +aVarmhf +p11 +aVhppa +p12 +aVi386 +p13 +aVm68k +p14 +aVmips +p15 +aVmipsel +p16 +aVmipsn32 +p17 +aVmipsn32el +p18 +aVmips64 +p19 +aVmips64el +p20 +aVor1k +p21 +aVpowerpc +p22 +aVpowerpcspe +p23 +aVppc64 +p24 +aVppc64el +p25 +aVs390 +p26 +aVs390x +p27 +aVsh3 +p28 +aVsh4 +p29 +aVsparc +p30 +aVsparc64 +p31 +aVtilegx +p32 +aVx32 +p33 +asVfeaturesets +p34 +(lp35 +Vnone +p36 +aVrt +p37 +asVcompiler +p38 +Vgcc-6 +p39 +ss(Vbuild +p40 +tp41 +(dp42 +Vsigned-modules +p43 +I01 +sVdebug-info +p44 +I01 +ss(Vbase +p45 +NVrt +p46 +tp47 +(dp48 +Venabled +p49 +I01 +ss(Vdescription +p50 +tp51 +(dp52 +Vpart-long-up +p53 +VThis kernel is not suitable for SMP (multi-processor,\u000amulti-core or hyper-threaded) systems. +p54 +sVpart-long-xen +p55 +VThis kernel also runs on a Xen hypervisor.\u000aIt supports both privileged (dom0) and unprivileged (domU) operation. +p56 +ss(Vrelations +p57 +tp58 +(dp59 +Vinitramfs-tools +p60 +Vinitramfs-tools (>= 0.110~) +p61 +sVgcc-6 +p62 +Vgcc-6 , gcc-6-@gnu-type-package@:native +p63 +sVinitramfs-fallback +p64 +Vlinux-initramfs-tool +p65 +ss(Vimage +p66 +tp67 +(dp68 +Vinitramfs-generators +p69 +(lp70 +Vinitramfs-tools +p71 +aVinitramfs-fallback +p72 +ass(Vabi +p73 +tp74 +(dp75 +Vabiname +p76 +V1 +p77 +ss(Vbase +p78 +Valpha +p79 +tp80 +(dp81 +Vfeaturesets +p82 +(lp83 +Vnone +p84 +asVkernel-arch +p85 +Valpha +p86 +ss(Vdescription +p87 +g79 +NValpha-smp +p88 +tp89 +(dp90 +Vhardware +p91 +VAlpha SMP +p92 +sVhardware-long +p93 +VDEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel) +p94 +ss(Vbuild +p95 +g79 +tp96 +(dp97 +Vsigned-modules +p98 +I00 +sVimage-file +p99 +Varch/alpha/boot/vmlinux.gz +p100 +ss(Vdescription +p101 +g79 +NValpha-generic +p102 +tp103 +(dp104 +Vhardware +p105 +VAlpha +p106 +sVhardware-long +p107 +VDEC Alpha systems with extended kernel start address (Wildfire, Titan, Marvel) +p108 +ss(Vimage +p109 +g79 +tp110 +(dp111 +Vsuggests +p112 +Vaboot, fdutils +p113 +sVinstall-stem +p114 +Vvmlinuz +p115 +ss(Vbase +p116 +g79 +g84 +tp117 +(dp118 +Vflavours +p119 +(lp120 +Valpha-generic +p121 +aValpha-smp +p122 +asVimplicit-flavour +p123 +I01 +ss(Vbase +p124 +Vamd64 +p125 +tp126 +(dp127 +Vfeaturesets +p128 +(lp129 +Vnone +p130 +aVrt +p131 +asVkernel-arch +p132 +Vx86 +p133 +ss(Vdescription +p134 +g125 +NVamd64 +p135 +tp136 +(dp137 +Vhardware +p138 +V64-bit PCs +p139 +sVhardware-long +p140 +VPCs with AMD64, Intel 64 or VIA Nano processors +p141 +ss(Vbuild +p142 +g125 +tp143 +(dp144 +Vvdso +p145 +I01 +sVimage-file +p146 +Varch/x86/boot/bzImage +p147 +sVdebug-info +p148 +I01 +ss(Vrelations +p149 +g125 +tp150 +(dp151 +Vheaders%gcc-5 +p152 +Vlinux-compiler-gcc-5-x86 +p153 +ss(Vimage +p154 +g125 +tp155 +(dp156 +Vbreaks +p157 +Vxserver-xorg-input-vmmouse (<< 1:13.0.99) +p158 +sVinstall-stem +p159 +Vvmlinuz +p160 +sVbootloaders +p161 +(lp162 +Vgrub-pc +p163 +aVgrub-efi-amd64 +p164 +aVextlinux +p165 +ass(Vbase +p166 +g125 +Vnone +p167 +tp168 +(dp169 +Vflavours +p170 +(lp171 +Vamd64 +p172 +ass(Vdescription +p173 +g125 +g167 +Vamd64 +p174 +tp175 +(dp176 +Vparts +p177 +(lp178 +Vxen +p179 +ass(Vbase +p180 +g125 +Vrt +p181 +tp182 +(dp183 +Vflavours +p184 +(lp185 +Vamd64 +p186 +ass(Vbase +p187 +Varm64 +p188 +tp189 +(dp190 +Vfeaturesets +p191 +(lp192 +Vnone +p193 +asVkernel-arch +p194 +Varm64 +p195 +ss(Vdescription +p196 +g188 +NVarm64 +p197 +tp198 +(dp199 +Vhardware +p200 +V64-bit ARMv8 machines +p201 +ss(Vbuild +p202 +g188 +tp203 +(dp204 +Vvdso +p205 +I01 +sVimage-file +p206 +Varch/arm64/boot/Image +p207 +sVdebug-info +p208 +I01 +ss(Vimage +p209 +g188 +NVarm64 +p210 +tp211 +(dp212 +s(Vimage +p213 +g188 +tp214 +(dp215 +Vbreaks +p216 +Vlibmozjs185-1.0, libmozjs-24-0 (<< 24.2.0-5.1~) +p217 +sVinstall-stem +p218 +Vvmlinuz +p219 +ss(Vbase +p220 +g188 +Vnone +p221 +tp222 +(dp223 +Vflavours +p224 +(lp225 +Varm64 +p226 +ass(Vbase +p227 +Varmel +p228 +tp229 +(dp230 +g82 +(lp231 +g84 +asVkernel-arch +p232 +Varm +p233 +ss(Vbuild +p234 +g228 +tp235 +(dp236 +Vsigned-modules +p237 +I00 +sVimage-file +p238 +Varch/arm/boot/zImage +p239 +ss(Vimage +p240 +g228 +NVmarvell +p241 +tp242 +(dp243 +Vrecommends +p244 +Vu-boot-tools +p245 +sVbreaks +p246 +Vflash-kernel (<< 3.57~) +p247 +sVcheck-size-with-dtb +p248 +I01 +sVcheck-size +p249 +L2097080L +ss(Vdescription +p250 +g228 +NVmarvell +p251 +tp252 +(dp253 +Vhardware +p254 +VMarvell Kirkwood/Orion +p255 +sVhardware-long +p256 +VMarvell Kirkwood based systems (SheevaPlug, QNAP TS-119/TS-219, etc)\u000aand Orion 5181, 5182 and 5281 based systems (QNAP TS-109/TS-209, etc) +p257 +ss(Vrelations +p258 +g228 +tp259 +(dp260 +Vheaders%gcc-5 +p261 +Vlinux-compiler-gcc-5-arm +p262 +ss(Vimage +p263 +g228 +tp264 +(dp265 +Vinstall-stem +p266 +Vvmlinuz +p267 +ss(g116 +g228 +g84 +tp268 +(dp269 +g119 +(lp270 +Vmarvell +p271 +asg123 +I01 +ss(Vbase +p272 +Varmhf +p273 +tp274 +(dp275 +g82 +(lp276 +g84 +asVkernel-arch +p277 +Varm +p278 +ss(Vdescription +p279 +g273 +NVarmmp +p280 +tp281 +(dp282 +Vhardware +p283 +VARMv7 multiplatform compatible SoCs +p284 +sVhardware-long +p285 +VARMv7 multiplatform kernel. See\u000ahttps://wiki.debian.org/DebianKernel/ARMMP for details of supported\u000aplatforms +p286 +ss(Vbuild +p287 +g273 +tp288 +(dp289 +Vvdso +p290 +I01 +sVimage-file +p291 +Varch/arm/boot/zImage +p292 +ss(Vdescription +p293 +g273 +NVarmmp-lpae +p294 +tp295 +(dp296 +Vhardware +p297 +VARMv7 multiplatform compatible SoCs supporting LPAE +p298 +sVhardware-long +p299 +VARMv7 multiplatform kernel supporting LPAE. See\u000ahttps://wiki.debian.org/DebianKernel/ARMMP for details of supported\u000aplatforms. +p300 +ss(Vrelations +p301 +g273 +tp302 +(dp303 +Vheaders%gcc-5 +p304 +Vlinux-compiler-gcc-5-arm +p305 +ss(Vimage +p306 +g273 +tp307 +(dp308 +Vinstall-stem +p309 +Vvmlinuz +p310 +ss(g116 +g273 +g84 +tp311 +(dp312 +g119 +(lp313 +Varmmp +p314 +aVarmmp-lpae +p315 +asg123 +I01 +ss(Vbase +p316 +Vhppa +p317 +tp318 +(dp319 +g82 +(lp320 +g84 +asVkernel-arch +p321 +Vparisc +p322 +ss(Vbuild +p323 +g317 +tp324 +(dp325 +Vsigned-modules +p326 +I00 +sVimage-file +p327 +Vvmlinux +p328 +ss(Vdescription +p329 +g317 +NVparisc64-smp +p330 +tp331 +(dp332 +Vhardware +p333 +Vmultiprocessor 64-bit PA-RISC +p334 +sVhardware-long +p335 +VHP PA-RISC 64-bit SMP systems with support for more than 4 GB RAM +p336 +ss(Vbase +p337 +g317 +NVparisc64-smp +p338 +tp339 +(dp340 +Vcflags +p341 +V-fno-cse-follow-jumps +p342 +sVoverride-host-type +p343 +Vhppa64-linux-gnu +p344 +ss(Vrelations +p345 +g317 +tp346 +(dp347 +Vgcc-6 +p348 +Vgcc-6 , binutils-hppa64-linux-gnu , gcc-6-hppa64-linux-gnu , gcc-6-hppa-linux-gnu:native , binutils-hppa64-linux-gnu:native , gcc-6-hppa64-linux-gnu:native +p349 +ss(Vdescription +p350 +g317 +NVparisc +p351 +tp352 +(dp353 +Vhardware +p354 +V32-bit PA-RISC +p355 +sVhardware-long +p356 +VHP PA-RISC 32-bit systems with max 4 GB RAM +p357 +ss(Vimage +p358 +g317 +tp359 +(dp360 +Vsuggests +p361 +Vpalo +p362 +sVinstall-stem +p363 +Vvmlinux +p364 +ss(g116 +g317 +g84 +tp365 +(dp366 +g119 +(lp367 +Vparisc +p368 +aVparisc64-smp +p369 +asg123 +I01 +ss(Vbase +p370 +Vi386 +p371 +tp372 +(dp373 +Vfeaturesets +p374 +(lp375 +Vnone +p376 +aVrt +p377 +asVkernel-arch +p378 +Vx86 +p379 +ss(Vbuild +p380 +g371 +tp381 +(dp382 +Vvdso +p383 +I01 +sVimage-file +p384 +Varch/x86/boot/bzImage +p385 +ss(Vdescription +p386 +g371 +NV686-pae +p387 +tp388 +(dp389 +Vhardware +p390 +Vmodern PCs +p391 +sVhardware-long +p392 +VPCs with one or more processors supporting PAE +p393 +sVparts +p394 +(lp395 +Vpae +p396 +ass(Vdescription +p397 +g371 +tp398 +(dp399 +Vpart-long-pae +p400 +VThis kernel requires PAE (Physical Address Extension).\u000aThis feature is supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon,\u000aCore and Atom; AMD Geode NX, Athlon (K7), Duron, Opteron, Sempron,\u000aTurion or Phenom; Transmeta Efficeon; VIA C7; and some other processors. +p401 +ss(Vbuild +p402 +g371 +NV686-pae +p403 +tp404 +(dp405 +Vdebug-info +p406 +I01 +ss(Vdescription +p407 +g371 +NV686 +p408 +tp409 +(dp410 +Vhardware +p411 +Volder PCs +p412 +sVhardware-long +p413 +VPCs with one or more processors not supporting PAE +p414 +ss(Vrelations +p415 +g371 +tp416 +(dp417 +Vheaders%gcc-5 +p418 +Vlinux-compiler-gcc-5-x86 +p419 +ss(Vimage +p420 +g371 +tp421 +(dp422 +Vbreaks +p423 +Vxserver-xorg-input-vmmouse (<< 1:13.0.99) +p424 +sVinstall-stem +p425 +Vvmlinuz +p426 +sVbootloaders +p427 +(lp428 +Vgrub-pc +p429 +aVextlinux +p430 +ass(Vbase +p431 +g371 +Vnone +p432 +tp433 +(dp434 +Vflavours +p435 +(lp436 +V686 +p437 +aV686-pae +p438 +ass(Vdescription +p439 +g371 +g432 +V686-pae +p440 +tp441 +(dp442 +Vparts +p443 +(lp444 +Vxen +p445 +ass(Vbase +p446 +g371 +Vrt +p447 +tp448 +(dp449 +Vflavours +p450 +(lp451 +V686-pae +p452 +ass(Vbase +p453 +Vm68k +p454 +tp455 +(dp456 +Vcflags +p457 +V-ffreestanding +p458 +sg82 +(lp459 +g84 +asVkernel-arch +p460 +Vm68k +p461 +ss(Vbuild +p462 +g454 +tp463 +(dp464 +Vsigned-modules +p465 +I00 +sVimage-file +p466 +Vvmlinux.gz +p467 +ss(Vdescription +p468 +g454 +NVm68k +p469 +tp470 +(dp471 +Vhardware +p472 +VMotorola MC68020+ family +p473 +ss(Vimage +p474 +g454 +tp475 +(dp476 +Vsuggests +p477 +Vvmelilo, fdutils +p478 +sVinstall-stem +p479 +Vvmlinuz +p480 +ss(g116 +g454 +g84 +tp481 +(dp482 +g119 +(lp483 +Vm68k +p484 +asg123 +I01 +ss(Vbase +p485 +Vmips +p486 +tp487 +(dp488 +g82 +(lp489 +g84 +asVkernel-arch +p490 +Vmips +p491 +ss(Vbuild +p492 +g486 +tp493 +(dp494 +Vsigned-modules +p495 +I00 +sVimage-file +p496 +Vvmlinux +p497 +ss(Vimage +p498 +g486 +NV4kc-malta +p499 +tp500 +(dp501 +Vconfigs +p502 +(lp503 +Vkernelarch-mips/config.malta +p504 +aVkernelarch-mips/config.mips32r2 +p505 +ass(Vimage +p506 +g486 +NV5kc-malta +p507 +tp508 +(dp509 +Vconfigs +p510 +(lp511 +Vkernelarch-mips/config.malta +p512 +aVkernelarch-mips/config.mips64r2 +p513 +ass(Vdescription +p514 +g486 +NVocteon +p515 +tp516 +(dp517 +Vhardware +p518 +VOcteon +p519 +sVhardware-long +p520 +VCavium Networks Octeon +p521 +ss(Vimage +p522 +g486 +NVocteon +p523 +tp524 +(dp525 +Vconfigs +p526 +(lp527 +Vkernelarch-mips/config.octeon +p528 +ass(Vimage +p529 +g486 +tp530 +(dp531 +Vinstall-stem +p532 +Vvmlinux +p533 +ss(Vdescription +p534 +g486 +NV5kc-malta +p535 +tp536 +(dp537 +Vhardware +p538 +VMIPS Malta (64-bit) +p539 +sVhardware-long +p540 +VMIPS Malta boards (64-bit) +p541 +ss(Vdescription +p542 +g486 +NV4kc-malta +p543 +tp544 +(dp545 +Vhardware +p546 +VMIPS Malta +p547 +sVhardware-long +p548 +VMIPS Malta boards +p549 +ss(g116 +g486 +g84 +tp550 +(dp551 +g119 +(lp552 +V4kc-malta +p553 +aV5kc-malta +p554 +aVocteon +p555 +asg123 +I01 +ss(Vbase +p556 +Vmipsel +p557 +tp558 +(dp559 +g82 +(lp560 +g84 +asVkernel-arch +p561 +Vmips +p562 +ss(Vimage +p563 +g557 +NVloongson-3 +p564 +tp565 +(dp566 +Vconfigs +p567 +(lp568 +Vkernelarch-mips/config.loongson-3 +p569 +ass(Vbuild +p570 +g557 +tp571 +(dp572 +Vsigned-modules +p573 +I00 +sVimage-file +p574 +Vvmlinux +p575 +ss(Vimage +p576 +g557 +NV4kc-malta +p577 +tp578 +(dp579 +Vconfigs +p580 +(lp581 +Vkernelarch-mips/config.malta +p582 +aVkernelarch-mips/config.mips32r2 +p583 +ass(Vimage +p584 +g557 +NV5kc-malta +p585 +tp586 +(dp587 +Vconfigs +p588 +(lp589 +Vkernelarch-mips/config.malta +p590 +aVkernelarch-mips/config.mips64r2 +p591 +ass(Vdescription +p592 +g557 +NVocteon +p593 +tp594 +(dp595 +Vhardware +p596 +VOcteon +p597 +sVhardware-long +p598 +VCavium Networks Octeon +p599 +ss(Vdescription +p600 +g557 +NVloongson-3 +p601 +tp602 +(dp603 +Vhardware +p604 +VLoongson 3A/3B +p605 +sVhardware-long +p606 +VLoongson 3A or 3B based systems (e.g. from Loongson or Lemote) +p607 +ss(Vimage +p608 +g557 +NVocteon +p609 +tp610 +(dp611 +Vconfigs +p612 +(lp613 +Vkernelarch-mips/config.octeon +p614 +ass(Vimage +p615 +g557 +tp616 +(dp617 +Vinstall-stem +p618 +Vvmlinux +p619 +ss(Vdescription +p620 +g557 +NV5kc-malta +p621 +tp622 +(dp623 +Vhardware +p624 +VMIPS Malta (64-bit) +p625 +sVhardware-long +p626 +VMIPS Malta boards (64-bit) +p627 +ss(Vdescription +p628 +g557 +NV4kc-malta +p629 +tp630 +(dp631 +Vhardware +p632 +VMIPS Malta +p633 +sVhardware-long +p634 +VMIPS Malta boards +p635 +ss(g116 +g557 +g84 +tp636 +(dp637 +g119 +(lp638 +V4kc-malta +p639 +aV5kc-malta +p640 +aVloongson-3 +p641 +aVocteon +p642 +asg123 +I01 +ss(Vbase +p643 +Vmipsn32 +p644 +tp645 +(dp646 +Vfeaturesets +p647 +(lp648 +sVkernel-arch +p649 +Vmips +p650 +ss(Vbase +p651 +Vmipsn32el +p652 +tp653 +(dp654 +Vfeaturesets +p655 +(lp656 +sVkernel-arch +p657 +Vmips +p658 +ss(Vbase +p659 +Vmips64 +p660 +tp661 +(dp662 +g82 +(lp663 +g84 +asVkernel-arch +p664 +Vmips +p665 +ss(Vbuild +p666 +g660 +tp667 +(dp668 +Vsigned-modules +p669 +I00 +sVimage-file +p670 +Vvmlinux +p671 +ss(Vimage +p672 +g660 +NV5kc-malta +p673 +tp674 +(dp675 +Vconfigs +p676 +(lp677 +Vkernelarch-mips/config.malta +p678 +aVkernelarch-mips/config.mips64r2 +p679 +ass(Vdescription +p680 +g660 +NVocteon +p681 +tp682 +(dp683 +Vhardware +p684 +VOcteon +p685 +sVhardware-long +p686 +VCavium Networks Octeon +p687 +ss(Vimage +p688 +g660 +tp689 +(dp690 +Vinstall-stem +p691 +Vvmlinux +p692 +ss(Vdescription +p693 +g660 +NV5kc-malta +p694 +tp695 +(dp696 +Vhardware +p697 +VMIPS Malta +p698 +sVhardware-long +p699 +VMIPS Malta boards +p700 +ss(Vimage +p701 +g660 +NVocteon +p702 +tp703 +(dp704 +Vconfigs +p705 +(lp706 +Vkernelarch-mips/config.octeon +p707 +ass(g116 +g660 +g84 +tp708 +(dp709 +g119 +(lp710 +V5kc-malta +p711 +aVocteon +p712 +asg123 +I01 +ss(Vbase +p713 +Vmips64el +p714 +tp715 +(dp716 +g82 +(lp717 +g84 +asVkernel-arch +p718 +Vmips +p719 +ss(Vimage +p720 +g714 +NVloongson-3 +p721 +tp722 +(dp723 +Vconfigs +p724 +(lp725 +Vkernelarch-mips/config.loongson-3 +p726 +ass(Vbuild +p727 +g714 +tp728 +(dp729 +Vsigned-modules +p730 +I00 +sVimage-file +p731 +Vvmlinux +p732 +ss(Vimage +p733 +g714 +NV5kc-malta +p734 +tp735 +(dp736 +Vconfigs +p737 +(lp738 +Vkernelarch-mips/config.malta +p739 +aVkernelarch-mips/config.mips64r2 +p740 +ass(Vdescription +p741 +g714 +NVocteon +p742 +tp743 +(dp744 +Vhardware +p745 +VOcteon +p746 +sVhardware-long +p747 +VCavium Networks Octeon +p748 +ss(Vdescription +p749 +g714 +NVloongson-3 +p750 +tp751 +(dp752 +Vhardware +p753 +VLoongson 3A/3B +p754 +sVhardware-long +p755 +VLoongson 3A or 3B based systems (e.g. from Loongson or Lemote) +p756 +ss(Vimage +p757 +g714 +tp758 +(dp759 +Vinstall-stem +p760 +Vvmlinux +p761 +ss(Vdescription +p762 +g714 +NV5kc-malta +p763 +tp764 +(dp765 +Vhardware +p766 +VMIPS Malta +p767 +sVhardware-long +p768 +VMIPS Malta boards +p769 +ss(Vimage +p770 +g714 +NVocteon +p771 +tp772 +(dp773 +Vconfigs +p774 +(lp775 +Vkernelarch-mips/config.octeon +p776 +ass(g116 +g714 +g84 +tp777 +(dp778 +g119 +(lp779 +V5kc-malta +p780 +aVloongson-3 +p781 +aVocteon +p782 +asg123 +I01 +ss(Vbase +p783 +Vor1k +p784 +tp785 +(dp786 +Vfeaturesets +p787 +(lp788 +sVkernel-arch +p789 +Vopenrisc +p790 +ss(Vbase +p791 +Vpowerpc +p792 +tp793 +(dp794 +g82 +(lp795 +g84 +asVkernel-arch +p796 +Vpowerpc +p797 +ss(Vdescription +p798 +g792 +NVpowerpc64 +p799 +tp800 +(dp801 +Vhardware +p802 +V64-bit PowerPC +p803 +ss(Vbuild +p804 +g792 +tp805 +(dp806 +Vvdso +p807 +I01 +sVimage-file +p808 +Vvmlinux +p809 +ss(Vimage +p810 +g792 +NVpowerpc-smp +p811 +tp812 +(dp813 +Vconfigs +p814 +(lp815 +Vpowerpc/config.powerpc +p816 +aVpowerpc/config.powerpc-smp +p817 +ass(Vdescription +p818 +g792 +NVpowerpc +p819 +tp820 +(dp821 +Vhardware +p822 +Vuniprocessor 32-bit PowerPC +p823 +ss(Vimage +p824 +g792 +NVpowerpc64 +p825 +tp826 +(dp827 +Vconfigs +p828 +(lp829 +Vkernelarch-powerpc/config-arch-64 +p830 +aVkernelarch-powerpc/config-arch-64-be +p831 +ass(Vdescription +p832 +g792 +NVpowerpc-smp +p833 +tp834 +(dp835 +Vhardware +p836 +Vmultiprocessor 32-bit PowerPC +p837 +ss(Vimage +p838 +g792 +tp839 +(dp840 +Vsuggests +p841 +Vmkvmlinuz +p842 +sVinstall-stem +p843 +Vvmlinux +p844 +sVconfigs +p845 +(lp846 +ss(g116 +g792 +g84 +tp847 +(dp848 +g119 +(lp849 +Vpowerpc +p850 +aVpowerpc-smp +p851 +aVpowerpc64 +p852 +asg123 +I01 +ss(Vbase +p853 +Vpowerpcspe +p854 +tp855 +(dp856 +g82 +(lp857 +g84 +asVkernel-arch +p858 +Vpowerpc +p859 +ss(Vbuild +p860 +g854 +tp861 +(dp862 +Vsigned-modules +p863 +I00 +sVimage-file +p864 +Vvmlinux +p865 +sVvdso +p866 +I01 +ss(Vimage +p867 +g854 +tp868 +(dp869 +Vsuggests +p870 +Vmkvmlinuz +p871 +sVinstall-stem +p872 +Vvmlinux +p873 +ss(Vdescription +p874 +g854 +tp875 +(dp876 +Vhardware +p877 +V32-bit PowerPC with SPE (instead of AltiVec) with SMP support +p878 +ss(g116 +g854 +g84 +tp879 +(dp880 +g119 +(lp881 +Vpowerpcspe +p882 +asg123 +I01 +ss(Vbase +p883 +Vppc64 +p884 +tp885 +(dp886 +g82 +(lp887 +g84 +asVkernel-arch +p888 +Vpowerpc +p889 +ss(Vdescription +p890 +g884 +NVpowerpc64 +p891 +tp892 +(dp893 +Vhardware +p894 +V64-bit PowerPC +p895 +ss(Vbuild +p896 +g884 +tp897 +(dp898 +Vsigned-modules +p899 +I00 +sVimage-file +p900 +Vvmlinux +p901 +sVvdso +p902 +I01 +ss(Vimage +p903 +g884 +NVpowerpc64 +p904 +tp905 +(dp906 +Vconfigs +p907 +(lp908 +Vkernelarch-powerpc/config-arch-64 +p909 +aVkernelarch-powerpc/config-arch-64-be +p910 +ass(Vimage +p911 +g884 +tp912 +(dp913 +Vsuggests +p914 +Vmkvmlinuz +p915 +sVinstall-stem +p916 +Vvmlinux +p917 +sVconfigs +p918 +(lp919 +ss(g116 +g884 +g84 +tp920 +(dp921 +g119 +(lp922 +Vpowerpc64 +p923 +asg123 +I01 +ss(Vbase +p924 +Vppc64el +p925 +tp926 +(dp927 +g82 +(lp928 +g84 +asVkernel-arch +p929 +Vpowerpc +p930 +ss(Vdescription +p931 +g925 +NVpowerpc64le +p932 +tp933 +(dp934 +Vhardware +p935 +VLittle-endian 64-bit PowerPC +p936 +ss(Vbuild +p937 +g925 +tp938 +(dp939 +Vvdso +p940 +I01 +sVimage-file +p941 +Vvmlinux +p942 +ss(Vimage +p943 +g925 +tp944 +(dp945 +Vsuggests +p946 +Vmkvmlinuz +p947 +sVinstall-stem +p948 +Vvmlinux +p949 +sVconfigs +p950 +(lp951 +ss(Vimage +p952 +g925 +NVpowerpc64le +p953 +tp954 +(dp955 +Vconfigs +p956 +(lp957 +Vkernelarch-powerpc/config-arch-64 +p958 +aVkernelarch-powerpc/config-arch-64-le +p959 +ass(g116 +g925 +g84 +tp960 +(dp961 +g119 +(lp962 +Vpowerpc64le +p963 +asg123 +I01 +ss(Vbase +p964 +Vs390 +p965 +tp966 +(dp967 +Vfeaturesets +p968 +(lp969 +sVkernel-arch +p970 +Vs390 +p971 +ss(Vbase +p972 +Vs390x +p973 +tp974 +(dp975 +g82 +(lp976 +g84 +asVkernel-arch +p977 +Vs390 +p978 +ss(Vdescription +p979 +g973 +NVs390x +p980 +tp981 +(dp982 +Vhardware +p983 +VIBM zSeries +p984 +ss(Vbuild +p985 +g973 +tp986 +(dp987 +Vvdso +p988 +I01 +sVimage-file +p989 +Varch/s390/boot/image +p990 +ss(Vbuild +p991 +g973 +NVs390x +p992 +tp993 +(dp994 +Vdebug-info +p995 +I01 +ss(Vrelations +p996 +g973 +tp997 +(dp998 +Vheaders%gcc-5 +p999 +Vlinux-compiler-gcc-5-s390 +p1000 +ss(Vimage +p1001 +g973 +tp1002 +(dp1003 +Vinstall-stem +p1004 +Vvmlinuz +p1005 +sVbootloaders +p1006 +(lp1007 +Vs390-tools +p1008 +ass(g116 +g973 +g84 +tp1009 +(dp1010 +g119 +(lp1011 +Vs390x +p1012 +asg123 +I01 +ss(Vbase +p1013 +Vsh3 +p1014 +tp1015 +(dp1016 +Vfeaturesets +p1017 +(lp1018 +sVkernel-arch +p1019 +Vsh +p1020 +ss(Vbase +p1021 +Vsh4 +p1022 +tp1023 +(dp1024 +g82 +(lp1025 +g84 +asVkernel-arch +p1026 +Vsh +p1027 +ss(Vbuild +p1028 +g1022 +tp1029 +(dp1030 +Vsigned-modules +p1031 +I00 +sVimage-file +p1032 +Varch/sh/boot/zImage +p1033 +ss(Vdescription +p1034 +g1022 +NVsh7751r +p1035 +tp1036 +(dp1037 +Vhardware +p1038 +Vsh7751r +p1039 +sVhardware-long +p1040 +VRenesas SH7751R R2D plus board +p1041 +ss(Vdescription +p1042 +g1022 +NVsh7785lcr +p1043 +tp1044 +(dp1045 +Vhardware +p1046 +Vsh7785lcr +p1047 +sVhardware-long +p1048 +VRenesas SH7785 reference board +p1049 +ss(Vimage +p1050 +g1022 +tp1051 +(dp1052 +Vinstall-stem +p1053 +Vvmlinuz +p1054 +ss(Vimage +p1055 +g1022 +NVsh7785lcr +p1056 +tp1057 +(dp1058 +Vrecommends +p1059 +Vu-boot-tools +p1060 +sVcheck-size +p1061 +L4194304L +ss(g116 +g1022 +g84 +tp1062 +(dp1063 +g119 +(lp1064 +Vsh7751r +p1065 +aVsh7785lcr +p1066 +asg123 +I01 +ss(Vbase +p1067 +Vsparc +p1068 +tp1069 +(dp1070 +Vfeaturesets +p1071 +(lp1072 +sVkernel-arch +p1073 +Vsparc +p1074 +ss(Vbase +p1075 +Vsparc64 +p1076 +tp1077 +(dp1078 +g82 +(lp1079 +g84 +asVkernel-arch +p1080 +Vsparc +p1081 +ss(Vbuild +p1082 +g1076 +tp1083 +(dp1084 +Vsigned-modules +p1085 +I00 +sVimage-file +p1086 +Varch/sparc/boot/zImage +p1087 +ss(Vimage +p1088 +g1076 +NVsparc64 +p1089 +tp1090 +(dp1091 +Vconfigs +p1092 +(lp1093 +Vkernelarch-sparc/config-up +p1094 +ass(Vimage +p1095 +g1076 +NVsparc64-smp +p1096 +tp1097 +(dp1098 +Vconfigs +p1099 +(lp1100 +Vkernelarch-sparc/config-smp +p1101 +ass(Vimage +p1102 +g1076 +tp1103 +(dp1104 +Vsuggests +p1105 +Vsilo, fdutils +p1106 +sVinstall-stem +p1107 +Vvmlinuz +p1108 +sVconfigs +p1109 +(lp1110 +ss(Vdescription +p1111 +g1076 +NVsparc64-smp +p1112 +tp1113 +(dp1114 +Vhardware +p1115 +Vmultiprocessor 64-bit UltraSPARC +p1116 +ss(Vdescription +p1117 +g1076 +NVsparc64 +p1118 +tp1119 +(dp1120 +Vhardware +p1121 +Vuniprocessor 64-bit UltraSPARC +p1122 +ss(g116 +g1076 +g84 +tp1123 +(dp1124 +g119 +(lp1125 +Vsparc64 +p1126 +aVsparc64-smp +p1127 +asg123 +I01 +ss(Vbase +p1128 +Vtilegx +p1129 +tp1130 +(dp1131 +Vfeaturesets +p1132 +(lp1133 +sVkernel-arch +p1134 +Vtile +p1135 +ss(Vbase +p1136 +Vx32 +p1137 +tp1138 +(dp1139 +Vfeaturesets +p1140 +(lp1141 +sVkernel-arch +p1142 +Vx86 +p1143 +ss(Vdescription +p1144 +NVrt +p1145 +tp1146 +(dp1147 +Vparts +p1148 +(lp1149 +Vrt +p1150 +asVpart-long-rt +p1151 +VThis kernel includes the PREEMPT_RT realtime patch set. +p1152 +sVpart-short-rt +p1153 +VPREEMPT_RT +p1154 +ss(Vabi +p1155 +Ng1145 +tp1156 +(dp1157 +Vignore-changes +p1158 +(lp1159 +V* +p1160 +ass(Vversion +p1161 +tp1162 +(dp1163 +Vupstream +p1164 +V4.9 +p1165 +sVsource +p1166 +V4.9.2-2 +p1167 +sVabiname +p1168 +V4.9.0-1 +p1169 +sVabiname_base +p1170 +V4.9.0 +p1171 +ss. \ No newline at end of file diff --git a/config/alpha/config b/config/alpha/config new file mode 100644 index 00000000000..144e307c2e3 --- /dev/null +++ b/config/alpha/config @@ -0,0 +1,1087 @@ +## +## file: arch/alpha/Kconfig +## +## choice: Alpha system type +CONFIG_ALPHA_GENERIC=y +# CONFIG_ALPHA_ALCOR is not set +# CONFIG_ALPHA_XL is not set +# CONFIG_ALPHA_BOOK1 is not set +# CONFIG_ALPHA_AVANTI_CH is not set +# CONFIG_ALPHA_CABRIOLET is not set +# CONFIG_ALPHA_DP264 is not set +# CONFIG_ALPHA_EB164 is not set +# CONFIG_ALPHA_EB64P_CH is not set +# CONFIG_ALPHA_EB66 is not set +# CONFIG_ALPHA_EB66P is not set +# CONFIG_ALPHA_EIGER is not set +# CONFIG_ALPHA_JENSEN is not set +# CONFIG_ALPHA_LX164 is not set +# CONFIG_ALPHA_LYNX is not set +# CONFIG_ALPHA_MARVEL is not set +# CONFIG_ALPHA_MIATA is not set +# CONFIG_ALPHA_MIKASA is not set +# CONFIG_ALPHA_NAUTILUS is not set +# CONFIG_ALPHA_NONAME_CH is not set +# CONFIG_ALPHA_NORITAKE is not set +# CONFIG_ALPHA_PC164 is not set +# CONFIG_ALPHA_P2K is not set +# CONFIG_ALPHA_RAWHIDE is not set +# CONFIG_ALPHA_RUFFIAN is not set +# CONFIG_ALPHA_RX164 is not set +# CONFIG_ALPHA_SX164 is not set +# CONFIG_ALPHA_SABLE is not set +# CONFIG_ALPHA_SHARK is not set +# CONFIG_ALPHA_TAKARA is not set +# CONFIG_ALPHA_TITAN is not set +# CONFIG_ALPHA_WILDFIRE is not set +## end choice +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +# CONFIG_VERBOSE_MCHECK is not set +CONFIG_SRM_ENV=m + +## +## file: arch/alpha/Kconfig.debug +## +CONFIG_MATHEMU=y + +## +## file: block/partitions/Kconfig +## +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_ISAPNP=y +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_LEGACY=m + +## +## file: drivers/atm/Kconfig +## +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_SX8=m +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +CONFIG_CDROM_PKTCDVD_WCACHE=y + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIVHCI=m + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +CONFIG_RTC=m +CONFIG_DTLK=m +CONFIG_APPLICOM=m +CONFIG_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 + +## +## file: drivers/char/agp/Kconfig +## +#. Workaround +CONFIG_AGP=y +#. Workaround +CONFIG_AGP_ALPHA_CORE=y + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m + +## +## file: drivers/eisa/Kconfig +## +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_NAMES=y + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m + +## +## file: drivers/gpu/drm/nouveau/Kconfig +## +CONFIG_DRM_NOUVEAU=m +# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=m + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=m +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +# CONFIG_I2C_AMD756_S4882 is not set +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_ELEKTOR=m +CONFIG_I2C_PCA_ISA=m +CONFIG_SCx200_ACB=m + +## +## file: drivers/input/gameport/Kconfig +## +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_UINPUT=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_INPORT=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_VSXXXAA=m + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y + +## +## file: drivers/isdn/Kconfig +## +CONFIG_ISDN=y +CONFIG_ISDN_CAPI=m + +## +## file: drivers/isdn/capi/Kconfig +## +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPIDRV=m + +## +## file: drivers/isdn/hardware/avm/Kconfig +## +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +## +## file: drivers/isdn/hardware/eicon/Kconfig +## +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_USB_DSBR=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_V4L_RADIO_ISA_DRIVERS=y +CONFIG_RADIO_CADET=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_ZOLTRIX=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y +CONFIG_MTD_REDBOOT_PARTS_READONLY=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +## choice: Flash cmd/query data swapping +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +## end choice +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_MAP_BANK_WIDTH_8=y +CONFIG_MTD_MAP_BANK_WIDTH_16=y +CONFIG_MTD_MAP_BANK_WIDTH_32=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +CONFIG_MTD_CFI_I8=y +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m +CONFIG_MTD_XIP=y + +## +## file: drivers/mtd/devices/Kconfig +## +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PCI=m + +## +## file: drivers/mtd/nand/Kconfig +## +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_DISKONCHIP is not set + +## +## file: drivers/net/Kconfig +## +CONFIG_NET_FC=y +CONFIG_NET_SB1000=m + +## +## file: drivers/net/arcnet/Kconfig +## +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM20020_CS=m + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_EL3=m +CONFIG_3C515=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_PCMCIA_AXNET=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRA=m +CONFIG_WD80x3=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_AMD8111_ETH=m +CONFIG_LANCE=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_NI65=m + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_B44=m + +## +## file: drivers/net/ethernet/cirrus/Kconfig +## +CONFIG_CS89x0=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_PCMCIA_XIRCOM=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set + +## +## file: drivers/net/ethernet/fujitsu/Kconfig +## +CONFIG_PCMCIA_FMVJ18X=m + +## +## file: drivers/net/ethernet/hp/Kconfig +## +CONFIG_HP100=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/nvidia/Kconfig +## +CONFIG_FORCEDETH=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set + +## +## file: drivers/net/ethernet/xircom/Kconfig +## +CONFIG_PCMCIA_XIRC2PS=m + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/hamradio/Kconfig +## +CONFIG_DMASCC=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set + +## +## file: drivers/net/hippi/Kconfig +## +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_IRTTY_SIR=m +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m + +## +## file: drivers/net/plip/Kconfig +## +CONFIG_PLIP=m + +## +## file: drivers/net/wan/Kconfig +## +CONFIG_WAN=y +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_LANMEDIA=m +CONFIG_SEALEVEL_4021=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m + +## +## file: drivers/net/wireless/Kconfig +## +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_WL3501=m + +## +## file: drivers/net/wireless/atmel/Kconfig +## +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m + +## +## file: drivers/net/wireless/cisco/Kconfig +## +CONFIG_AIRO_CS=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +# CONFIG_IPW2100 is not set + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m + +## +## file: drivers/net/wireless/zydas/Kconfig +## +CONFIG_USB_ZD1201=m + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_PCCARD=m +CONFIG_PCMCIA=m +CONFIG_CARDBUS=y +CONFIG_YENTA=m +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_TCIC=m +CONFIG_PCMCIA_DEBUG=y + +## +## file: drivers/pnp/Kconfig +## +CONFIG_PNP=y + +## +## file: drivers/pnp/isapnp/Kconfig +## +CONFIG_ISAPNP=y + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_ALPHA=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_IZIP_EPP16=y +CONFIG_SCSI_IZIP_SLOW_CTR=y +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_IPR=m +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_DEBUG=m + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx +## +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_MOXA_INTELLIO=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_ISI=m +CONFIG_N_HDLC=m + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_JSM=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m +CONFIG_USB_USS720=m + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +## +## file: drivers/video/backlight/Kconfig +## +CONFIG_LCD_CLASS_DEVICE=m + +## +## file: drivers/video/console/Kconfig +## +CONFIG_VGA_CONSOLE=y +CONFIG_MDA_CONSOLE=m +CONFIG_FRAMEBUFFER_CONSOLE=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_TGA=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +# CONFIG_FB_ATY_GENERIC_LCD is not set +CONFIG_FB_ATY_GX=y +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_I2C is not set +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_VOODOO1=m +CONFIG_FB_TRIDENT=m +CONFIG_FB_VIRTUAL=m + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_PCWATCHDOG=m +CONFIG_MIXCOMWD=m +CONFIG_WDT=m +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_USBPCWATCHDOG=m + +## +## file: fs/Kconfig.binfmt +## +CONFIG_BINFMT_AOUT=m +CONFIG_OSF4_COMPAT=y +# CONFIG_BINFMT_EM86 is not set + +## +## file: init/Kconfig +## +CONFIG_USELIB=y +#. TODO +# CONFIG_AUDIT is not set +CONFIG_SYSFS_SYSCALL=y + +## +## file: lib/Kconfig +## +#. TODO +CONFIG_CRC32=m + +## +## file: net/ax25/Kconfig +## +CONFIG_HAMRADIO=y +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +## +## file: net/decnet/Kconfig +## +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set + +## +## file: net/irda/Kconfig +## +CONFIG_IRDA=m +CONFIG_IRDA_ULTRA=y +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +## +## file: net/irda/ircomm/Kconfig +## +CONFIG_IRCOMM=m + +## +## file: net/irda/irlan/Kconfig +## +CONFIG_IRLAN=m + +## +## file: net/irda/irnet/Kconfig +## +CONFIG_IRNET=m + +## +## file: net/lapb/Kconfig +## +CONFIG_LAPB=m + +## +## file: sound/drivers/Kconfig +## +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m + +## +## file: sound/isa/Kconfig +## +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +# CONFIG_SND_MIXART is not set +CONFIG_SND_NM256=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_INTEL=m + diff --git a/config/alpha/config.alpha-generic b/config/alpha/config.alpha-generic new file mode 100644 index 00000000000..d63bf76e64f --- /dev/null +++ b/config/alpha/config.alpha-generic @@ -0,0 +1,10 @@ +## +## file: arch/alpha/Kconfig +## +# CONFIG_SMP is not set + +## +## file: arch/alpha/Kconfig.debug +## +# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set + diff --git a/config/alpha/config.alpha-smp b/config/alpha/config.alpha-smp new file mode 100644 index 00000000000..19288e39823 --- /dev/null +++ b/config/alpha/config.alpha-smp @@ -0,0 +1,16 @@ +## +## file: arch/alpha/Kconfig +## +CONFIG_SMP=y +CONFIG_NR_CPUS=64 + +## +## file: arch/alpha/Kconfig.debug +## +# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI=y + diff --git a/config/alpha/defines b/config/alpha/defines new file mode 100644 index 00000000000..386809d8dcc --- /dev/null +++ b/config/alpha/defines @@ -0,0 +1,20 @@ +[base] +flavours: alpha-generic alpha-smp +kernel-arch: alpha + +[build] +image-file: arch/alpha/boot/vmlinux.gz +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +suggests: aboot, fdutils +install-stem: vmlinuz + +[alpha-generic_description] +hardware: Alpha +hardware-long: DEC Alpha systems with extended kernel start address (Wildfire, Titan, Marvel) + +[alpha-smp_description] +hardware: Alpha SMP +hardware-long: DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel) diff --git a/config/amd64/config b/config/amd64/config new file mode 100644 index 00000000000..5aa0804439f --- /dev/null +++ b/config/amd64/config @@ -0,0 +1,214 @@ +## +## file: arch/x86/Kconfig +## +CONFIG_64BIT=y +CONFIG_SMP=y +CONFIG_X86_X2APIC=y +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS=512 +CONFIG_X86_16BIT=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_NUMA_EMU=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_EFI_MIXED=y +CONFIG_KEXEC_FILE=y +CONFIG_KEXEC_VERIFY_SIG=y +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y +CONFIG_RANDOMIZE_MEMORY=y +## choice: vsyscall table for legacy applications +# CONFIG_LEGACY_VSYSCALL_NATIVE is not set +CONFIG_LEGACY_VSYSCALL_EMULATE=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set +## end choice +CONFIG_PCI_MMCONFIG=y +CONFIG_ISA_DMA_API=y +CONFIG_X86_X32=y +CONFIG_X86_X32_DISABLED=y + +## +## file: arch/x86/Kconfig.cpu +## +## choice: Processor family +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +## end choice + +## +## file: arch/x86/xen/Kconfig +## +CONFIG_XEN_512GB=y + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m +CONFIG_CRYPTO_POLY1305_X86_64=m +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512_SSSE3=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_DES3_EDE_X86_64=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_CHACHA20_X86_64=m +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m +CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m + +## +## file: crypto/asymmetric_keys/Kconfig +## +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +## +## file: drivers/acpi/Kconfig +## +CONFIG_ACPI_BGRT=y + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_RSXX=m + +## +## file: drivers/char/agp/Kconfig +## +CONFIG_AGP=y +#. Needed by GART_IOMMU +CONFIG_AGP_AMD64=y + +## +## file: drivers/dma/Kconfig +## +CONFIG_INTEL_MIC_X100_DMA=m + +## +## file: drivers/edac/Kconfig +## +CONFIG_EDAC_SBRIDGE=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C_STUB=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y + +## +## file: drivers/iommu/Kconfig +## +CONFIG_AMD_IOMMU=y +#. Can be built as a module, but nothing will trigger loading +CONFIG_AMD_IOMMU_V2=y + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y + +## +## file: drivers/misc/mic/Kconfig +## +CONFIG_INTEL_MIC_BUS=m +CONFIG_SCIF_BUS=m +CONFIG_VOP_BUS=m +CONFIG_INTEL_MIC_HOST=m +# CONFIG_INTEL_MIC_CARD is not set +CONFIG_SCIF=m +CONFIG_MIC_COSM=m +CONFIG_VOP=m + +## +## file: drivers/net/Kconfig +## +CONFIG_FUJITSU_ES=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +# CONFIG_IPW2100 is not set + +## +## file: drivers/nvdimm/Kconfig +## +CONFIG_NVDIMM_PFN=y + +## +## file: drivers/pci/Kconfig +## +CONFIG_PCI_HYPERV=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_INIA100=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_MOXA_INTELLIO=m +CONFIG_ISI=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_MAVEN=m +# CONFIG_FB_ATY_GENERIC_LCD is not set +# CONFIG_FB_SAVAGE_I2C is not set + +## +## file: init/Kconfig +## +CONFIG_RCU_FANOUT=64 +CONFIG_KALLSYMS_ALL=y + +## +## file: kernel/livepatch/Kconfig +## +CONFIG_LIVEPATCH=y + +## +## file: lib/Kconfig.debug +## +CONFIG_FRAME_WARN=2048 + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_SPARSEMEM_MANUAL=y +## end choice +CONFIG_SPARSEMEM_VMEMMAP=y +# CONFIG_MOVABLE_NODE is not set +CONFIG_ZONE_DEVICE=y + +## +## file: security/Kconfig +## +CONFIG_LSM_MMAP_MIN_ADDR=65536 + diff --git a/config/amd64/defines b/config/amd64/defines new file mode 100644 index 00000000000..438bc1ed406 --- /dev/null +++ b/config/amd64/defines @@ -0,0 +1,22 @@ +[base] +featuresets: + none + rt +kernel-arch: x86 + +[build] +debug-info: true +image-file: arch/x86/boot/bzImage +vdso: true + +[image] +bootloaders: grub-pc grub-efi-amd64 extlinux +install-stem: vmlinuz +breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) + +[relations] +headers%gcc-5: linux-compiler-gcc-5-x86 + +[amd64_description] +hardware: 64-bit PCs +hardware-long: PCs with AMD64, Intel 64 or VIA Nano processors diff --git a/config/amd64/none/defines b/config/amd64/none/defines new file mode 100644 index 00000000000..13ae9eb2c57 --- /dev/null +++ b/config/amd64/none/defines @@ -0,0 +1,6 @@ +[base] +flavours: + amd64 + +[amd64_description] +parts: xen diff --git a/config/amd64/rt/defines b/config/amd64/rt/defines new file mode 100644 index 00000000000..090dc41bfb9 --- /dev/null +++ b/config/amd64/rt/defines @@ -0,0 +1,3 @@ +[base] +flavours: + amd64 diff --git a/config/arm64/config b/config/arm64/config new file mode 100644 index 00000000000..f871573463a --- /dev/null +++ b/config/arm64/config @@ -0,0 +1,770 @@ +## +## file: arch/arm64/Kconfig +## +CONFIG_PCI=y +CONFIG_ARM64_ERRATUM_834220=y +#. Until we decide how/whether to handle this in userland as well +# CONFIG_ARM64_ERRATUM_843419 is not set +## choice: Virtual address space size +CONFIG_ARM64_VA_BITS_48=y +## end choice +CONFIG_SCHED_MC=y +CONFIG_SECCOMP=y +CONFIG_XEN=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +CONFIG_EFI_SECURE_BOOT_SECURELEVEL=y +CONFIG_COMPAT=y + +## +## file: arch/arm64/crypto/Kconfig +## +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=m +CONFIG_CRYPTO_SHA2_ARM64_CE=m +CONFIG_CRYPTO_GHASH_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64_CE_CCM=m +CONFIG_CRYPTO_AES_ARM64_CE_BLK=m +# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set +CONFIG_CRYPTO_CRC32_ARM64=y + +## +## file: arch/arm64/kvm/Kconfig +## +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y + +## +## file: arch/arm64/Kconfig.platforms +## +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_HISI=y +CONFIG_ARCH_MVEBU=y +CONFIG_ARCH_QCOM=y +CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_TEGRA=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_XGENE=y + +## +## file: drivers/acpi/Kconfig +## +CONFIG_ACPI=y + +## +## file: drivers/ata/Kconfig +## +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_AHCI_MVEBU=m +CONFIG_AHCI_TEGRA=m +CONFIG_AHCI_XGENE=m + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIUART=m +CONFIG_BT_QCOMSMD=m + +## +## file: drivers/bus/Kconfig +## +CONFIG_QCOM_EBI2=y +CONFIG_TEGRA_ACONNECT=y + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_HISI=m +CONFIG_HW_RANDOM_MSM=m + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SSIF=m + +## +## file: drivers/clk/Kconfig +## +CONFIG_COMMON_CLK_XGENE=y + +## +## file: drivers/clk/hisilicon/Kconfig +## +CONFIG_STUB_CLK_HI6220=y + +## +## file: drivers/clk/qcom/Kconfig +## +CONFIG_COMMON_CLK_QCOM=y +CONFIG_MSM_GCC_8916=y +CONFIG_MSM_GCC_8996=y +CONFIG_MSM_MMCC_8996=y + +## +## file: drivers/cpuidle/Kconfig.arm +## +CONFIG_ARM_CPUIDLE=y + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_DEV_QCE=m + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2835=y +CONFIG_MV_XOR=y +CONFIG_MV_XOR_V2=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA210_ADMA=y +CONFIG_XGENE_DMA=m + +## +## file: drivers/dma/qcom/Kconfig +## +CONFIG_QCOM_BAM_DMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_HIDMA=m + +## +## file: drivers/edac/Kconfig +## +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_XGENE=m + +## +## file: drivers/extcon/Kconfig +## +CONFIG_EXTCON=m +CONFIG_EXTCON_QCOM_SPMI_MISC=m +CONFIG_EXTCON_USB_GPIO=m + +## +## file: drivers/firmware/Kconfig +## +CONFIG_RASPBERRYPI_FIRMWARE=y + +## +## file: drivers/gpio/Kconfig +## +CONFIG_GPIOLIB=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_MAX77620=y + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m + +## +## file: drivers/gpu/drm/bridge/adv7511/Kconfig +## +CONFIG_DRM_I2C_ADV7511=m + +## +## file: drivers/gpu/drm/hisilicon/kirin/Kconfig +## +CONFIG_DRM_HISI_KIRIN=m + +## +## file: drivers/gpu/drm/msm/Kconfig +## +CONFIG_DRM_MSM=m +CONFIG_DRM_MSM_DSI=y +CONFIG_DRM_MSM_DSI_PLL=y +CONFIG_DRM_MSM_DSI_28NM_PHY=y +CONFIG_DRM_MSM_DSI_20NM_PHY=y + +## +## file: drivers/gpu/drm/panel/Kconfig +## +CONFIG_DRM_PANEL_SIMPLE=m + +## +## file: drivers/gpu/drm/tegra/Kconfig +## +CONFIG_DRM_TEGRA=m +CONFIG_DRM_TEGRA_STAGING=y + +## +## file: drivers/gpu/drm/vc4/Kconfig +## +CONFIG_DRM_VC4=m + +## +## file: drivers/gpu/host1x/Kconfig +## +CONFIG_TEGRA_HOST1X=m + +## +## file: drivers/hwspinlock/Kconfig +## +CONFIG_HWSPINLOCK_QCOM=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_BCM2835=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_MV64XXX=m +CONFIG_I2C_QUP=m +CONFIG_I2C_TEGRA=m +CONFIG_I2C_CROS_EC_TUNNEL=m +CONFIG_I2C_XGENE_SLIMPRO=m + +## +## file: drivers/iio/adc/Kconfig +## +CONFIG_QCOM_SPMI_IADC=m +CONFIG_QCOM_SPMI_VADC=m + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_KEYBOARD_TEGRA=m + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PM8941_PWRKEY=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_HISI_POWERKEY=m + +## +## file: drivers/iommu/Kconfig +## +CONFIG_TEGRA_IOMMU_SMMU=y + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_GPIO=m + +## +## file: drivers/mailbox/Kconfig +## +CONFIG_MAILBOX=y +CONFIG_BCM2835_MBOX=y +CONFIG_HI6220_MBOX=y +CONFIG_XGENE_SLIMPRO_MBOX=m + +## +## file: drivers/memory/tegra/Kconfig +## +CONFIG_TEGRA_MC=y + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_CROS_EC=y +CONFIG_MFD_CROS_EC_I2C=m +CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_HI655X_PMIC=m +CONFIG_MFD_MAX77620=y +CONFIG_MFD_QCOM_RPM=m +CONFIG_MFD_SPMI_PMIC=m + +## +## file: drivers/misc/Kconfig +## +CONFIG_QCOM_COINCELL=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=y + +## +## file: drivers/mmc/host/Kconfig +## +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_TEGRA=m +CONFIG_MMC_SDHCI_IPROC=m +CONFIG_MMC_SDHCI_MSM=m +CONFIG_MMC_SPI=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_K3=m + +## +## file: drivers/mtd/spi-nor/Kconfig +## +CONFIG_SPI_HISI_SFC=m + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NET_VENDOR_8390=y +CONFIG_NE2K_PCI=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_AMD_XGBE=m + +## +## file: drivers/net/ethernet/apm/xgene/Kconfig +## +CONFIG_NET_XGENE=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_WINBOND_840=m +CONFIG_DM9102=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_NET_VENDOR_DLINK=y +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set + +## +## file: drivers/net/ethernet/hisilicon/Kconfig +## +CONFIG_NET_VENDOR_HISILICON=y +CONFIG_HIX5HD2_GMAC=m +CONFIG_HISI_FEMAC=m +CONFIG_HIP04_ETH=m +CONFIG_HNS=m +CONFIG_HNS_DSAF=m +CONFIG_HNS_ENET=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_EPIC100=m +CONFIG_SMSC911X=m + +## +## file: drivers/net/ethernet/stmicro/stmmac/Kconfig +## +CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=m +CONFIG_DWMAC_GENERIC=m +CONFIG_DWMAC_IPQ806X=m + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/phy/Kconfig +## +CONFIG_MDIO_HISI_FEMAC=m + +## +## file: drivers/net/wireless/ath/wcn36xx/Kconfig +## +CONFIG_WCN36XX=m + +## +## file: drivers/net/wireless/ti/Kconfig +## +CONFIG_WLAN_VENDOR_TI=y +CONFIG_WILINK_PLATFORM_DATA=y + +## +## file: drivers/net/wireless/ti/wl1251/Kconfig +## +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m + +## +## file: drivers/net/wireless/ti/wl12xx/Kconfig +## +CONFIG_WL12XX=m + +## +## file: drivers/net/wireless/ti/wl18xx/Kconfig +## +CONFIG_WL18XX=m + +## +## file: drivers/net/wireless/ti/wlcore/Kconfig +## +CONFIG_WLCORE=m +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m + +## +## file: drivers/nvmem/Kconfig +## +CONFIG_QCOM_QFPROM=m + +## +## file: drivers/pci/host/Kconfig +## +CONFIG_PCI_AARDVARK=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_XGENE=y +CONFIG_PCI_HISI=y +CONFIG_PCIE_QCOM=y +CONFIG_PCIE_ARMADA_8K=y + +## +## file: drivers/phy/Kconfig +## +CONFIG_PHY_HI6220_USB=m +CONFIG_PHY_QCOM_APQ8064_SATA=m +CONFIG_PHY_QCOM_IPQ806X_SATA=m +CONFIG_PHY_XGENE=m +CONFIG_PHY_QCOM_UFS=m + +## +## file: drivers/phy/tegra/Kconfig +## +CONFIG_PHY_TEGRA_XUSB=m + +## +## file: drivers/pinctrl/Kconfig +## +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_MAX77620=y + +## +## file: drivers/pinctrl/qcom/Kconfig +## +CONFIG_PINCTRL_MSM8916=y +CONFIG_PINCTRL_MSM8996=y +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +CONFIG_PINCTRL_QCOM_SSBI_PMIC=y + +## +## file: drivers/platform/chrome/Kconfig +## +CONFIG_CHROME_PLATFORMS=y + +## +## file: drivers/power/reset/Kconfig +## +CONFIG_POWER_RESET_HISI=y +CONFIG_POWER_RESET_MSM=y +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_BATTERY_BQ27XXX=m +CONFIG_CHARGER_QCOM_SMBB=m + +## +## file: drivers/pwm/Kconfig +## +CONFIG_PWM=y +CONFIG_PWM_BCM2835=m +CONFIG_PWM_TEGRA=m + +## +## file: drivers/regulator/Kconfig +## +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_HI655X=m +CONFIG_REGULATOR_MAX77620=m +CONFIG_REGULATOR_PWM=m +CONFIG_REGULATOR_QCOM_RPM=m +CONFIG_REGULATOR_QCOM_SMD_RPM=m +CONFIG_REGULATOR_QCOM_SPMI=m + +## +## file: drivers/remoteproc/Kconfig +## +CONFIG_QCOM_Q6V5_PIL=m +#. We want to enable this but it currently results in a dependency loop! +# CONFIG_QCOM_WCNSS_PIL is not set + +## +## file: drivers/reset/Kconfig +## +CONFIG_RESET_CONTROLLER=y + +## +## file: drivers/reset/hisilicon/Kconfig +## +CONFIG_COMMON_RESET_HI6220=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_PM8XXX=m +CONFIG_RTC_DRV_TEGRA=y +CONFIG_RTC_DRV_XGENE=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_DMX3191D=m + +## +## file: drivers/scsi/hisi_sas/Kconfig +## +CONFIG_SCSI_HISI_SAS=m + +## +## file: drivers/soc/bcm/Kconfig +## +CONFIG_RASPBERRYPI_POWER=y + +## +## file: drivers/soc/qcom/Kconfig +## +CONFIG_QCOM_GSBI=m +CONFIG_QCOM_SMEM=m +CONFIG_QCOM_SMD=m +CONFIG_QCOM_SMD_RPM=m +CONFIG_QCOM_SMP2P=m +CONFIG_QCOM_SMSM=m +CONFIG_QCOM_WCNSS_CTRL=m + +## +## file: drivers/soc/tegra/Kconfig +## +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_BCM2835=m +CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_QUP=m +CONFIG_SPI_TEGRA114=m +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m + +## +## file: drivers/spmi/Kconfig +## +CONFIG_SPMI=y +CONFIG_SPMI_MSM_PMIC_ARB=y + +## +## file: drivers/thermal/Kconfig +## +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_HISI_THERMAL=m +CONFIG_QCOM_SPMI_TEMP_ALARM=m + +## +## file: drivers/thermal/qcom/Kconfig +## +CONFIG_QCOM_TSENS=m + +## +## file: drivers/thermal/tegra/Kconfig +## +CONFIG_TEGRA_SOCTHERM=y + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_SERIAL_MVEBU_CONSOLE=y + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_BCM2835AUX=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_EM is not set +CONFIG_SERIAL_OF_PLATFORM=y + +## +## file: drivers/usb/chipidea/Kconfig +## +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y + +## +## file: drivers/usb/dwc2/Kconfig +## +CONFIG_USB_DWC2=m +## choice: DWC2 Mode Selection +CONFIG_USB_DWC2_DUAL_ROLE=y +## end choice + +## +## file: drivers/usb/dwc3/Kconfig +## +CONFIG_USB_DWC3=m +## choice: DWC3 Mode Selection +CONFIG_USB_DWC3_DUAL_ROLE=y +## end choice + +## +## file: drivers/usb/gadget/Kconfig +## +CONFIG_USB_GADGET=m + +## +## file: drivers/usb/host/Kconfig +## +#. xhci-platform apparently does not build as module, so xhci_hcd can't be either +CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_XHCI_TEGRA=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_MSM=m +CONFIG_USB_EHCI_TEGRA=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_PLATFORM=m + +## +## file: drivers/usb/misc/Kconfig +## +CONFIG_USB_HSIC_USB3503=m + +## +## file: drivers/usb/phy/Kconfig +## +CONFIG_USB_MSM_OTG=m +CONFIG_USB_QCOM_8X16_PHY=m + +## +## file: drivers/video/backlight/Kconfig +## +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_LP855X=m + +## +## file: drivers/virtio/Kconfig +## +CONFIG_VIRTIO_MMIO=m + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_TEGRA_WATCHDOG=m +CONFIG_QCOM_WDT=m +CONFIG_BCM2835_WDT=m + +## +## file: fs/pstore/Kconfig +## +CONFIG_PSTORE=y + +## +## file: net/bluetooth/Kconfig +## +CONFIG_BT_LEDS=y + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_TEGRA=m + +## +## file: sound/soc/Kconfig +## +CONFIG_SND_SOC=m + +## +## file: sound/soc/bcm/Kconfig +## +CONFIG_SND_BCM2835_SOC_I2S=m + +## +## file: sound/soc/qcom/Kconfig +## +CONFIG_SND_SOC_QCOM=m + +## +## file: sound/soc/tegra/Kconfig +## +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_MAX98090=m +CONFIG_SND_SOC_TEGRA_RT5677=m + diff --git a/config/arm64/defines b/config/arm64/defines new file mode 100644 index 00000000000..a50579a04c5 --- /dev/null +++ b/config/arm64/defines @@ -0,0 +1,18 @@ +[base] +kernel-arch: arm64 +featuresets: + none + +[build] +debug-info: true +image-file: arch/arm64/boot/Image +vdso: true + +[image] +install-stem: vmlinuz +breaks: libmozjs185-1.0, libmozjs-24-0 (<< 24.2.0-5.1~) + +[arm64_description] +hardware: 64-bit ARMv8 machines + +[arm64_image] diff --git a/config/arm64/none/defines b/config/arm64/none/defines new file mode 100644 index 00000000000..fdea40cbcaf --- /dev/null +++ b/config/arm64/none/defines @@ -0,0 +1,3 @@ +[base] +flavours: + arm64 diff --git a/config/armel/config b/config/armel/config new file mode 100644 index 00000000000..afae7b106c1 --- /dev/null +++ b/config/armel/config @@ -0,0 +1,10 @@ +## +## file: security/apparmor/Kconfig +## +# CONFIG_SECURITY_APPARMOR is not set + +## +## file: security/tomoyo/Kconfig +## +# CONFIG_SECURITY_TOMOYO is not set + diff --git a/config/armel/config.marvell b/config/armel/config.marvell new file mode 100644 index 00000000000..4a8050699ae --- /dev/null +++ b/config/armel/config.marvell @@ -0,0 +1,790 @@ +## +## file: arch/Kconfig +## +# CONFIG_KPROBES is not set +## choice: Stack Protector buffer overflow detection +CONFIG_CC_STACKPROTECTOR_REGULAR=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +## end choice + +## +## file: arch/arm/Kconfig +## +CONFIG_ARCH_MULTI_V5=y +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_PCI=y +CONFIG_HIGHMEM=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_CMDLINE="" +# CONFIG_XIP_KERNEL is not set +CONFIG_ATAGS_PROC=y +CONFIG_VFP=y + +## +## file: arch/arm/Kconfig.debug +## +## choice: Kernel low-level debugging port +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_DEBUG_LL_UART_8250=y +## end choice +#. Kirkwood (with new boot loader) and Orion both have an 8250 at +#. physical address 0xf1012000. +CONFIG_DEBUG_UART_PHYS=0xf1012000 +#. MVEBU is flexible about the virtual address (relying on +#. debug_ll_io_init()) but Orion maps the 8250 as part of a larger +#. block of registers. So use the VA that Orion requires. +CONFIG_DEBUG_UART_VIRT=0xfe012000 + +## +## file: arch/arm/mach-imx/Kconfig +## +# CONFIG_ARCH_MXC is not set + +## +## file: arch/arm/mach-mvebu/Kconfig +## +CONFIG_ARCH_MVEBU=y +CONFIG_MACH_KIRKWOOD=y + +## +## file: arch/arm/mach-orion5x/Kconfig +## +CONFIG_ARCH_ORION5X=y +CONFIG_MACH_DB88F5281=y +CONFIG_MACH_RD88F5182=y +CONFIG_MACH_RD88F5182_DT=y +CONFIG_MACH_KUROBOX_PRO=y +#. Only 1.5 MB flash available for kernel +# CONFIG_MACH_DNS323 is not set +CONFIG_MACH_TS209=y +CONFIG_MACH_TERASTATION_PRO2=y +CONFIG_MACH_LINKSTATION_PRO=y +CONFIG_MACH_LINKSTATION_LSCHL=y +CONFIG_MACH_LINKSTATION_MINI=y +CONFIG_MACH_LINKSTATION_LS_HGL=y +CONFIG_MACH_TS409=y +CONFIG_MACH_WRT350N_V2=y +CONFIG_MACH_TS78XX=y +CONFIG_MACH_MV2120=y +CONFIG_MACH_NET2BIG=y +CONFIG_MACH_MSS2_DT=y +CONFIG_MACH_WNR854T=y +CONFIG_MACH_RD88F5181L_GE=y +CONFIG_MACH_RD88F5181L_FXO=y +CONFIG_MACH_RD88F6183AP_GE=y + +## +## file: arch/arm/mm/Kconfig +## +CONFIG_CPU_FEROCEON_OLD_ID=y +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set + +## +## file: block/Kconfig.iosched +## +CONFIG_IOSCHED_DEADLINE=m + +## +## file: block/partitions/Kconfig +## +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y + +## +## file: crypto/Kconfig +## +# CONFIG_CRYPTO_FIPS is not set + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=m +CONFIG_SATA_AHCI=m +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_ATA_PIIX is not set +CONFIG_SATA_MV=m +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_RZ1000 is not set +# CONFIG_ATA_GENERIC is not set + +## +## file: drivers/bluetooth/Kconfig +## +# CONFIG_BT_HCIUART is not set +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m + +## +## file: drivers/cpuidle/Kconfig +## +CONFIG_CPU_IDLE=y + +## +## file: drivers/cpuidle/Kconfig.arm +## +CONFIG_ARM_KIRKWOOD_CPUIDLE=y + +## +## file: drivers/crypto/Kconfig +## +# CONFIG_CRYPTO_DEV_MV_CESA is not set +CONFIG_CRYPTO_DEV_MARVELL_CESA=m + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y +CONFIG_MV_XOR=y + +## +## file: drivers/gpu/drm/Kconfig +## +# CONFIG_DRM is not set + +## +## file: drivers/gpu/vga/Kconfig +## +# CONFIG_VGA_ARB is not set + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_LM75=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_MV64XXX=y + +## +## file: drivers/input/gameport/Kconfig +## +CONFIG_GAMEPORT=m + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y + +## +## file: drivers/input/keyboard/Kconfig +## +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_GPIO=m + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=m +CONFIG_SERIO_SERPORT=m +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=m +# CONFIG_SERIO_RAW is not set + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y + +## +## file: drivers/isdn/Kconfig +## +CONFIG_ISDN=y +CONFIG_ISDN_CAPI=m + +## +## file: drivers/isdn/capi/Kconfig +## +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPIDRV=m + +## +## file: drivers/isdn/hardware/avm/Kconfig +## +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +## +## file: drivers/isdn/hardware/eicon/Kconfig +## +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_NS2=m +CONFIG_LEDS_NETXBIG=m + +## +## file: drivers/leds/trigger/Kconfig +## +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mmc/host/Kconfig +## +CONFIG_MMC_MVSDIO=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=m +CONFIG_NFTL=m +# CONFIG_NFTL_RW is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +## choice: Flash cmd/query data swapping +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +## end choice +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +#. Needed e.g. on QNAP devices +CONFIG_MTD_CFI_INTELEXT=y +#. Needed e.g. on D-Link DNS-323, Buffalo KuroBox-Pro, Buffalo Linkstation LS-GL / LS-WTGL, etc +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=m +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +## +## file: drivers/mtd/devices/Kconfig +## +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +## +## file: drivers/mtd/maps/Kconfig +## +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_IMPA7 is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +## +## file: drivers/mtd/nand/Kconfig +## +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_CAFE is not set +CONFIG_MTD_NAND_ORION=y + +## +## file: drivers/mtd/onenand/Kconfig +## +# CONFIG_MTD_ONENAND is not set + +## +## file: drivers/mtd/spi-nor/Kconfig +## +CONFIG_MTD_SPI_NOR=m + +## +## file: drivers/net/arcnet/Kconfig +## +# CONFIG_ARCNET is not set + +## +## file: drivers/net/ethernet/atheros/Kconfig +## +# CONFIG_ATL1 is not set + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +# CONFIG_BNX2 is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2X is not set + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +# CONFIG_DL2K is not set + +## +## file: drivers/net/ethernet/intel/Kconfig +## +# CONFIG_E1000 is not set +# CONFIG_E1000E is not set +# CONFIG_IGB is not set + +## +## file: drivers/net/ethernet/marvell/Kconfig +## +CONFIG_MV643XX_ETH=m +CONFIG_MVMDIO=m +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +# CONFIG_NS83820 is not set + +## +## file: drivers/net/ethernet/packetengines/Kconfig +## +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set + +## +## file: drivers/net/ethernet/qlogic/Kconfig +## +# CONFIG_QLA3XXX is not set + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +# CONFIG_R8169 is not set + +## +## file: drivers/net/ethernet/sis/Kconfig +## +# CONFIG_SIS190 is not set + +## +## file: drivers/net/ethernet/via/Kconfig +## +# CONFIG_VIA_VELOCITY is not set + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m + +## +## file: drivers/pci/host/Kconfig +## +CONFIG_PCI_MVEBU=y + +## +## file: drivers/pci/pcie/Kconfig +## +# CONFIG_PCIE_DPC is not set + +## +## file: drivers/pcmcia/Kconfig +## +# CONFIG_PCCARD is not set + +## +## file: drivers/power/reset/Kconfig +## +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_QNAP=y +CONFIG_POWER_RESET_RESTART=y + +## +## file: drivers/regulator/Kconfig +## +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_RS5C372=y +CONFIG_RTC_DRV_PCF8563=y +CONFIG_RTC_DRV_M41T80=y +CONFIG_RTC_DRV_S35390A=y +CONFIG_RTC_DRV_MV=y + +## +## file: drivers/scsi/Kconfig +## +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_NSP32 is not set + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic79xx +## +# CONFIG_SCSI_AIC79XX is not set + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx +## +# CONFIG_SCSI_AIC7XXX is not set + +## +## file: drivers/scsi/aic94xx/Kconfig +## +# CONFIG_SCSI_AIC94XX is not set + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set + +## +## file: drivers/scsi/mvsas/Kconfig +## +# CONFIG_SCSI_MVSAS is not set + +## +## file: drivers/scsi/qla2xxx/Kconfig +## +# CONFIG_SCSI_QLA_FC is not set + +## +## file: drivers/scsi/qla4xxx/Kconfig +## +# CONFIG_SCSI_QLA_ISCSI is not set + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_ORION=y + +## +## file: drivers/ssb/Kconfig +## +# CONFIG_SSB is not set + +## +## file: drivers/staging/xgifb/Kconfig +## +CONFIG_FB_XGI=m + +## +## file: drivers/thermal/Kconfig +## +CONFIG_KIRKWOOD_THERMAL=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_DW is not set +CONFIG_SERIAL_OF_PLATFORM=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB_SUPPORT=y +CONFIG_USB=m + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_HCD_ORION=y +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m + +## +## file: drivers/video/console/Kconfig +## +# CONFIG_VGA_CONSOLE is not set +CONFIG_FRAMEBUFFER_CONSOLE=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=m + +## +## file: drivers/virtio/Kconfig +## +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_ORION_WATCHDOG=m + +## +## file: fs/Kconfig +## +# CONFIG_FS_DAX is not set + +## +## file: fs/notify/fanotify/Kconfig +## +# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set + +## +## file: init/Kconfig +## +#. Saves about 7K +# CONFIG_MEMCG is not set +# CONFIG_CFS_BANDWIDTH is not set +# CONFIG_CHECKPOINT_RESTORE is not set +## choice: Compiler optimization level +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +## end choice +# CONFIG_USERFAULTFD is not set +# CONFIG_PROFILING is not set +# CONFIG_MODULE_SIG is not set + +## +## file: kernel/power/Kconfig +## +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set +# CONFIG_PM is not set + +## +## file: kernel/trace/Kconfig +## +# CONFIG_FUNCTION_GRAPH_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_STACK_TRACER is not set + +## +## file: lib/Kconfig.debug +## +# CONFIG_SCHEDSTATS is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +## end choice +#. Saves about 7K +# CONFIG_COMPACTION is not set +# CONFIG_KSM is not set + +## +## file: mm/Kconfig.debug +## +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_PAGE_POISONING is not set + +## +## file: net/Kconfig +## +#. Saves about 3K +# CONFIG_BPF_JIT is not set +# CONFIG_LWTUNNEL is not set + +## +## file: net/atm/Kconfig +## +CONFIG_ATM=m + +## +## file: net/ax25/Kconfig +## +CONFIG_HAMRADIO=y +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +## +## file: net/ipv6/Kconfig +## +CONFIG_IPV6=m + +## +## file: net/l3mdev/Kconfig +## +# CONFIG_NET_L3_MASTER_DEV is not set + +## +## file: net/mpls/Kconfig +## +# CONFIG_NET_MPLS_GSO is not set + +## +## file: sound/soc/Kconfig +## +CONFIG_SND_SOC=m + +## +## file: sound/soc/codecs/Kconfig +## +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_CS42L51_I2C=m + +## +## file: sound/soc/generic/Kconfig +## +CONFIG_SND_SIMPLE_CARD=m + +## +## file: sound/soc/kirkwood/Kconfig +## +CONFIG_SND_KIRKWOOD_SOC=m + +## +## file: usr/Kconfig +## +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set + diff --git a/config/armel/defines b/config/armel/defines new file mode 100644 index 00000000000..912932cfb83 --- /dev/null +++ b/config/armel/defines @@ -0,0 +1,34 @@ +[base] +flavours: + marvell +kernel-arch: arm + +[build] +image-file: arch/arm/boot/zImage +# Signature verification disabled to save on code size. This should +# apply only to marvell, but we would then need to build udebs only for +# marvell and we don't have a way to do that. +signed-modules: false + +[image] +install-stem: vmlinuz + +[relations] +headers%gcc-5: linux-compiler-gcc-5-arm + +[marvell_description] +hardware: Marvell Kirkwood/Orion +hardware-long: Marvell Kirkwood based systems (SheevaPlug, QNAP TS-119/TS-219, etc) + and Orion 5181, 5182 and 5281 based systems (QNAP TS-109/TS-209, etc) + +[marvell_image] +recommends: u-boot-tools +## Maximum kernel size for supported devices (64 bytes is the u-boot header) +# SheevaPlug: 4194304 - 64 = 4194240 +# QNAP TS-119/TS-219: 2097152 - 64 = 2097088 +# D-Link DNS-323: 1572864 - 8 - 64 = 1572792 (too small, no longer supported) +# HP Media Vault mv2120: 2097152 - 8 - 64 = 2097080 +# QNAP TS-109/TS-209 & TS-409: 2097152 - 8 - 64 = 2097080 +check-size: 2097080 +check-size-with-dtb: true +breaks: flash-kernel (<< 3.57~) diff --git a/config/armhf/config b/config/armhf/config new file mode 100644 index 00000000000..5512b03f682 --- /dev/null +++ b/config/armhf/config @@ -0,0 +1,1318 @@ +## +## file: arch/arm/Kconfig +## +## choice: ARM system type +CONFIG_ARCH_MULTIPLATFORM=y +## end choice +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_VIRT=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_773022=y +CONFIG_PCI=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_MCPM=y +CONFIG_NR_CPUS=8 +CONFIG_HIGHMEM=y +CONFIG_XEN=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +## choice: Kernel command line type +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set +## end choice +CONFIG_ATAGS_PROC=y +CONFIG_EFI=y +#. Enable floating point unit +CONFIG_VFP=y +CONFIG_NEON=y + +## +## file: arch/arm/Kconfig.debug +## +#. DEBUG_LL is incompatible with multiplatform +# CONFIG_DEBUG_LL is not set + +## +## file: arch/arm/mach-bcm/Kconfig +## +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y + +## +## file: arch/arm/mach-exynos/Kconfig +## +CONFIG_ARCH_EXYNOS=y +# CONFIG_ARCH_EXYNOS3 is not set +CONFIG_ARCH_EXYNOS4=y +CONFIG_ARCH_EXYNOS5=y +CONFIG_EXYNOS5420_MCPM=y + +## +## file: arch/arm/mach-highbank/Kconfig +## +CONFIG_ARCH_HIGHBANK=y + +## +## file: arch/arm/mach-imx/Kconfig +## +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX51=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y + +## +## file: arch/arm/mach-mvebu/Kconfig +## +CONFIG_ARCH_MVEBU=y +CONFIG_MACH_ARMADA_370=y +CONFIG_MACH_ARMADA_375=y +CONFIG_MACH_ARMADA_38X=y +CONFIG_MACH_ARMADA_39X=y +CONFIG_MACH_ARMADA_XP=y + +## +## file: arch/arm/mach-omap2/Kconfig +## +# CONFIG_ARCH_OMAP2 is not set +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +CONFIG_SOC_OMAP5=y +CONFIG_SOC_AM33XX=y +CONFIG_SOC_DRA7XX=y +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_TI81XX=y + +## +## file: arch/arm/mach-rockchip/Kconfig +## +CONFIG_ARCH_ROCKCHIP=y + +## +## file: arch/arm/mach-socfpga/Kconfig +## +CONFIG_ARCH_SOCFPGA=y + +## +## file: arch/arm/mach-sunxi/Kconfig +## +CONFIG_ARCH_SUNXI=y + +## +## file: arch/arm/mach-tegra/Kconfig +## +CONFIG_ARCH_TEGRA=y + +## +## file: arch/arm/mach-vexpress/Kconfig +## +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y + +## +## file: arch/arm/mach-vt8500/Kconfig +## +CONFIG_ARCH_WM8850=y + +## +## file: arch/arm/mm/Kconfig +## +CONFIG_ARM_THUMBEE=y + +## +## file: arch/arm/plat-omap/Kconfig +## +CONFIG_POWER_AVS_OMAP=y +CONFIG_POWER_AVS_OMAP_CLASS3=y +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +# CONFIG_OMAP_MPU_TIMER is not set +CONFIG_OMAP_32K_TIMER=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_SERIAL_WAKE=y +## choice: OMAP PM layer selection +CONFIG_OMAP_PM_NOOP=y +## end choice + +## +## file: drivers/ata/Kconfig +## +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_AHCI_IMX=m +CONFIG_AHCI_MVEBU=m +CONFIG_AHCI_SUNXI=m +CONFIG_AHCI_TEGRA=m +CONFIG_SATA_HIGHBANK=m +CONFIG_PATA_IMX=m +CONFIG_PATA_PLATFORM=m +CONFIG_PATA_OF_PLATFORM=m + +## +## file: drivers/base/Kconfig +## +CONFIG_DMA_CMA=y + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_WILINK=m + +## +## file: drivers/bus/Kconfig +## +CONFIG_OMAP_INTERCONNECT=m +CONFIG_OMAP_OCP2SCP=m + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_OMAP=m + +## +## file: drivers/clk/Kconfig +## +CONFIG_COMMON_CLK_MAX77686=m +CONFIG_COMMON_CLK_RK808=m +CONFIG_COMMON_CLK_S2MPS11=m +CONFIG_CLK_TWL6040=m + +## +## file: drivers/cpufreq/Kconfig +## +CONFIG_CPUFREQ_DT=m + +## +## file: drivers/cpufreq/Kconfig.arm +## +CONFIG_ARM_IMX6Q_CPUFREQ=m +CONFIG_ARM_TEGRA20_CPUFREQ=y + +## +## file: drivers/cpuidle/Kconfig.arm +## +CONFIG_ARM_EXYNOS_CPUIDLE=y + +## +## file: drivers/crypto/Kconfig +## +# CONFIG_CRYPTO_DEV_MV_CESA is not set +CONFIG_CRYPTO_DEV_MARVELL_CESA=m +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_OMAP_AES=m +CONFIG_CRYPTO_DEV_SUN4I_SS=m + +## +## file: drivers/devfreq/Kconfig +## +CONFIG_PM_DEVFREQ=y +CONFIG_ARM_TEGRA_DEVFREQ=m + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y +CONFIG_AMBA_PL08X=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_OMAP=y +CONFIG_DMA_SUN6I=m +CONFIG_IMX_DMA=y +CONFIG_IMX_SDMA=y +CONFIG_MV_XOR=y +CONFIG_MXS_DMA=y +CONFIG_PL330_DMA=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TI_CPPI41=m +CONFIG_TI_EDMA=y + +## +## file: drivers/extcon/Kconfig +## +CONFIG_EXTCON=m +CONFIG_EXTCON_PALMAS=m +CONFIG_EXTCON_USB_GPIO=m + +## +## file: drivers/firmware/Kconfig +## +CONFIG_RASPBERRYPI_FIRMWARE=y + +## +## file: drivers/gpio/Kconfig +## +CONFIG_GPIOLIB=y +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_DA9052=m +CONFIG_GPIO_PALMAS=y +CONFIG_GPIO_TWL4030=y +CONFIG_GPIO_TWL6040=y +CONFIG_GPIO_MCP23S08=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m + +## +## file: drivers/gpu/drm/etnaviv/Kconfig +## +CONFIG_DRM_ETNAVIV=m + +## +## file: drivers/gpu/drm/exynos/Kconfig +## +CONFIG_DRM_EXYNOS=m +CONFIG_DRM_EXYNOS_FIMD=y +CONFIG_DRM_EXYNOS_MIXER=y +CONFIG_DRM_EXYNOS_DSI=y +CONFIG_DRM_EXYNOS_DP=y +CONFIG_DRM_EXYNOS_HDMI=y + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +CONFIG_DRM_I2C_NXP_TDA998X=m + +## +## file: drivers/gpu/drm/imx/Kconfig +## +CONFIG_DRM_IMX=m +CONFIG_DRM_IMX_LDB=m +CONFIG_DRM_IMX_HDMI=m + +## +## file: drivers/gpu/drm/omapdrm/Kconfig +## +CONFIG_DRM_OMAP=m + +## +## file: drivers/gpu/drm/omapdrm/displays/Kconfig +## +CONFIG_DRM_OMAP_ENCODER_TPD12S015=m +CONFIG_DRM_OMAP_CONNECTOR_HDMI=m +CONFIG_DRM_OMAP_CONNECTOR_ANALOG_TV=m +CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m +CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m + +## +## file: drivers/gpu/drm/omapdrm/dss/Kconfig +## +CONFIG_OMAP2_DSS=m +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP4_DSS_HDMI=y +CONFIG_OMAP5_DSS_HDMI=y +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_DSI=y + +## +## file: drivers/gpu/drm/panel/Kconfig +## +CONFIG_DRM_PANEL_SIMPLE=m + +## +## file: drivers/gpu/drm/rockchip/Kconfig +## +CONFIG_DRM_ROCKCHIP=m +CONFIG_ROCKCHIP_ANALOGIX_DP=m +CONFIG_ROCKCHIP_DW_HDMI=m +CONFIG_ROCKCHIP_DW_MIPI_DSI=m + +## +## file: drivers/gpu/drm/tegra/Kconfig +## +CONFIG_DRM_TEGRA=m +# CONFIG_DRM_TEGRA_DEBUG is not set +CONFIG_DRM_TEGRA_STAGING=y + +## +## file: drivers/gpu/drm/tilcdc/Kconfig +## +CONFIG_DRM_TILCDC=m + +## +## file: drivers/gpu/drm/vc4/Kconfig +## +CONFIG_DRM_VC4=m + +## +## file: drivers/gpu/host1x/Kconfig +## +CONFIG_TEGRA_HOST1X=m +CONFIG_TEGRA_HOST1X_FIREWALL=y + +## +## file: drivers/gpu/ipu-v3/Kconfig +## +CONFIG_IMX_IPUV3_CORE=m + +## +## file: drivers/hsi/Kconfig +## +CONFIG_HSI=m + +## +## file: drivers/hsi/clients/Kconfig +## +CONFIG_NOKIA_MODEM=m +CONFIG_CMT_SPEECH=m +CONFIG_SSI_PROTOCOL=m + +## +## file: drivers/hsi/controllers/Kconfig +## +CONFIG_OMAP_SSI=m + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_G762=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_TWL4030_MADC=m + +## +## file: drivers/hwspinlock/Kconfig +## +CONFIG_HWSPINLOCK_OMAP=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C_MUX=m + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_BCM2835=m +CONFIG_I2C_EXYNOS5=m +CONFIG_I2C_GPIO=y +CONFIG_I2C_IMX=m +CONFIG_I2C_MV64XXX=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_RK3X=m +CONFIG_I2C_S3C2410=y +CONFIG_I2C_SUN6I_P2WI=m +CONFIG_I2C_TEGRA=y +CONFIG_I2C_VERSATILE=m +CONFIG_I2C_CROS_EC_TUNNEL=m + +## +## file: drivers/i2c/muxes/Kconfig +## +CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_MUX_PCA954x=m + +## +## file: drivers/iio/Kconfig +## +CONFIG_IIO=m + +## +## file: drivers/iio/accel/Kconfig +## +CONFIG_IIO_ST_ACCEL_3AXIS=m +CONFIG_MMA8452=m + +## +## file: drivers/iio/adc/Kconfig +## +CONFIG_EXYNOS_ADC=m +CONFIG_ROCKCHIP_SARADC=m +CONFIG_TI_AM335X_ADC=m +CONFIG_TWL4030_MADC=m + +## +## file: drivers/iio/light/Kconfig +## +CONFIG_SENSORS_TSL2563=m + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX=m +CONFIG_KEYBOARD_TEGRA=m +CONFIG_KEYBOARD_SUN4I_LRADC=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_CROS_EC=m + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_AXP20X_PEK=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_ELAN_I2C=m + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_SUN4I_PS2=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_STMPE=m +CONFIG_TOUCHSCREEN_SUN4I=m + +## +## file: drivers/iommu/Kconfig +## +CONFIG_OMAP_IOMMU=y +# CONFIG_OMAP_IOMMU_DEBUG is not set +CONFIG_ROCKCHIP_IOMMU=y +CONFIG_TEGRA_IOMMU_SMMU=y + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_DA9052=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_TCA6507=m + +## +## file: drivers/leds/trigger/Kconfig +## +CONFIG_LEDS_TRIGGER_GPIO=m + +## +## file: drivers/mailbox/Kconfig +## +CONFIG_MAILBOX=y +CONFIG_OMAP2PLUS_MBOX=y +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_BCM2835_MBOX=y + +## +## file: drivers/media/Kconfig +## +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y + +## +## file: drivers/media/platform/Kconfig +## +CONFIG_VIDEO_OMAP3=m +CONFIG_VIDEO_TI_VPE=m + +## +## file: drivers/media/platform/omap/Kconfig +## +CONFIG_VIDEO_OMAP2_VOUT=m + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_SI4713=m + +## +## file: drivers/media/radio/si4713/Kconfig +## +CONFIG_I2C_SI4713=m + +## +## file: drivers/media/radio/wl128x/Kconfig +## +CONFIG_RADIO_WL128X=m + +## +## file: drivers/media/rc/Kconfig +## +CONFIG_IR_GPIO_CIR=m +CONFIG_IR_SUNXI=m + +## +## file: drivers/memory/Kconfig +## +CONFIG_TI_EMIF=m + +## +## file: drivers/memory/tegra/Kconfig +## +CONFIG_TEGRA_MC=y +CONFIG_TEGRA124_EMC=y + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_AS3722=y +CONFIG_MFD_AXP20X_I2C=y +CONFIG_MFD_CROS_EC=m +CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_DA9052_SPI=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_MC13XXX_SPI=m +CONFIG_MFD_MC13XXX_I2C=m +CONFIG_MFD_MAX77686=y +CONFIG_MFD_RK808=y +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MFD_PALMAS=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL6040_CORE=y + +## +## file: drivers/misc/Kconfig +## +CONFIG_ARM_CHARLCD=y + +## +## file: drivers/misc/ti-st/Kconfig +## +CONFIG_TI_ST=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=y + +## +## file: drivers/mmc/host/Kconfig +## +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_ESDHC_IMX=m +CONFIG_MMC_SDHCI_TEGRA=m +CONFIG_MMC_SDHCI_S3C=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_IPROC=m +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=m +CONFIG_MMC_MVSDIO=m +CONFIG_MMC_SPI=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_EXYNOS=m +CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_WMT=m +CONFIG_MMC_SUNXI=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y + +## +## file: drivers/mtd/nand/Kconfig +## +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_OMAP2=m +CONFIG_MTD_NAND_PXA3xx=m +CONFIG_MTD_NAND_GPMI_NAND=m +CONFIG_MTD_NAND_ORION=m +CONFIG_MTD_NAND_MXC=m +CONFIG_MTD_NAND_SUNXI=m + +## +## file: drivers/mtd/onenand/Kconfig +## +CONFIG_MTD_ONENAND=y +CONFIG_MTD_ONENAND_OMAP2=m + +## +## file: drivers/net/can/Kconfig +## +CONFIG_CAN_SUN4I=m + +## +## file: drivers/net/dsa/Kconfig +## +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_BCM_SF2=m + +## +## file: drivers/net/dsa/b53/Kconfig +## +CONFIG_B53=m +CONFIG_B53_MDIO_DRIVER=m + +## +## file: drivers/net/dsa/mv88e6xxx/Kconfig +## +CONFIG_NET_DSA_MV88E6XXX=m + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NET_VENDOR_8390=y +CONFIG_NE2K_PCI=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/allwinner/Kconfig +## +CONFIG_SUN4I_EMAC=m + +## +## file: drivers/net/ethernet/arc/Kconfig +## +CONFIG_EMAC_ROCKCHIP=m + +## +## file: drivers/net/ethernet/calxeda/Kconfig +## +CONFIG_NET_CALXEDA_XGMAC=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_WINBOND_840=m +CONFIG_DM9102=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_NET_VENDOR_DLINK=y +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m + +## +## file: drivers/net/ethernet/marvell/Kconfig +## +CONFIG_MVMDIO=m +CONFIG_MVNETA=m +CONFIG_MVPP2=m + +## +## file: drivers/net/ethernet/microchip/Kconfig +## +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_EPIC100=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m + +## +## file: drivers/net/ethernet/stmicro/stmmac/Kconfig +## +CONFIG_STMMAC_ETH=m +CONFIG_DWMAC_GENERIC=m +CONFIG_DWMAC_ROCKCHIP=m +CONFIG_DWMAC_SOCFPGA=m +CONFIG_DWMAC_SUNXI=m + +## +## file: drivers/net/ethernet/ti/Kconfig +## +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_DAVINCI_MDIO=m +CONFIG_TI_DAVINCI_CPDMA=m +CONFIG_TI_CPSW=m + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/hamradio/Kconfig +## +# CONFIG_BPQETHER is not set +# CONFIG_BAYCOM_SER_FDX is not set +# CONFIG_BAYCOM_SER_HDX is not set +# CONFIG_BAYCOM_PAR is not set +# CONFIG_BAYCOM_EPP is not set +# CONFIG_YAM is not set + +## +## file: drivers/net/phy/Kconfig +## +CONFIG_MDIO_SUN4I=y + +## +## file: drivers/net/wireless/broadcom/brcm80211/Kconfig +## +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y + +## +## file: drivers/net/wireless/ti/Kconfig +## +CONFIG_WLAN_VENDOR_TI=y +CONFIG_WILINK_PLATFORM_DATA=y + +## +## file: drivers/net/wireless/ti/wl1251/Kconfig +## +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m + +## +## file: drivers/net/wireless/ti/wl12xx/Kconfig +## +CONFIG_WL12XX=m + +## +## file: drivers/net/wireless/ti/wl18xx/Kconfig +## +CONFIG_WL18XX=m + +## +## file: drivers/net/wireless/ti/wlcore/Kconfig +## +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m + +## +## file: drivers/nvmem/Kconfig +## +CONFIG_ROCKCHIP_EFUSE=m +CONFIG_NVMEM_SUNXI_SID=m + +## +## file: drivers/pci/host/Kconfig +## +CONFIG_PCI_DRA7XX=y +CONFIG_PCI_MVEBU=y +CONFIG_PCI_IMX6=y +CONFIG_PCI_TEGRA=y + +## +## file: drivers/phy/Kconfig +## +CONFIG_PHY_EXYNOS_MIPI_VIDEO=m +CONFIG_OMAP_CONTROL_PHY=m +CONFIG_OMAP_USB2=m +CONFIG_TI_PIPE3=y +CONFIG_TWL4030_USB=m +CONFIG_PHY_EXYNOS_DP_VIDEO=m +CONFIG_PHY_EXYNOS5250_SATA=m +CONFIG_PHY_SUN4I_USB=m +CONFIG_PHY_SUN9I_USB=m +CONFIG_PHY_SAMSUNG_USB2=m +CONFIG_PHY_EXYNOS5_USBDRD=m +CONFIG_PHY_ROCKCHIP_USB=m +CONFIG_PHY_ROCKCHIP_EMMC=m +CONFIG_PHY_ROCKCHIP_DP=m + +## +## file: drivers/phy/tegra/Kconfig +## +CONFIG_PHY_TEGRA_XUSB=m + +## +## file: drivers/pinctrl/Kconfig +## +CONFIG_PINCTRL_AS3722=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_PALMAS=y + +## +## file: drivers/pinctrl/vt8500/Kconfig +## +CONFIG_PINCTRL_WM8850=y + +## +## file: drivers/power/avs/Kconfig +## +CONFIG_POWER_AVS=y +CONFIG_ROCKCHIP_IODOMAIN=m + +## +## file: drivers/power/reset/Kconfig +## +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_AS3722=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_BATTERY_SBS=m +CONFIG_BATTERY_BQ27XXX=m +CONFIG_BATTERY_TWL4030_MADC=m +CONFIG_BATTERY_RX51=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_TWL4030=m +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_BQ2415X=m +CONFIG_AXP20X_POWER=m + +## +## file: drivers/pwm/Kconfig +## +CONFIG_PWM=y +CONFIG_PWM_BCM2835=m +CONFIG_PWM_IMX=m +CONFIG_PWM_ROCKCHIP=m +CONFIG_PWM_SAMSUNG=m +CONFIG_PWM_SUN4I=m +CONFIG_PWM_TEGRA=m +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_PWM_VT8500=m + +## +## file: drivers/regulator/Kconfig +## +CONFIG_REGULATOR=y +CONFIG_REGULATOR_ACT8865=m +CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_AS3722=y +CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_DA9052=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_MAX77686=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_PALMAS=y +CONFIG_REGULATOR_PBIAS=m +CONFIG_REGULATOR_PFUZE100=m +CONFIG_REGULATOR_RK808=m +CONFIG_REGULATOR_S2MPA01=m +CONFIG_REGULATOR_S2MPS11=m +CONFIG_REGULATOR_S5M8767=m +CONFIG_REGULATOR_TI_ABB=m +CONFIG_REGULATOR_TPS65910=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_VEXPRESS=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_AS3722=y +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_RK808=y +CONFIG_RTC_DRV_PCF8523=y +CONFIG_RTC_DRV_PCF8563=y +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTC_DRV_PALMAS=y +CONFIG_RTC_DRV_S5M=y +CONFIG_RTC_DRV_DA9052=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_IMXDI=y +CONFIG_RTC_DRV_OMAP=y +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_VT8500=y +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_SUNXI=y +CONFIG_RTC_DRV_MV=y +CONFIG_RTC_DRV_ARMADA38X=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_TEGRA=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_SNVS=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_AM53C974=m + +## +## file: drivers/soc/bcm/Kconfig +## +CONFIG_RASPBERRYPI_POWER=y + +## +## file: drivers/soc/rockchip/Kconfig +## +CONFIG_ROCKCHIP_PM_DOMAINS=y + +## +## file: drivers/soc/tegra/Kconfig +## +# CONFIG_ARCH_TEGRA_2x_SOC is not set +# CONFIG_ARCH_TEGRA_3x_SOC is not set +# CONFIG_ARCH_TEGRA_114_SOC is not set +CONFIG_ARCH_TEGRA_124_SOC=y + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI=y +CONFIG_SPI_BCM2835=m +CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=m +CONFIG_SPI_OMAP24XX=m +CONFIG_SPI_TI_QSPI=m +CONFIG_SPI_ORION=m +CONFIG_SPI_PL022=m +CONFIG_SPI_ROCKCHIP=m +CONFIG_SPI_SUN4I=m +CONFIG_SPI_SUN6I=m +CONFIG_SPI_TEGRA114=m +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_SPIDEV=y + +## +## file: drivers/thermal/Kconfig +## +CONFIG_ROCKCHIP_THERMAL=m +CONFIG_ARMADA_THERMAL=y + +## +## file: drivers/thermal/tegra/Kconfig +## +CONFIG_TEGRA_SOCTHERM=y + +## +## file: drivers/thermal/ti-soc-thermal/Kconfig +## +CONFIG_TI_SOC_THERMAL=m +CONFIG_TI_THERMAL=y +CONFIG_OMAP4_THERMAL=y +CONFIG_OMAP5_THERMAL=y +CONFIG_DRA752_THERMAL=y + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_VT8500=y +CONFIG_SERIAL_VT8500_CONSOLE=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_ARC=y +CONFIG_SERIAL_ARC_CONSOLE=y +CONFIG_SERIAL_ARC_NR_PORTS=1 + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_EM is not set +CONFIG_SERIAL_OF_PLATFORM=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m + +## +## file: drivers/usb/chipidea/Kconfig +## +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y + +## +## file: drivers/usb/dwc2/Kconfig +## +CONFIG_USB_DWC2=m +## choice: DWC2 Mode Selection +CONFIG_USB_DWC2_DUAL_ROLE=y +## end choice + +## +## file: drivers/usb/dwc3/Kconfig +## +CONFIG_USB_DWC3=m +## choice: DWC3 Mode Selection +CONFIG_USB_DWC3_DUAL_ROLE=y +## end choice +CONFIG_USB_DWC3_OMAP=m +CONFIG_USB_DWC3_EXYNOS=m +# CONFIG_USB_DWC3_PCI is not set + +## +## file: drivers/usb/gadget/Kconfig +## +CONFIG_USB_GADGET=m + +## +## file: drivers/usb/gadget/legacy/Kconfig +## +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_G_NOKIA=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_XHCI_MVEBU=m +CONFIG_USB_XHCI_TEGRA=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_MXC=m +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_EHCI_TEGRA=m +CONFIG_USB_EHCI_EXYNOS=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_OMAP3=y +CONFIG_USB_OHCI_EXYNOS=m +CONFIG_USB_OHCI_HCD_PLATFORM=m + +## +## file: drivers/usb/misc/Kconfig +## +CONFIG_USB_HSIC_USB3503=m + +## +## file: drivers/usb/musb/Kconfig +## +CONFIG_USB_MUSB_HDRC=m +## choice: MUSB Mode Selection +# CONFIG_USB_MUSB_HOST is not set +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_DUAL_ROLE=y +## end choice +CONFIG_USB_MUSB_SUNXI=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_MUSB_OMAP2PLUS=m +CONFIG_USB_MUSB_AM35X=m +CONFIG_USB_MUSB_DSPS=m +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_USB_INVENTRA_DMA=y +CONFIG_USB_TI_CPPI41_DMA=y +CONFIG_USB_TUSB_OMAP_DMA=y + +## +## file: drivers/usb/phy/Kconfig +## +CONFIG_NOP_USB_XCEIV=m +CONFIG_AM335X_PHY_USB=m +CONFIG_TWL6030_USB=m +CONFIG_USB_MXS_PHY=m + +## +## file: drivers/video/backlight/Kconfig +## +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_PANDORA=m +CONFIG_BACKLIGHT_GPIO=m + +## +## file: drivers/video/console/Kconfig +## +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_ARMCLCD=y +CONFIG_FB_VT8500=y +CONFIG_FB_WM8505=y +CONFIG_FB_SIMPLE=y + +## +## file: drivers/video/fbdev/omap2/omapfb/Kconfig +## +#. Redundant and conflicting with DRM_OMAP +# CONFIG_FB_OMAP2 is not set + +## +## file: drivers/virtio/Kconfig +## +CONFIG_VIRTIO_MMIO=m + +## +## file: drivers/w1/masters/Kconfig +## +CONFIG_HDQ_MASTER_OMAP=m + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_DA9052_WATCHDOG=m +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_S3C2410_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_ORION_WATCHDOG=m +CONFIG_SUNXI_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_IMX2_WDT=m +CONFIG_TEGRA_WATCHDOG=m +CONFIG_BCM2835_WDT=m + +## +## file: kernel/power/Kconfig +## +CONFIG_SUSPEND=y +CONFIG_APM_EMULATION=y + +## +## file: mm/Kconfig +## +CONFIG_CMA=y + +## +## file: net/dsa/Kconfig +## +CONFIG_NET_DSA=m + +## +## file: net/phonet/Kconfig +## +CONFIG_PHONET=m + +## +## file: net/switchdev/Kconfig +## +CONFIG_NET_SWITCHDEV=y + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_TEGRA=m + +## +## file: sound/soc/Kconfig +## +CONFIG_SND_SOC=m + +## +## file: sound/soc/bcm/Kconfig +## +CONFIG_SND_BCM2835_SOC_I2S=m + +## +## file: sound/soc/davinci/Kconfig +## +CONFIG_SND_DAVINCI_SOC_MCASP=m + +## +## file: sound/soc/fsl/Kconfig +## +CONFIG_SND_IMX_SOC=m +CONFIG_SND_SOC_EUKREA_TLV320=m +CONFIG_SND_SOC_IMX_ES8328=m +CONFIG_SND_SOC_IMX_SGTL5000=m +CONFIG_SND_SOC_IMX_SPDIF=m +CONFIG_SND_SOC_IMX_MC13783=m + +## +## file: sound/soc/generic/Kconfig +## +CONFIG_SND_SIMPLE_CARD=m + +## +## file: sound/soc/omap/Kconfig +## +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_AM3517EVM=m +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m + +## +## file: sound/soc/rockchip/Kconfig +## +CONFIG_SND_SOC_ROCKCHIP=m +CONFIG_SND_SOC_ROCKCHIP_I2S=m +CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_ROCKCHIP_MAX98090=m +CONFIG_SND_SOC_ROCKCHIP_RT5645=m + +## +## file: sound/soc/sunxi/Kconfig +## +CONFIG_SND_SUN4I_CODEC=m + +## +## file: sound/soc/tegra/Kconfig +## +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_MAX98090=m +CONFIG_SND_SOC_TEGRA_RT5677=m + diff --git a/config/armhf/config.armmp-lpae b/config/armhf/config.armmp-lpae new file mode 100644 index 00000000000..d5045f1eef0 --- /dev/null +++ b/config/armhf/config.armmp-lpae @@ -0,0 +1,21 @@ +## +## file: arch/arm/Kconfig +## +CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 + +## +## file: arch/arm/kvm/Kconfig +## +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y + +## +## file: arch/arm/mm/Kconfig +## +CONFIG_ARM_LPAE=y + +## +## file: drivers/iommu/Kconfig +## +CONFIG_ARM_SMMU=y + diff --git a/config/armhf/defines b/config/armhf/defines new file mode 100644 index 00000000000..cfc082580a4 --- /dev/null +++ b/config/armhf/defines @@ -0,0 +1,27 @@ +[base] +flavours: + armmp + armmp-lpae +kernel-arch: arm + +[build] +image-file: arch/arm/boot/zImage +vdso: true + +[image] +install-stem: vmlinuz + +[relations] +headers%gcc-5: linux-compiler-gcc-5-arm + +[armmp_description] +hardware: ARMv7 multiplatform compatible SoCs +hardware-long: ARMv7 multiplatform kernel. See + https://wiki.debian.org/DebianKernel/ARMMP for details of supported + platforms + +[armmp-lpae_description] +hardware: ARMv7 multiplatform compatible SoCs supporting LPAE +hardware-long: ARMv7 multiplatform kernel supporting LPAE. See + https://wiki.debian.org/DebianKernel/ARMMP for details of supported + platforms. diff --git a/config/config b/config/config new file mode 100644 index 00000000000..bd87c7f324e --- /dev/null +++ b/config/config @@ -0,0 +1,7113 @@ +## +## file: arch/Kconfig +## +CONFIG_OPROFILE=m +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +#. Until we work out how to package them +# CONFIG_GCC_PLUGINS is not set +## choice: Stack Protector buffer overflow detection +CONFIG_CC_STACKPROTECTOR_STRONG=y +## end choice +CONFIG_VMAP_STACK=y + +## +## file: block/Kconfig +## +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_CMDLINE_PARSER is not set + +## +## file: block/Kconfig.iosched +## +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y +## choice: Default I/O scheduler +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +## end choice + +## +## file: block/partitions/Kconfig +## +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set + +## +## file: certs/Kconfig +## +#. Signatures are added in linux-signed +CONFIG_MODULE_SIG_KEY="" +#. Actually a list of X.509 certificates, not keys +CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/benh@debian.org.cert.pem" + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO=y +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_MANAGER=y +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCRYPT=m +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_CHACHA20POLY1305=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_ECHAINIV=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRCT10DIF=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_POLY1305=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=m +# CONFIG_CRYPTO_SHA1_MB is not set +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_CHACHA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_LZO=m +# CONFIG_CRYPTO_842 is not set +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_DRBG_MENU=m +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_JITTERENTROPY=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API_AEAD=m + +## +## file: crypto/asymmetric_keys/Kconfig +## +#. Not yet +# CONFIG_ASYMMETRIC_KEY_TYPE is not set + +## +## file: drivers/accessibility/Kconfig +## +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y + +## +## file: drivers/acpi/Kconfig +## +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_BGRT is not set +# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set +# CONFIG_PMIC_OPREGION is not set +# CONFIG_ACPI_CONFIGFS is not set + +## +## file: drivers/acpi/nfit/Kconfig +## +CONFIG_ACPI_NFIT=m +# CONFIG_ACPI_NFIT_DEBUG is not set + +## +## file: drivers/android/Kconfig +## +# CONFIG_ANDROID is not set + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=m +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=m +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_AHCI_CEVA is not set +# CONFIG_AHCI_QORIQ is not set +#. This driver loses data (#714295) +# CONFIG_SATA_INIC162X is not set +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_SIL24=m +CONFIG_ATA_SFF=y +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y +CONFIG_ATA_PIIX=m +# CONFIG_SATA_DWC is not set +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_SATA_PROMISE=m +# CONFIG_SATA_RCAR is not set +CONFIG_SATA_SIL=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +CONFIG_PATA_ARTOP=m +# CONFIG_PATA_ATIIXP is not set +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD64X=m +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_MARVELL=m +# CONFIG_PATA_NETCELL is not set +CONFIG_PATA_NINJA32=m +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RDC=m +CONFIG_PATA_SCH=m +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_ISAPNP is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PCMCIA is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_QDI is not set +# CONFIG_PATA_RZ1000 is not set +# CONFIG_PATA_WINBOND_VLB is not set +# CONFIG_PATA_ACPI is not set +CONFIG_ATA_GENERIC=m +# CONFIG_PATA_LEGACY is not set + +## +## file: drivers/atm/Kconfig +## +CONFIG_ATM_DUMMY=m +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_SOLOS=m + +## +## file: drivers/auxdisplay/Kconfig +## +# CONFIG_AUXDISPLAY is not set + +## +## file: drivers/base/Kconfig +## +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_FENCE_TRACE is not set + +## +## file: drivers/bcma/Kconfig +## +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_HOST_SOC is not set +# CONFIG_BCMA_DRIVER_PCI_HOSTMODE is not set +# CONFIG_BCMA_DRIVER_GMAC_CMN is not set +# CONFIG_BCMA_DRIVER_GPIO is not set +# CONFIG_BCMA_DEBUG is not set + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_NULL_BLK=m +# CONFIG_PARIDE is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SKD=m +CONFIG_BLK_DEV_OSD=m +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_RAM_DAX is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_BLKDEV_BACKEND=m +CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RSXX is not set + +## +## file: drivers/block/drbd/Kconfig +## +CONFIG_BLK_DEV_DRBD=m +# CONFIG_DRBD_FAULT_INJECTION is not set + +## +## file: drivers/block/mtip32xx/Kconfig +## +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m + +## +## file: drivers/block/zram/Kconfig +## +CONFIG_ZRAM=m + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y +CONFIG_BT_HCIUART_MRVL=y +# CONFIG_BT_HCIBTUART is not set +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m + +## +## file: drivers/bus/Kconfig +## +# CONFIG_OMAP_OCP2SCP is not set + +## +## file: drivers/char/Kconfig +## +CONFIG_DEVMEM=y +# CONFIG_DEVKMEM is not set +CONFIG_TTY_PRINTK=m +CONFIG_VIRTIO_CONSOLE=m +# CONFIG_R3964 is not set +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TELCLOCK=m + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM=m +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HW_RANDOM_TPM=m + +## +## file: drivers/char/pcmcia/Kconfig +## +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m + +## +## file: drivers/char/tpm/st33zp24/Kconfig +## +# CONFIG_TCG_TIS_ST33ZP24_SPI is not set + +## +## file: drivers/char/xillybus/Kconfig +## +# CONFIG_XILLYBUS is not set + +## +## file: drivers/clk/Kconfig +## +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set + +## +## file: drivers/connector/Kconfig +## +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y + +## +## file: drivers/cpufreq/Kconfig +## +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +## choice: Default CPUFreq governor +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +## end choice +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +# CONFIG_CPUFREQ_DT is not set + +## +## file: drivers/cpuidle/Kconfig +## +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y + +## +## file: drivers/devfreq/Kconfig +## +# CONFIG_PM_DEVFREQ is not set +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m +# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set +# CONFIG_DEVFREQ_GOV_POWERSAVE is not set +# CONFIG_DEVFREQ_GOV_USERSPACE is not set + +## +## file: drivers/devfreq/event/Kconfig +## +# CONFIG_PM_DEVFREQ_EVENT is not set + +## +## file: drivers/dma/Kconfig +## +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_FSL_EDMA is not set +# CONFIG_INTEL_IDMA64 is not set +CONFIG_ASYNC_TX_DMA=y +# CONFIG_DMATEST is not set + +## +## file: drivers/dma/dw/Kconfig +## +# CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set + +## +## file: drivers/edac/Kconfig +## +CONFIG_EDAC_LEGACY_SYSFS=y + +## +## file: drivers/extcon/Kconfig +## +# CONFIG_EXTCON is not set + +## +## file: drivers/firewire/Kconfig +## +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_NOSY=m + +## +## file: drivers/firmware/Kconfig +## +CONFIG_DMI_SYSFS=y + +## +## file: drivers/firmware/efi/Kconfig +## +CONFIG_EFI_VARS=m +CONFIG_EFI_VARS_PSTORE=m +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set + +## +## file: drivers/fmc/Kconfig +## +# CONFIG_FMC is not set + +## +## file: drivers/fpga/Kconfig +## +# CONFIG_FPGA is not set + +## +## file: drivers/gpio/Kconfig +## +# CONFIG_GPIOLIB is not set +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_ZX is not set +# CONFIG_GPIO_104_IDIO_16 is not set +# CONFIG_GPIO_IT87 is not set +# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_TS5500 is not set +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_CS5535 is not set +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_INTEL_MID is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_MCP23S08 is not set +CONFIG_GPIO_VIPERBOARD=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_VGEM=m +CONFIG_DRM_LEGACY=y +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m + +## +## file: drivers/gpu/drm/ast/Kconfig +## +# CONFIG_DRM_AST is not set + +## +## file: drivers/gpu/drm/bochs/Kconfig +## +CONFIG_DRM_BOCHS=m + +## +## file: drivers/gpu/drm/bridge/Kconfig +## +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set + +## +## file: drivers/gpu/drm/bridge/adv7511/Kconfig +## +# CONFIG_DRM_I2C_ADV7511 is not set + +## +## file: drivers/gpu/drm/cirrus/Kconfig +## +CONFIG_DRM_CIRRUS_QEMU=m + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set + +## +## file: drivers/gpu/drm/mgag200/Kconfig +## +# CONFIG_DRM_MGAG200 is not set + +## +## file: drivers/gpu/drm/nouveau/Kconfig +## +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +## +## file: drivers/gpu/drm/panel/Kconfig +## +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set + +## +## file: drivers/gpu/drm/qxl/Kconfig +## +CONFIG_DRM_QXL=m + +## +## file: drivers/gpu/drm/radeon/Kconfig +## +# CONFIG_DRM_RADEON_USERPTR is not set + +## +## file: drivers/gpu/drm/udl/Kconfig +## +CONFIG_DRM_UDL=m + +## +## file: drivers/gpu/drm/virtio/Kconfig +## +CONFIG_DRM_VIRTIO_GPU=m + +## +## file: drivers/gpu/drm/vmwgfx/Kconfig +## +# CONFIG_DRM_VMWGFX is not set + +## +## file: drivers/gpu/vga/Kconfig +## +CONFIG_VGA_ARB=y + +## +## file: drivers/hid/Kconfig +## +CONFIG_HID=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_UHID=m +CONFIG_HID_GENERIC=m +CONFIG_HID_A4TECH=y +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=y +CONFIG_HID_ASUS=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_BETOP_FF=m +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CORSAIR=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CMEDIA=m +CONFIG_HID_CP2112=m +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=m +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EZKEY=y +CONFIG_HID_GEMBIRD=m +# CONFIG_HID_GFRM is not set +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y +# CONFIG_HID_GT683R is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=m +CONFIG_HID_LED=m +CONFIG_HID_LENOVO=m +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PENMOUNT=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y +CONFIG_HID_PLANTRONICS=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_SONY_FF=y +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_RMI=m +CONFIG_HID_GREENASIA=m +CONFIG_GREENASIA_FF=y +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_WACOM=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_ALPS=m + +## +## file: drivers/hid/intel-ish-hid/Kconfig +## +# CONFIG_INTEL_ISH_HID is not set + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +#. These are for HID Boot Protocol, not full HID +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set + +## +## file: drivers/hsi/Kconfig +## +# CONFIG_HSI is not set + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +# CONFIG_SENSORS_AD7314 is not set +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM9240=m +# CONFIG_SENSORS_ADT7310 is not set +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_FTSTEUTATES=m +CONFIG_SENSORS_G760A=m +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_HIH6130 is not set +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set +CONFIG_SENSORS_CORETEMP=m +# CONFIG_SENSORS_IT87 is not set +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1668=m +# CONFIG_SENSORS_MAX197 is not set +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +# CONFIG_SENSORS_MCP3021 is not set +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775=m +# CONFIG_SENSORS_SHT15 is not set +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_AMC6821=m +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_WM831X=m +CONFIG_SENSORS_WM8350=m +CONFIG_SENSORS_ATK0110=m + +## +## file: drivers/hwmon/pmbus/Kconfig +## +# CONFIG_PMBUS is not set + +## +## file: drivers/hwtracing/stm/Kconfig +## +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y +# CONFIG_I2C_SLAVE is not set + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_ISCH=m +CONFIG_I2C_NFORCE2_S4985=m +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_RK3X is not set +CONFIG_I2C_SIMTEC=m +# CONFIG_I2C_XILINX is not set +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_ROBOTFUZZ_OSIF=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m + +## +## file: drivers/i2c/muxes/Kconfig +## +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_PCA954x is not set +# CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set + +## +## file: drivers/ide/Kconfig +## +# CONFIG_IDE is not set +#. But for m68k flavours that need it +CONFIG_IDE_GD=m +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y +# CONFIG_BLK_DEV_PLATFORM is not set +# CONFIG_BLK_DEV_JMICRON is not set +# CONFIG_BLK_DEV_IT821X is not set + +## +## file: drivers/idle/Kconfig +## +CONFIG_I7300_IDLE=m + +## +## file: drivers/iio/Kconfig +## +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +# CONFIG_IIO_TRIGGER is not set + +## +## file: drivers/iio/accel/Kconfig +## +# CONFIG_BMA180 is not set +# CONFIG_BMC150_ACCEL is not set +CONFIG_HID_SENSOR_ACCEL_3D=m +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set +# CONFIG_KXCJK1013 is not set +# CONFIG_MMA8452 is not set +# CONFIG_MMA9551 is not set +# CONFIG_MMA9553 is not set +# CONFIG_MXC4005 is not set +# CONFIG_STK8312 is not set +# CONFIG_STK8BA50 is not set + +## +## file: drivers/iio/adc/Kconfig +## +# CONFIG_AD7266 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD799X is not set +# CONFIG_CC10001_ADC is not set +# CONFIG_HI8435 is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_NAU7802 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC128S052 is not set +# CONFIG_VF610_ADC is not set +CONFIG_VIPERBOARD_ADC=m + +## +## file: drivers/iio/amplifiers/Kconfig +## +# CONFIG_AD8366 is not set + +## +## file: drivers/iio/buffer/Kconfig +## +#. These will be selected by drivers that need them +# CONFIG_IIO_BUFFER_CB is not set +# CONFIG_IIO_KFIFO_BUF is not set + +## +## file: drivers/iio/chemical/Kconfig +## +# CONFIG_VZ89X is not set + +## +## file: drivers/iio/common/ssp_sensors/Kconfig +## +# CONFIG_IIO_SSP_SENSORHUB is not set + +## +## file: drivers/iio/dac/Kconfig +## +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_AD5686 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_M62332 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4922 is not set + +## +## file: drivers/iio/dummy/Kconfig +## +# CONFIG_IIO_SIMPLE_DUMMY is not set + +## +## file: drivers/iio/frequency/Kconfig +## +# CONFIG_AD9523 is not set +# CONFIG_ADF4350 is not set + +## +## file: drivers/iio/gyro/Kconfig +## +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +CONFIG_HID_SENSOR_GYRO_3D=m +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +## +## file: drivers/iio/humidity/Kconfig +## +# CONFIG_DHT11 is not set +# CONFIG_HDC100X is not set +# CONFIG_HTU21 is not set +# CONFIG_SI7005 is not set +# CONFIG_SI7020 is not set + +## +## file: drivers/iio/imu/Kconfig +## +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_KMX61 is not set + +## +## file: drivers/iio/imu/inv_mpu6050/Kconfig +## +# CONFIG_INV_MPU6050_I2C is not set +# CONFIG_INV_MPU6050_SPI is not set + +## +## file: drivers/iio/light/Kconfig +## +CONFIG_ACPI_ALS=m +# CONFIG_ADJD_S311 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_APDS9960 is not set +# CONFIG_BH1750 is not set +CONFIG_BH1780=m +# CONFIG_CM32181 is not set +# CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_ISL29125 is not set +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_PROX=m +# CONFIG_JSA1212 is not set +# CONFIG_RPR0521 is not set +# CONFIG_LTR501 is not set +# CONFIG_OPT3001 is not set +# CONFIG_PA12203001 is not set +# CONFIG_STK3310 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL4531 is not set +# CONFIG_US5182D is not set +# CONFIG_VCNL4000 is not set + +## +## file: drivers/iio/magnetometer/Kconfig +## +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_BMC150_MAGN_I2C is not set +# CONFIG_BMC150_MAGN_SPI is not set +# CONFIG_MAG3110 is not set +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +# CONFIG_MMC35240 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set + +## +## file: drivers/iio/orientation/Kconfig +## +CONFIG_HID_SENSOR_INCLINOMETER_3D=m +CONFIG_HID_SENSOR_DEVICE_ROTATION=m + +## +## file: drivers/iio/potentiometer/Kconfig +## +# CONFIG_MCP4531 is not set + +## +## file: drivers/iio/pressure/Kconfig +## +# CONFIG_BMP280 is not set +CONFIG_HID_SENSOR_PRESS=m +# CONFIG_MPL115_I2C is not set +# CONFIG_MPL115_SPI is not set +# CONFIG_MPL3115 is not set +# CONFIG_MS5611 is not set +# CONFIG_MS5637 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set + +## +## file: drivers/iio/proximity/Kconfig +## +# CONFIG_AS3935 is not set +# CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_SX9500 is not set + +## +## file: drivers/iio/temperature/Kconfig +## +# CONFIG_MLX90614 is not set +# CONFIG_TMP006 is not set +# CONFIG_TSYS01 is not set +# CONFIG_TSYS02D is not set + +## +## file: drivers/iio/trigger/Kconfig +## +# CONFIG_IIO_INTERRUPT_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set + +## +## file: drivers/infiniband/Kconfig +## +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_ON_DEMAND_PAGING=y + +## +## file: drivers/infiniband/hw/cxgb3/Kconfig +## +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set + +## +## file: drivers/infiniband/hw/cxgb4/Kconfig +## +CONFIG_INFINIBAND_CXGB4=m + +## +## file: drivers/infiniband/hw/mlx4/Kconfig +## +CONFIG_MLX4_INFINIBAND=m + +## +## file: drivers/infiniband/hw/mlx5/Kconfig +## +CONFIG_MLX5_INFINIBAND=m + +## +## file: drivers/infiniband/hw/mthca/Kconfig +## +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y + +## +## file: drivers/infiniband/hw/nes/Kconfig +## +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set + +## +## file: drivers/infiniband/hw/ocrdma/Kconfig +## +CONFIG_INFINIBAND_OCRDMA=m + +## +## file: drivers/infiniband/hw/qib/Kconfig +## +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_QIB_DCA=y + +## +## file: drivers/infiniband/sw/rdmavt/Kconfig +## +CONFIG_INFINIBAND_RDMAVT=m + +## +## file: drivers/infiniband/ulp/ipoib/Kconfig +## +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set + +## +## file: drivers/infiniband/ulp/iser/Kconfig +## +CONFIG_INFINIBAND_ISER=m + +## +## file: drivers/infiniband/ulp/isert/Kconfig +## +CONFIG_INFINIBAND_ISERT=m + +## +## file: drivers/infiniband/ulp/srp/Kconfig +## +CONFIG_INFINIBAND_SRP=m + +## +## file: drivers/infiniband/ulp/srpt/Kconfig +## +CONFIG_INFINIBAND_SRPT=m + +## +## file: drivers/input/Kconfig +## +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=m +# CONFIG_INPUT_POLLDEV is not set +CONFIG_INPUT_SPARSEKMAP=m +# CONFIG_INPUT_MATRIXKMAP is not set +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +# CONFIG_JOYSTICK_AS5011 is not set +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_WALKERA0701=m + +## +## file: drivers/input/joystick/iforce/Kconfig +## +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ADP5588=m +# CONFIG_KEYBOARD_ADP5589 is not set +# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT2160=m +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +CONFIG_KEYBOARD_LM8323=m +# CONFIG_KEYBOARD_LM8333 is not set +CONFIG_KEYBOARD_MAX7359=m +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +CONFIG_KEYBOARD_OPENCORES=m +# CONFIG_KEYBOARD_SAMSUNG is not set +CONFIG_KEYBOARD_STOWAWAY=m +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_CAP11XX is not set +# CONFIG_KEYBOARD_BCM is not set + +## +## file: drivers/input/misc/Kconfig +## +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_PCF50633_PMU=m +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +CONFIG_INPUT_WM831X_ON=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y +# CONFIG_INPUT_DRV260X_HAPTICS is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_FOCALTECH=y +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m + +## +## file: drivers/input/rmi4/Kconfig +## +# CONFIG_RMI4_CORE is not set + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO_ALTERA_PS2=m +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_OLPC_APSP is not set +# CONFIG_USERIO is not set + +## +## file: drivers/input/tablet/Kconfig +## +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_SERIAL_WACOM4=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +# CONFIG_TOUCHSCREEN_AD7879_SPI is not set +# CONFIG_TOUCHSCREEN_AR1021_I2C is not set +#. Chromebook Pixel +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_EETI=m +# CONFIG_TOUCHSCREEN_EGALAX is not set +CONFIG_TOUCHSCREEN_FUJITSU=m +# CONFIG_TOUCHSCREEN_GOODIX is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +CONFIG_TOUCHSCREEN_GUNZE=m +# CONFIG_TOUCHSCREEN_ELAN is not set +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +# CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +CONFIG_TOUCHSCREEN_MCS5000=m +# CONFIG_TOUCHSCREEN_MMS114 is not set +CONFIG_TOUCHSCREEN_MTOUCH=m +# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_HTCPEN=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_ELO=y +CONFIG_TOUCHSCREEN_USB_E2I=y +CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y +CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y +CONFIG_TOUCHSCREEN_USB_NEXIO=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +# CONFIG_TOUCHSCREEN_TSC2004 is not set +# CONFIG_TOUCHSCREEN_TSC2005 is not set +CONFIG_TOUCHSCREEN_TSC2007=m +# CONFIG_TOUCHSCREEN_ST1232 is not set +CONFIG_TOUCHSCREEN_SUR40=m +# CONFIG_TOUCHSCREEN_SX8654 is not set +CONFIG_TOUCHSCREEN_TPS6507X=m +# CONFIG_TOUCHSCREEN_ZFORCE is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set + +## +## file: drivers/iommu/Kconfig +## +CONFIG_IOMMU_SUPPORT=y + +## +## file: drivers/ipack/Kconfig +## +# CONFIG_IPACK_BUS is not set + +## +## file: drivers/isdn/Kconfig +## +# CONFIG_ISDN is not set +# CONFIG_ISDN_I4L is not set + +## +## file: drivers/isdn/capi/Kconfig +## +CONFIG_CAPI_TRACE=y + +## +## file: drivers/isdn/gigaset/Kconfig +## +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set + +## +## file: drivers/isdn/hardware/mISDN/Kconfig +## +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +#. Binds a generic PCI bridge +# CONFIG_MISDN_NETJET is not set + +## +## file: drivers/isdn/hysdn/Kconfig +## +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y + +## +## file: drivers/isdn/mISDN/Kconfig +## +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +## +## file: drivers/leds/Kconfig +## +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +CONFIG_LEDS_NET48XX=m +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set +CONFIG_LEDS_LP3944=m +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP8860 is not set +CONFIG_LEDS_PCA955X=m +# CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_MC13783=m +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_OT200 is not set +# CONFIG_LEDS_BLINKM is not set + +## +## file: drivers/leds/trigger/Kconfig +## +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m + +## +## file: drivers/mailbox/Kconfig +## +# CONFIG_MAILBOX is not set + +## +## file: drivers/mcb/Kconfig +## +# CONFIG_MCB is not set + +## +## file: drivers/md/Kconfig +## +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +# CONFIG_MD_CLUSTER is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_SMQ=m +CONFIG_DM_CACHE_CLEANER=y +CONFIG_DM_ERA=m +CONFIG_DM_MIRROR=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_RAID=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m +CONFIG_DM_SWITCH=m +CONFIG_DM_LOG_WRITES=m + +## +## file: drivers/md/bcache/Kconfig +## +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set + +## +## file: drivers/media/Kconfig +## +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +# CONFIG_VIDEO_V4L2_SUBDEV_API is not set +CONFIG_DVB_NET=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y + +## +## file: drivers/media/common/siano/Kconfig +## +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set + +## +## file: drivers/media/dvb-core/Kconfig +## +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y + +## +## file: drivers/media/dvb-frontends/Kconfig +## +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S921=m +CONFIG_DVB_PLL=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_DUMMY_FE=m + +## +## file: drivers/media/firewire/Kconfig +## +CONFIG_DVB_FIREDTV=m + +## +## file: drivers/media/i2c/Kconfig +## +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_SR030PC30=m +CONFIG_VIDEO_NOON010PC30=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m + +## +## file: drivers/media/i2c/cx25840/Kconfig +## +CONFIG_VIDEO_CX25840=m + +## +## file: drivers/media/i2c/soc_camera/Kconfig +## +# CONFIG_SOC_CAMERA_IMX074 is not set +# CONFIG_SOC_CAMERA_MT9M001 is not set +# CONFIG_SOC_CAMERA_MT9M111 is not set +# CONFIG_SOC_CAMERA_MT9T031 is not set +# CONFIG_SOC_CAMERA_MT9T112 is not set +# CONFIG_SOC_CAMERA_MT9V022 is not set +# CONFIG_SOC_CAMERA_OV2640 is not set +# CONFIG_SOC_CAMERA_OV6650 is not set +# CONFIG_SOC_CAMERA_OV772X is not set +# CONFIG_SOC_CAMERA_OV9640 is not set +# CONFIG_SOC_CAMERA_OV9740 is not set +# CONFIG_SOC_CAMERA_RJ54N1 is not set +# CONFIG_SOC_CAMERA_TW9910 is not set + +## +## file: drivers/media/mmc/siano/Kconfig +## +CONFIG_SMS_SDIO_DRV=m + +## +## file: drivers/media/pci/Kconfig +## +CONFIG_MEDIA_PCI_SUPPORT=y + +## +## file: drivers/media/pci/b2c2/Kconfig +## +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set + +## +## file: drivers/media/pci/bt8xx/Kconfig +## +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m + +## +## file: drivers/media/pci/cx18/Kconfig +## +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m + +## +## file: drivers/media/pci/cx23885/Kconfig +## +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m + +## +## file: drivers/media/pci/cx25821/Kconfig +## +# CONFIG_VIDEO_CX25821 is not set + +## +## file: drivers/media/pci/cx88/Kconfig +## +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_ENABLE_VP3054=y + +## +## file: drivers/media/pci/ddbridge/Kconfig +## +CONFIG_DVB_DDBRIDGE=m + +## +## file: drivers/media/pci/dm1105/Kconfig +## +CONFIG_DVB_DM1105=m + +## +## file: drivers/media/pci/dt3155/Kconfig +## +CONFIG_VIDEO_DT3155=m + +## +## file: drivers/media/pci/ivtv/Kconfig +## +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m + +## +## file: drivers/media/pci/mantis/Kconfig +## +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m + +## +## file: drivers/media/pci/meye/Kconfig +## +CONFIG_VIDEO_MEYE=m + +## +## file: drivers/media/pci/netup_unidvb/Kconfig +## +CONFIG_DVB_NETUP_UNIDVB=m + +## +## file: drivers/media/pci/ngene/Kconfig +## +CONFIG_DVB_NGENE=m + +## +## file: drivers/media/pci/pluto2/Kconfig +## +CONFIG_DVB_PLUTO2=m + +## +## file: drivers/media/pci/pt1/Kconfig +## +CONFIG_DVB_PT1=m + +## +## file: drivers/media/pci/pt3/Kconfig +## +CONFIG_DVB_PT3=m + +## +## file: drivers/media/pci/saa7134/Kconfig +## +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m + +## +## file: drivers/media/pci/saa7146/Kconfig +## +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +## +## file: drivers/media/pci/saa7164/Kconfig +## +CONFIG_VIDEO_SAA7164=m + +## +## file: drivers/media/pci/smipcie/Kconfig +## +CONFIG_DVB_SMIPCIE=m + +## +## file: drivers/media/pci/solo6x10/Kconfig +## +CONFIG_VIDEO_SOLO6X10=m + +## +## file: drivers/media/pci/ttpci/Kconfig +## +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +## +## file: drivers/media/pci/tw68/Kconfig +## +CONFIG_VIDEO_TW68=m + +## +## file: drivers/media/pci/zoran/Kconfig +## +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m + +## +## file: drivers/media/platform/Kconfig +## +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_SH_VEU is not set +CONFIG_V4L_TEST_DRIVERS=y +# CONFIG_VIDEO_VIM2M is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set + +## +## file: drivers/media/platform/marvell-ccic/Kconfig +## +CONFIG_VIDEO_CAFE_CCIC=m + +## +## file: drivers/media/platform/soc_camera/Kconfig +## +# CONFIG_SOC_CAMERA is not set +# CONFIG_SOC_CAMERA_PLATFORM is not set +# CONFIG_VIDEO_SH_MOBILE_CEU is not set + +## +## file: drivers/media/platform/vivid/Kconfig +## +CONFIG_VIDEO_VIVID=m +CONFIG_VIDEO_VIVID_MAX_DEVS=64 + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_SI470X=y +# CONFIG_RADIO_SI4713 is not set +CONFIG_USB_MR800=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_USB_KEENE=m +CONFIG_USB_RAREMONO=m +CONFIG_USB_MA901=m +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +## +## file: drivers/media/radio/si470x/Kconfig +## +CONFIG_USB_SI470X=m +# CONFIG_I2C_SI470X is not set + +## +## file: drivers/media/radio/si4713/Kconfig +## +# CONFIG_I2C_SI4713 is not set + +## +## file: drivers/media/radio/wl128x/Kconfig +## +# CONFIG_RADIO_WL128X is not set + +## +## file: drivers/media/rc/Kconfig +## +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SHARP_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_XMP_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +# CONFIG_IR_HIX5HD2 is not set +CONFIG_IR_IMON=m +CONFIG_IR_MCEUSB=m +# CONFIG_IR_NUVOTON is not set +CONFIG_IR_REDRAT3=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGORPLUGUSB=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +# CONFIG_IR_GPIO_CIR is not set + +## +## file: drivers/media/rc/img-ir/Kconfig +## +# CONFIG_IR_IMG is not set + +## +## file: drivers/media/rc/keymaps/Kconfig +## +CONFIG_RC_MAP=m + +## +## file: drivers/media/tuners/Kconfig +## +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TEA5761=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m + +## +## file: drivers/media/usb/Kconfig +## +CONFIG_MEDIA_USB_SUPPORT=y + +## +## file: drivers/media/usb/airspy/Kconfig +## +CONFIG_USB_AIRSPY=m + +## +## file: drivers/media/usb/as102/Kconfig +## +CONFIG_DVB_AS102=m + +## +## file: drivers/media/usb/au0828/Kconfig +## +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_AU0828_RC=y + +## +## file: drivers/media/usb/b2c2/Kconfig +## +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + +## +## file: drivers/media/usb/cpia2/Kconfig +## +CONFIG_VIDEO_CPIA2=m + +## +## file: drivers/media/usb/cx231xx/Kconfig +## +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m + +## +## file: drivers/media/usb/dvb-usb/Kconfig +## +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m + +## +## file: drivers/media/usb/dvb-usb-v2/Kconfig +## +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m + +## +## file: drivers/media/usb/em28xx/Kconfig +## +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_V4L2=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y + +## +## file: drivers/media/usb/go7007/Kconfig +## +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_LOADER=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m + +## +## file: drivers/media/usb/gspca/Kconfig +## +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_DTCS033=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TOUPTEK=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m + +## +## file: drivers/media/usb/gspca/gl860/Kconfig +## +CONFIG_USB_GL860=m + +## +## file: drivers/media/usb/gspca/m5602/Kconfig +## +CONFIG_USB_M5602=m + +## +## file: drivers/media/usb/gspca/stv06xx/Kconfig +## +CONFIG_USB_STV06XX=m + +## +## file: drivers/media/usb/hackrf/Kconfig +## +CONFIG_USB_HACKRF=m + +## +## file: drivers/media/usb/hdpvr/Kconfig +## +CONFIG_VIDEO_HDPVR=m + +## +## file: drivers/media/usb/msi2500/Kconfig +## +CONFIG_USB_MSI2500=m + +## +## file: drivers/media/usb/pvrusb2/Kconfig +## +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set + +## +## file: drivers/media/usb/pwc/Kconfig +## +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y + +## +## file: drivers/media/usb/s2255/Kconfig +## +CONFIG_USB_S2255=m + +## +## file: drivers/media/usb/siano/Kconfig +## +CONFIG_SMS_USB_DRV=m + +## +## file: drivers/media/usb/stk1160/Kconfig +## +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_STK1160_AC97=y + +## +## file: drivers/media/usb/stkwebcam/Kconfig +## +CONFIG_USB_STKWEBCAM=m + +## +## file: drivers/media/usb/ttusb-budget/Kconfig +## +CONFIG_DVB_TTUSB_BUDGET=m + +## +## file: drivers/media/usb/ttusb-dec/Kconfig +## +CONFIG_DVB_TTUSB_DEC=m + +## +## file: drivers/media/usb/usbtv/Kconfig +## +CONFIG_VIDEO_USBTV=m + +## +## file: drivers/media/usb/usbvision/Kconfig +## +CONFIG_VIDEO_USBVISION=m + +## +## file: drivers/media/usb/uvc/Kconfig +## +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y + +## +## file: drivers/media/usb/zr364xx/Kconfig +## +CONFIG_USB_ZR364XX=m + +## +## file: drivers/media/v4l2-core/Kconfig +## +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set + +## +## file: drivers/memory/Kconfig +## +CONFIG_MEMORY=y + +## +## file: drivers/memstick/Kconfig +## +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +## +## file: drivers/memstick/core/Kconfig +## +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m +# CONFIG_MS_BLOCK is not set + +## +## file: drivers/memstick/host/Kconfig +## +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m +CONFIG_MEMSTICK_REALTEK_USB=m + +## +## file: drivers/message/fusion/Kconfig +## +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +## +## file: drivers/mfd/Kconfig +## +# CONFIG_MFD_CS5535 is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +CONFIG_LPC_SCH=m +# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +CONFIG_MFD_VIPERBOARD=m +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_RT5033 is not set +CONFIG_MFD_RTSX_USB=m +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK808 is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_AB3100_CORE is not set +CONFIG_AB3100_OTP=m +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set + +## +## file: drivers/misc/Kconfig +## +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +# CONFIG_DUMMY_IRQ is not set +# CONFIG_INTEL_MID_PTI is not set +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +# CONFIG_ATMEL_SSC is not set +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SGI_XP=m +CONFIG_CS5535_CLOCK_EVENT_SRC=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_TI_DAC7512=m +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_PANEL is not set + +## +## file: drivers/misc/altera-stapl/Kconfig +## +# CONFIG_ALTERA_STAPL is not set + +## +## file: drivers/misc/c2port/Kconfig +## +CONFIG_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m + +## +## file: drivers/misc/cb710/Kconfig +## +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set + +## +## file: drivers/misc/echo/Kconfig +## +# CONFIG_ECHO is not set + +## +## file: drivers/misc/eeprom/Kconfig +## +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +# CONFIG_EEPROM_93XX46 is not set + +## +## file: drivers/misc/genwqe/Kconfig +## +# CONFIG_GENWQE is not set + +## +## file: drivers/misc/lis3lv02d/Kconfig +## +CONFIG_SENSORS_LIS3_I2C=m + +## +## file: drivers/misc/ti-st/Kconfig +## +# CONFIG_TI_ST is not set + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK_MINORS=256 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +## +## file: drivers/mmc/host/Kconfig +## +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=y +# CONFIG_MMC_SDHCI_PLTFM is not set +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +# CONFIG_MMC_SPI is not set +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_CB710=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +# CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_REALTEK_PCI=m +CONFIG_MMC_REALTEK_USB=m +CONFIG_MMC_TOSHIBA_PCI=m +# CONFIG_MMC_MTK is not set + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=m +# CONFIG_MTD_TESTS is not set +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +# CONFIG_SM_FTL is not set +CONFIG_MTD_OOPS=m +CONFIG_MTD_SWAP=m +# CONFIG_MTD_PARTITIONED_MASTER is not set + +## +## file: drivers/mtd/devices/Kconfig +## +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DATAFLASH_OTP is not set +CONFIG_MTD_M25P80=m +CONFIG_MTD_SST25L=m +# CONFIG_MTD_DOCG3 is not set + +## +## file: drivers/mtd/lpddr/Kconfig +## +CONFIG_MTD_LPDDR=m + +## +## file: drivers/mtd/maps/Kconfig +## +# CONFIG_MTD_PHYSMAP_OF is not set +# CONFIG_MTD_ESB2ROM is not set +# CONFIG_MTD_CK804XROM is not set +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set +# CONFIG_MTD_GPIO_ADDR is not set +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m +# CONFIG_MTD_LATCH_ADDR is not set + +## +## file: drivers/mtd/nand/Kconfig +## +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_ECC_BCH=y +# CONFIG_MTD_NAND_DENALI_PCI is not set +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_RICOH=m +# CONFIG_MTD_NAND_DOCG4 is not set +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_HISI504 is not set +# CONFIG_MTD_NAND_MTK is not set + +## +## file: drivers/mtd/onenand/Kconfig +## +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_GENERIC is not set +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y + +## +## file: drivers/mtd/spi-nor/Kconfig +## +CONFIG_MTD_SPI_NOR=m +# CONFIG_MTD_MT81xx_NOR is not set +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y + +## +## file: drivers/mtd/ubi/Kconfig +## +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_MTD_UBI_BLOCK=y + +## +## file: drivers/net/Kconfig +## +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_EQUALIZER=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_IPVLAN=m +CONFIG_VXLAN=m +CONFIG_GENEVE=m +CONFIG_GTP=m +CONFIG_MACSEC=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_TUN=m +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=m +CONFIG_VIRTIO_NET=m +CONFIG_NLMON=m +CONFIG_NET_VRF=m +CONFIG_XEN_NETDEV_FRONTEND=m +CONFIG_XEN_NETDEV_BACKEND=m +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set + +## +## file: drivers/net/appletalk/Kconfig +## +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=y +CONFIG_LTPC=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y + +## +## file: drivers/net/can/Kconfig +## +CONFIG_CAN_VCAN=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_DEV=m +CONFIG_CAN_CALC_BITTIMING=y +# CONFIG_CAN_LEDS is not set +# CONFIG_CAN_GRCAN is not set +# CONFIG_CAN_DEBUG_DEVICES is not set + +## +## file: drivers/net/can/c_can/Kconfig +## +# CONFIG_CAN_C_CAN is not set + +## +## file: drivers/net/can/cc770/Kconfig +## +# CONFIG_CAN_CC770 is not set + +## +## file: drivers/net/can/ifi_canfd/Kconfig +## +# CONFIG_CAN_IFI_CANFD is not set + +## +## file: drivers/net/can/m_can/Kconfig +## +# CONFIG_CAN_M_CAN is not set + +## +## file: drivers/net/can/sja1000/Kconfig +## +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +# CONFIG_CAN_SJA1000_PLATFORM is not set +CONFIG_CAN_EMS_PCMCIA=m +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_PEAK_PCMCIA=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_TSCAN1=m + +## +## file: drivers/net/can/softing/Kconfig +## +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m + +## +## file: drivers/net/can/spi/Kconfig +## +# CONFIG_CAN_MCP251X is not set + +## +## file: drivers/net/can/usb/Kconfig +## +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB2=m +CONFIG_CAN_GS_USB=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_8DEV_USB=m + +## +## file: drivers/net/dsa/Kconfig +## +# CONFIG_NET_DSA_MV88E6060 is not set +# CONFIG_NET_DSA_BCM_SF2 is not set + +## +## file: drivers/net/dsa/mv88e6xxx/Kconfig +## +# CONFIG_NET_DSA_MV88E6XXX is not set + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_ETHERNET=y +# CONFIG_DNET is not set +CONFIG_JME=m +# CONFIG_ETHOC is not set + +## +## file: drivers/net/ethernet/agere/Kconfig +## +CONFIG_NET_VENDOR_AGERE=y +CONFIG_ET131X=m + +## +## file: drivers/net/ethernet/alteon/Kconfig +## +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set + +## +## file: drivers/net/ethernet/amazon/Kconfig +## +CONFIG_NET_VENDOR_AMAZON=y +CONFIG_ENA_ETHERNET=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_NET_VENDOR_AMD=y +CONFIG_PCNET32=m + +## +## file: drivers/net/ethernet/apm/xgene/Kconfig +## +# CONFIG_NET_XGENE is not set + +## +## file: drivers/net/ethernet/arc/Kconfig +## +# CONFIG_NET_VENDOR_ARC is not set + +## +## file: drivers/net/ethernet/atheros/Kconfig +## +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m + +## +## file: drivers/net/ethernet/aurora/Kconfig +## +# CONFIG_NET_VENDOR_AURORA is not set + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_BCMGENET is not set +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +# CONFIG_SYSTEMPORT is not set +CONFIG_BNXT=m +CONFIG_BNXT_SRIOV=y + +## +## file: drivers/net/ethernet/brocade/Kconfig +## +CONFIG_NET_VENDOR_BROCADE=y + +## +## file: drivers/net/ethernet/brocade/bna/Kconfig +## +CONFIG_BNA=m + +## +## file: drivers/net/ethernet/cadence/Kconfig +## +CONFIG_NET_CADENCE=y +# CONFIG_MACB is not set + +## +## file: drivers/net/ethernet/calxeda/Kconfig +## +# CONFIG_NET_CALXEDA_XGMAC is not set + +## +## file: drivers/net/ethernet/cavium/Kconfig +## +CONFIG_NET_VENDOR_CAVIUM=y +# CONFIG_THUNDER_NIC_PF is not set +# CONFIG_THUNDER_NIC_VF is not set +# CONFIG_THUNDER_NIC_BGX is not set +# CONFIG_THUNDER_NIC_RGX is not set +CONFIG_LIQUIDIO=m + +## +## file: drivers/net/ethernet/chelsio/Kconfig +## +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4_DCB=y +CONFIG_CHELSIO_T4_FCOE=y +CONFIG_CHELSIO_T4VF=m + +## +## file: drivers/net/ethernet/cirrus/Kconfig +## +# CONFIG_CS89x0_PLATFORM is not set + +## +## file: drivers/net/ethernet/cisco/Kconfig +## +CONFIG_NET_VENDOR_CISCO=y + +## +## file: drivers/net/ethernet/cisco/enic/Kconfig +## +CONFIG_ENIC=m + +## +## file: drivers/net/ethernet/dec/Kconfig +## +CONFIG_NET_VENDOR_DEC=y + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_DE2104X_DSL=0 +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +# CONFIG_DE4X5 is not set +CONFIG_ULI526X=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DL2K=m + +## +## file: drivers/net/ethernet/emulex/Kconfig +## +CONFIG_NET_VENDOR_EMULEX=y + +## +## file: drivers/net/ethernet/emulex/benet/Kconfig +## +CONFIG_BE2NET=m +CONFIG_BE2NET_HWMON=y + +## +## file: drivers/net/ethernet/ezchip/Kconfig +## +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set + +## +## file: drivers/net/ethernet/i825xx/Kconfig +## +CONFIG_NET_VENDOR_I825XX=y + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_HWMON=y +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y +CONFIG_IXGBE_DCA=y +CONFIG_IXGBE_DCB=y +CONFIG_IXGBEVF=m +CONFIG_I40E=m +CONFIG_I40E_DCB=y +CONFIG_I40E_FCOE=y +CONFIG_I40EVF=m + +## +## file: drivers/net/ethernet/marvell/Kconfig +## +CONFIG_NET_VENDOR_MARVELL=y +# CONFIG_MVMDIO is not set +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set + +## +## file: drivers/net/ethernet/mellanox/Kconfig +## +CONFIG_NET_VENDOR_MELLANOX=y + +## +## file: drivers/net/ethernet/mellanox/mlx4/Kconfig +## +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +CONFIG_MLX4_DEBUG=y + +## +## file: drivers/net/ethernet/mellanox/mlx5/core/Kconfig +## +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y + +## +## file: drivers/net/ethernet/mellanox/mlxsw/Kconfig +## +# CONFIG_MLXSW_CORE is not set + +## +## file: drivers/net/ethernet/micrel/Kconfig +## +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851 is not set +# CONFIG_KS8851_MLL is not set +CONFIG_KSZ884X_PCI=m + +## +## file: drivers/net/ethernet/microchip/Kconfig +## +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_ENC28J60 is not set +# CONFIG_ENC28J60_WRITEVERIFY is not set +# CONFIG_ENCX24J600 is not set + +## +## file: drivers/net/ethernet/myricom/Kconfig +## +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NS83820=m + +## +## file: drivers/net/ethernet/neterion/Kconfig +## +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set + +## +## file: drivers/net/ethernet/oki-semi/Kconfig +## +CONFIG_NET_VENDOR_OKI=y + +## +## file: drivers/net/ethernet/packetengines/Kconfig +## +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m + +## +## file: drivers/net/ethernet/qlogic/Kconfig +## +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLCNIC_DCB=y +CONFIG_QLCNIC_HWMON=y +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_QED=m +CONFIG_QEDE=m + +## +## file: drivers/net/ethernet/qualcomm/Kconfig +## +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCA7000 is not set + +## +## file: drivers/net/ethernet/rdc/Kconfig +## +CONFIG_NET_VENDOR_RDC=y +CONFIG_R6040=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m + +## +## file: drivers/net/ethernet/renesas/Kconfig +## +CONFIG_NET_VENDOR_RENESAS=y +# CONFIG_SH_ETH is not set + +## +## file: drivers/net/ethernet/rocker/Kconfig +## +CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_ROCKER is not set + +## +## file: drivers/net/ethernet/samsung/Kconfig +## +CONFIG_NET_VENDOR_SAMSUNG=y +# CONFIG_SXGBE_ETH is not set + +## +## file: drivers/net/ethernet/seeq/Kconfig +## +# CONFIG_NET_VENDOR_SEEQ is not set + +## +## file: drivers/net/ethernet/sfc/Kconfig +## +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y +CONFIG_SFC_MCDI_LOGGING=y + +## +## file: drivers/net/ethernet/silan/Kconfig +## +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS190=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_NET_VENDOR_SMSC=y +# CONFIG_SMSC911X is not set +CONFIG_SMSC9420=m + +## +## file: drivers/net/ethernet/stmicro/Kconfig +## +CONFIG_NET_VENDOR_STMICRO=y + +## +## file: drivers/net/ethernet/stmicro/stmmac/Kconfig +## +# CONFIG_STMMAC_ETH is not set + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_NET_VENDOR_SUN=y +CONFIG_CASSINI=m +CONFIG_NIU=m + +## +## file: drivers/net/ethernet/synopsys/Kconfig +## +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set + +## +## file: drivers/net/ethernet/tehuti/Kconfig +## +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m + +## +## file: drivers/net/ethernet/ti/Kconfig +## +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_CPSW_ALE is not set +CONFIG_TLAN=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_NET_VENDOR_VIA=y +CONFIG_VIA_VELOCITY=m + +## +## file: drivers/net/ethernet/wiznet/Kconfig +## +CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set + +## +## file: drivers/net/hamradio/Kconfig +## +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m + +## +## file: drivers/net/ieee802154/Kconfig +## +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKELB=m +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_MRF24J40=m +CONFIG_IEEE802154_CC2520=m +CONFIG_IEEE802154_ATUSB=m +CONFIG_IEEE802154_ADF7242=m + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m +CONFIG_MCS_FIR=m + +## +## file: drivers/net/phy/Kconfig +## +CONFIG_PHYLIB=m +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_MDIO_GPIO is not set +# CONFIG_MDIO_OCTEON is not set +CONFIG_AMD_PHY=m +CONFIG_AQUANTIA_PHY=m +CONFIG_AT803X_PHY=m +# CONFIG_BCM63XX_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +CONFIG_BCM87XX_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_DP83848_PHY=m +CONFIG_DP83867_PHY=m +#. Must only be enabled for specific flavours +# CONFIG_FIXED_PHY is not set +CONFIG_ICPLUS_PHY=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LXT_PHY=m +CONFIG_MARVELL_PHY=m +CONFIG_MICREL_PHY=m +CONFIG_MICROCHIP_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_STE10XP=m +CONFIG_TERANETICS_PHY=m +CONFIG_VITESSE_PHY=m +# CONFIG_MICREL_KS8995MA is not set + +## +## file: drivers/net/ppp/Kconfig +## +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m + +## +## file: drivers/net/slip/Kconfig +## +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +## +## file: drivers/net/team/Kconfig +## +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m + +## +## file: drivers/net/usb/Kconfig +## +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m + +## +## file: drivers/net/wan/Kconfig +## +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +# CONFIG_HDLC_X25 is not set +# CONFIG_PC300TOO is not set + +## +## file: drivers/net/wimax/i2400m/Kconfig +## +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 + +## +## file: drivers/net/wireless/Kconfig +## +CONFIG_WLAN=y +CONFIG_MAC80211_HWSIM=m +CONFIG_USB_NET_RNDIS_WLAN=m + +## +## file: drivers/net/wireless/admtek/Kconfig +## +CONFIG_ADM8211=m + +## +## file: drivers/net/wireless/ath/Kconfig +## +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set + +## +## file: drivers/net/wireless/ath/ar5523/Kconfig +## +CONFIG_AR5523=m + +## +## file: drivers/net/wireless/ath/ath10k/Kconfig +## +CONFIG_ATH10K=m +CONFIG_ATH10K_PCI=m +# CONFIG_ATH10K_DEBUG is not set +# CONFIG_ATH10K_DEBUGFS is not set +# CONFIG_ATH10K_TRACING is not set + +## +## file: drivers/net/wireless/ath/ath5k/Kconfig +## +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +# CONFIG_ATH5K_TRACER is not set + +## +## file: drivers/net/wireless/ath/ath6kl/Kconfig +## +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +# CONFIG_ATH6KL_TRACING is not set + +## +## file: drivers/net/wireless/ath/ath9k/Kconfig +## +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set +CONFIG_ATH9K_RFKILL=y +CONFIG_ATH9K_PCOEM=y +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set + +## +## file: drivers/net/wireless/ath/carl9170/Kconfig +## +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_CARL9170_HWRNG is not set + +## +## file: drivers/net/wireless/ath/wcn36xx/Kconfig +## +# CONFIG_WCN36XX is not set + +## +## file: drivers/net/wireless/ath/wil6210/Kconfig +## +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_WIL6210_TRACING=y + +## +## file: drivers/net/wireless/atmel/Kconfig +## +CONFIG_AT76C50X_USB=m + +## +## file: drivers/net/wireless/broadcom/b43/Kconfig +## +CONFIG_B43=m +CONFIG_B43_SDIO=y +CONFIG_B43_PHY_G=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_HT=y +# CONFIG_B43_DEBUG is not set + +## +## file: drivers/net/wireless/broadcom/b43legacy/Kconfig +## +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_DEBUG=y +## choice: Broadcom 43xx-legacy data transfer mode +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +## end choice + +## +## file: drivers/net/wireless/broadcom/brcm80211/Kconfig +## +CONFIG_BRCMSMAC=m +CONFIG_BRCMFMAC=m +# CONFIG_BRCMFMAC_SDIO is not set +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMFMAC_PCIE=y +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set + +## +## file: drivers/net/wireless/cisco/Kconfig +## +CONFIG_AIRO=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +# CONFIG_LIBIPW_DEBUG is not set + +## +## file: drivers/net/wireless/intel/iwlegacy/Kconfig +## +CONFIG_IWL4965=m +CONFIG_IWL3945=m +# CONFIG_IWLEGACY_DEBUG is not set + +## +## file: drivers/net/wireless/intel/iwlwifi/Kconfig +## +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +# CONFIG_IWLWIFI_BCAST_FILTERING is not set +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set + +## +## file: drivers/net/wireless/intersil/Kconfig +## +# CONFIG_PRISM54 is not set + +## +## file: drivers/net/wireless/intersil/hostap/Kconfig +## +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +# CONFIG_HERMES_PRISM is not set +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_NORTEL_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m + +## +## file: drivers/net/wireless/intersil/p54/Kconfig +## +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +# CONFIG_P54_SPI is not set +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set + +## +## file: drivers/net/wireless/marvell/Kconfig +## +CONFIG_MWL8K=m + +## +## file: drivers/net/wireless/marvell/libertas/Kconfig +## +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_SPI is not set +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y + +## +## file: drivers/net/wireless/marvell/libertas_tf/Kconfig +## +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m + +## +## file: drivers/net/wireless/mediatek/Kconfig +## +CONFIG_WLAN_VENDOR_MEDIATEK=y + +## +## file: drivers/net/wireless/mediatek/mt7601u/Kconfig +## +CONFIG_MT7601U=m + +## +## file: drivers/net/wireless/ralink/rt2x00/Kconfig +## +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RT2800USB_UNKNOWN is not set +# CONFIG_RT2X00_DEBUG is not set + +## +## file: drivers/net/wireless/realtek/rtl818x/Kconfig +## +CONFIG_RTL8180=m +CONFIG_RTL8187=m + +## +## file: drivers/net/wireless/realtek/rtl8xxxu/Kconfig +## +CONFIG_RTL8XXXU=m +# CONFIG_RTL8XXXU_UNTESTED is not set + +## +## file: drivers/net/wireless/realtek/rtlwifi/Kconfig +## +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8723BE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192EE=m +CONFIG_RTL8821AE=m +CONFIG_RTL8192CU=m +# CONFIG_RTLWIFI_DEBUG is not set + +## +## file: drivers/net/wireless/rsi/Kconfig +## +CONFIG_RSI_91X=m +CONFIG_RSI_DEBUGFS=y +# CONFIG_RSI_SDIO is not set +CONFIG_RSI_USB=m + +## +## file: drivers/net/wireless/st/cw1200/Kconfig +## +# CONFIG_CW1200 is not set + +## +## file: drivers/net/wireless/ti/Kconfig +## +# CONFIG_WLAN_VENDOR_TI is not set + +## +## file: drivers/net/wireless/zydas/zd1211rw/Kconfig +## +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set + +## +## file: drivers/nfc/Kconfig +## +# CONFIG_NFC_TRF7970A is not set +CONFIG_NFC_SIM=m +CONFIG_NFC_PORT100=m + +## +## file: drivers/nfc/microread/Kconfig +## +# CONFIG_NFC_MICROREAD_I2C is not set +# CONFIG_NFC_MICROREAD_MEI is not set + +## +## file: drivers/nfc/pn533/Kconfig +## +CONFIG_NFC_PN533_USB=m +# CONFIG_NFC_PN533_I2C is not set + +## +## file: drivers/nfc/st21nfca/Kconfig +## +# CONFIG_NFC_ST21NFCA_I2C is not set + +## +## file: drivers/nfc/st95hf/Kconfig +## +# CONFIG_NFC_ST95HF is not set + +## +## file: drivers/ntb/Kconfig +## +# CONFIG_NTB is not set + +## +## file: drivers/nvme/host/Kconfig +## +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_NVME_SCSI is not set +CONFIG_NVME_RDMA=m + +## +## file: drivers/nvme/target/Kconfig +## +CONFIG_NVME_TARGET=m +# CONFIG_NVME_TARGET_LOOP is not set +CONFIG_NVME_TARGET_RDMA=m + +## +## file: drivers/of/Kconfig +## +# CONFIG_OF is not set +# CONFIG_OF_UNITTEST is not set +# CONFIG_OF_OVERLAY is not set + +## +## file: drivers/parport/Kconfig +## +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_AX88796 is not set +CONFIG_PARPORT_1284=y + +## +## file: drivers/pci/Kconfig +## +CONFIG_PCI_MSI=y +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_STUB=m +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set + +## +## file: drivers/pci/host/Kconfig +## +# CONFIG_PCIE_DW_PLAT is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +CONFIG_HOTPLUG_PCI_CPCI=y + +## +## file: drivers/pci/pcie/Kconfig +## +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIE_DPC=y + +## +## file: drivers/pci/pcie/aer/Kconfig +## +CONFIG_PCIEAER=y +# CONFIG_PCIE_ECRC is not set + +## +## file: drivers/pci/pcie/aer/Kconfig.debug +## +CONFIG_PCIEAER_INJECT=m + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y + +## +## file: drivers/phy/Kconfig +## +# CONFIG_GENERIC_PHY is not set +# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_OMAP_CONTROL_PHY is not set +# CONFIG_OMAP_USB2 is not set +# CONFIG_TWL4030_USB is not set +# CONFIG_PHY_EXYNOS_DP_VIDEO is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set + +## +## file: drivers/pinctrl/Kconfig +## +# CONFIG_PINMUX is not set +# CONFIG_PINCONF is not set +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_SINGLE is not set + +## +## file: drivers/pinctrl/intel/Kconfig +## +# CONFIG_PINCTRL_BAYTRAIL is not set +# CONFIG_PINCTRL_CHERRYVIEW is not set +# CONFIG_PINCTRL_BROXTON is not set +# CONFIG_PINCTRL_SUNRISEPOINT is not set + +## +## file: drivers/platform/x86/Kconfig +## +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +# CONFIG_SAMSUNG_LAPTOP is not set + +## +## file: drivers/pnp/Kconfig +## +# CONFIG_PNP_DEBUG_MESSAGES is not set + +## +## file: drivers/power/avs/Kconfig +## +# CONFIG_POWER_AVS is not set + +## +## file: drivers/power/reset/Kconfig +## +# CONFIG_POWER_RESET is not set + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set +CONFIG_WM831X_POWER=m +CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +CONFIG_CHARGER_PCF50633=m +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_CHARGER_RT9455 is not set + +## +## file: drivers/pps/Kconfig +## +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set +# CONFIG_NTP_PPS is not set + +## +## file: drivers/pps/clients/Kconfig +## +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PPS_CLIENT_GPIO is not set + +## +## file: drivers/ptp/Kconfig +## +CONFIG_PTP_1588_CLOCK=m +CONFIG_PTP_1588_CLOCK_GIANFAR=m +CONFIG_PTP_1588_CLOCK_IXP46X=m + +## +## file: drivers/pwm/Kconfig +## +# CONFIG_PWM is not set + +## +## file: drivers/regulator/Kconfig +## +# CONFIG_REGULATOR is not set + +## +## file: drivers/remoteproc/Kconfig +## +# CONFIG_STE_MODEM_RPROC is not set + +## +## file: drivers/reset/Kconfig +## +# CONFIG_RESET_CONTROLLER is not set + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_M41T80_WDT is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +CONFIG_RTC_DRV_CMOS=m +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_AB3100=m +# CONFIG_RTC_DRV_ZYNQMP is not set +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_MOXART is not set +# CONFIG_RTC_DRV_XGENE is not set +# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_XEN_SCSI_FRONTEND=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_SCSI_SNIC=m +# CONFIG_SCSI_SNIC_DEBUG_FS is not set +# CONFIG_SCSI_PPA is not set +# CONFIG_SCSI_IMM is not set +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_WD719X=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic79xx +## +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx +## +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y + +## +## file: drivers/scsi/aic94xx/Kconfig +## +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set + +## +## file: drivers/scsi/be2iscsi/Kconfig +## +CONFIG_BE2ISCSI=m + +## +## file: drivers/scsi/bnx2fc/Kconfig +## +CONFIG_SCSI_BNX2X_FCOE=m + +## +## file: drivers/scsi/bnx2i/Kconfig +## +CONFIG_SCSI_BNX2_ISCSI=m + +## +## file: drivers/scsi/csiostor/Kconfig +## +CONFIG_SCSI_CHELSIO_FCOE=m + +## +## file: drivers/scsi/cxgbi/cxgb3i/Kconfig +## +CONFIG_SCSI_CXGB3_ISCSI=m + +## +## file: drivers/scsi/cxgbi/cxgb4i/Kconfig +## +CONFIG_SCSI_CXGB4_ISCSI=m + +## +## file: drivers/scsi/device_handler/Kconfig +## +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m + +## +## file: drivers/scsi/esas2r/Kconfig +## +CONFIG_SCSI_ESAS2R=m + +## +## file: drivers/scsi/libsas/Kconfig +## +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_SAS=m + +## +## file: drivers/scsi/mpt3sas/Kconfig +## +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MPT2SAS=m + +## +## file: drivers/scsi/mvsas/Kconfig +## +CONFIG_SCSI_MVSAS=m +# CONFIG_SCSI_MVSAS_DEBUG is not set +# CONFIG_SCSI_MVSAS_TASKLET is not set + +## +## file: drivers/scsi/osd/Kconfig +## +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_SCSI_LOWLEVEL_PCMCIA=y + +## +## file: drivers/scsi/qla2xxx/Kconfig +## +CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m +# CONFIG_TCM_QLA2XXX_DEBUG is not set + +## +## file: drivers/scsi/qla4xxx/Kconfig +## +CONFIG_SCSI_QLA_ISCSI=m + +## +## file: drivers/scsi/smartpqi/Kconfig +## +CONFIG_SCSI_SMARTPQI=m + +## +## file: drivers/scsi/ufs/Kconfig +## +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +# CONFIG_SCSI_UFS_DWC_TC_PCI is not set +# CONFIG_SCSI_UFSHCD_PLATFORM is not set + +## +## file: drivers/soc/ti/Kconfig +## +# CONFIG_SOC_TI is not set + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_GPIO is not set +CONFIG_SPI_LM70_LLP=m +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_FSL_DSPI is not set +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_TOPCLIFF_PCH is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set + +## +## file: drivers/spmi/Kconfig +## +# CONFIG_SPMI is not set + +## +## file: drivers/ssb/Kconfig +## +CONFIG_SSB=m +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_HOST_SOC is not set +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +# CONFIG_SSB_DRIVER_GPIO is not set + +## +## file: drivers/staging/Kconfig +## +CONFIG_STAGING=y + +## +## file: drivers/staging/board/Kconfig +## +# CONFIG_STAGING_BOARD is not set + +## +## file: drivers/staging/clocking-wizard/Kconfig +## +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set + +## +## file: drivers/staging/comedi/Kconfig +## +# CONFIG_COMEDI is not set + +## +## file: drivers/staging/dgnc/Kconfig +## +# CONFIG_DGNC is not set + +## +## file: drivers/staging/fbtft/Kconfig +## +# CONFIG_FB_TFT is not set + +## +## file: drivers/staging/gdm724x/Kconfig +## +# CONFIG_LTE_GDM724X is not set + +## +## file: drivers/staging/gs_fpgaboot/Kconfig +## +# CONFIG_GS_FPGABOOT is not set + +## +## file: drivers/staging/iio/accel/Kconfig +## +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADIS16240 is not set +# CONFIG_SCA3000 is not set + +## +## file: drivers/staging/iio/adc/Kconfig +## +# CONFIG_AD7606 is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set + +## +## file: drivers/staging/iio/addac/Kconfig +## +# CONFIG_ADT7316 is not set + +## +## file: drivers/staging/iio/cdc/Kconfig +## +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +## +## file: drivers/staging/iio/frequency/Kconfig +## +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set + +## +## file: drivers/staging/iio/gyro/Kconfig +## +# CONFIG_ADIS16060 is not set + +## +## file: drivers/staging/iio/impedance-analyzer/Kconfig +## +# CONFIG_AD5933 is not set + +## +## file: drivers/staging/iio/light/Kconfig +## +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +## +## file: drivers/staging/iio/meter/Kconfig +## +# CONFIG_ADE7753 is not set +# CONFIG_ADE7754 is not set +# CONFIG_ADE7758 is not set +# CONFIG_ADE7759 is not set +# CONFIG_ADE7854 is not set + +## +## file: drivers/staging/iio/resolver/Kconfig +## +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# CONFIG_AD2S1210 is not set + +## +## file: drivers/staging/lustre/lustre/Kconfig +## +# CONFIG_LUSTRE_FS is not set + +## +## file: drivers/staging/media/Kconfig +## +# CONFIG_STAGING_MEDIA is not set + +## +## file: drivers/staging/media/lirc/Kconfig +## +# CONFIG_LIRC_STAGING is not set +# CONFIG_LIRC_PARALLEL is not set + +## +## file: drivers/staging/most/Kconfig +## +# CONFIG_MOST is not set + +## +## file: drivers/staging/mt29f_spinand/Kconfig +## +# CONFIG_MTD_SPINAND_MT29F is not set + +## +## file: drivers/staging/rtl8188eu/Kconfig +## +CONFIG_R8188EU=m +CONFIG_88EU_AP_MODE=y + +## +## file: drivers/staging/rtl8192e/Kconfig +## +# CONFIG_RTLLIB is not set + +## +## file: drivers/staging/rtl8192e/rtl8192e/Kconfig +## +# CONFIG_RTL8192E is not set + +## +## file: drivers/staging/rtl8192u/Kconfig +## +# CONFIG_RTL8192U is not set + +## +## file: drivers/staging/rtl8712/Kconfig +## +CONFIG_R8712U=m + +## +## file: drivers/staging/rts5208/Kconfig +## +# CONFIG_RTS5208 is not set + +## +## file: drivers/staging/skein/Kconfig +## +# CONFIG_CRYPTO_SKEIN is not set + +## +## file: drivers/staging/slicoss/Kconfig +## +# CONFIG_SLICOSS is not set + +## +## file: drivers/staging/sm750fb/Kconfig +## +# CONFIG_FB_SM750 is not set + +## +## file: drivers/staging/speakup/Kconfig +## +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_ACNTPC=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_DTLK=m +CONFIG_SPEAKUP_SYNTH_KEYPC=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m + +## +## file: drivers/staging/vt6655/Kconfig +## +# CONFIG_VT6655 is not set + +## +## file: drivers/staging/vt6656/Kconfig +## +# CONFIG_VT6656 is not set + +## +## file: drivers/staging/wlan-ng/Kconfig +## +# CONFIG_PRISM2_USB is not set + +## +## file: drivers/staging/xgifb/Kconfig +## +# CONFIG_FB_XGI is not set + +## +## file: drivers/target/Kconfig +## +CONFIG_TARGET_CORE=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_PSCSI=m +CONFIG_TCM_USER2=m + +## +## file: drivers/target/iscsi/Kconfig +## +CONFIG_ISCSI_TARGET=m + +## +## file: drivers/target/iscsi/cxgbit/Kconfig +## +CONFIG_ISCSI_TARGET_CXGB4=m + +## +## file: drivers/target/loopback/Kconfig +## +CONFIG_LOOPBACK_TARGET=m + +## +## file: drivers/target/sbp/Kconfig +## +CONFIG_SBP_TARGET=m + +## +## file: drivers/target/tcm_fc/Kconfig +## +CONFIG_TCM_FC=m + +## +## file: drivers/thermal/Kconfig +## +CONFIG_THERMAL_HWMON=y +## choice: Default Thermal governor +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +## end choice +CONFIG_THERMAL_GOV_FAIR_SHARE=y +# CONFIG_THERMAL_GOV_STEP_WISE is not set +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_EMULATION is not set + +## +## file: drivers/tty/Kconfig +## +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_MOXA_SMARTIO=m +CONFIG_SYNCLINK_GT=m +CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set + +## +## file: drivers/tty/hvc/Kconfig +## +CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y + +## +## file: drivers/tty/serial/Kconfig +## +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_ST_ASC is not set + +## +## file: drivers/tty/serial/8250/Kconfig +## +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_HUB6=m +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_8250_MID is not set +CONFIG_SERIAL_OF_PLATFORM=m + +## +## file: drivers/uio/Kconfig +## +CONFIG_UIO=m +CONFIG_UIO_CIF=m +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +CONFIG_UIO_AEC=m +CONFIG_UIO_SERCOS3=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +# CONFIG_UIO_PRUSS is not set +CONFIG_UIO_MF624=m + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB_SUPPORT=y +CONFIG_USB_LED_TRIG=y +# CONFIG_USB_ULPI_BUS is not set + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m + +## +## file: drivers/usb/chipidea/Kconfig +## +# CONFIG_USB_CHIPIDEA is not set + +## +## file: drivers/usb/class/Kconfig +## +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +## +## file: drivers/usb/core/Kconfig +## +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_DEFAULT_PERSIST=y +CONFIG_USB_DYNAMIC_MINORS=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_FSM is not set + +## +## file: drivers/usb/dwc2/Kconfig +## +# CONFIG_USB_DWC2 is not set + +## +## file: drivers/usb/dwc3/Kconfig +## +# CONFIG_USB_DWC3 is not set + +## +## file: drivers/usb/gadget/Kconfig +## +# CONFIG_USB_GADGET is not set +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +## +## file: drivers/usb/gadget/udc/Kconfig +## +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2272 is not set +CONFIG_USB_NET2280=m +# CONFIG_USB_GOKU is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_DUMMY_HCD is not set + +## +## file: drivers/usb/gadget/udc/bdc/Kconfig +## +# CONFIG_USB_BDC_UDC is not set + +## +## file: drivers/usb/host/Kconfig +## +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +CONFIG_USB_U132_HCD=m +# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +## +## file: drivers/usb/image/Kconfig +## +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +## +## file: drivers/usb/isp1760/Kconfig +## +# CONFIG_USB_ISP1760 is not set + +## +## file: drivers/usb/misc/Kconfig +## +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +CONFIG_USB_CHAOSKEY=m + +## +## file: drivers/usb/misc/sisusbvga/Kconfig +## +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y + +## +## file: drivers/usb/mon/Kconfig +## +CONFIG_USB_MON=y + +## +## file: drivers/usb/musb/Kconfig +## +# CONFIG_USB_MUSB_HDRC is not set + +## +## file: drivers/usb/phy/Kconfig +## +# CONFIG_AB8500_USB is not set +# CONFIG_FSL_USB2_OTG is not set +# CONFIG_ISP1301_OMAP is not set +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_AM335X_PHY_USB is not set +# CONFIG_TWL6030_USB is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_MSM_OTG is not set +# CONFIG_USB_MV_OTG is not set +# CONFIG_USB_MXS_PHY is not set +# CONFIG_USB_ULPI is not set + +## +## file: drivers/usb/renesas_usbhs/Kconfig +## +# CONFIG_USB_RENESAS_USBHS is not set + +## +## file: drivers/usb/serial/Kconfig +## +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MXUPORT=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_DEBUG=m + +## +## file: drivers/usb/storage/Kconfig +## +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m + +## +## file: drivers/usb/usbip/Kconfig +## +# CONFIG_USBIP_CORE is not set + +## +## file: drivers/usb/wusbcore/Kconfig +## +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +## +## file: drivers/uwb/Kconfig +## +CONFIG_UWB=m +CONFIG_UWB_I1480U=m + +## +## file: drivers/vhost/Kconfig +## +CONFIG_VHOST_NET=m +CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VSOCK=m +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +## +## file: drivers/video/backlight/Kconfig +## +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_BACKLIGHT_APPLE=m +# CONFIG_BACKLIGHT_PM8941_WLED is not set +# CONFIG_BACKLIGHT_SAHARA is not set +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_OT200 is not set +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set + +## +## file: drivers/video/console/Kconfig +## +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_ARC=m +# CONFIG_FB_UVESA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_INTEL_DEBUG is not set +# CONFIG_FB_INTEL_I2C is not set +CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +CONFIG_FB_VIA_X_COMPATIBILITY=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_VT8623=m +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_TMIO is not set +CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +CONFIG_FB_UDL=m +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_GOLDFISH is not set +CONFIG_XEN_FBDEV_FRONTEND=y +# CONFIG_FB_METRONOME is not set +CONFIG_FB_MB862XX=m +## choice: GDC variant +CONFIG_FB_MB862XX_PCI_GDC=y +## end choice +CONFIG_FB_MB862XX_I2C=y +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set + +## +## file: drivers/video/logo/Kconfig +## +# CONFIG_LOGO is not set + +## +## file: drivers/virt/Kconfig +## +CONFIG_VIRT_DRIVERS=y + +## +## file: drivers/virtio/Kconfig +## +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_INPUT=m +# CONFIG_VIRTIO_MMIO is not set + +## +## file: drivers/vme/Kconfig +## +# CONFIG_VME_BUS is not set + +## +## file: drivers/w1/Kconfig +## +CONFIG_W1=m +CONFIG_W1_CON=y + +## +## file: drivers/w1/masters/Kconfig +## +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +# CONFIG_W1_MASTER_DS1WM is not set +# CONFIG_W1_MASTER_GPIO is not set + +## +## file: drivers/w1/slaves/Kconfig +## +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +# CONFIG_W1_SLAVE_DS2408 is not set +# CONFIG_W1_SLAVE_DS2413 is not set +# CONFIG_W1_SLAVE_DS2406 is not set +# CONFIG_W1_SLAVE_DS2423 is not set +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +# CONFIG_W1_SLAVE_DS2760 is not set +# CONFIG_W1_SLAVE_DS2780 is not set +# CONFIG_W1_SLAVE_DS2781 is not set +# CONFIG_W1_SLAVE_DS28E04 is not set +CONFIG_W1_SLAVE_BQ27000=m + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_SOFT_WATCHDOG=m +# CONFIG_GPIO_WATCHDOG is not set +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT87_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_BCM7038_WDT is not set +# CONFIG_MEN_A21_WDT is not set +CONFIG_XEN_WDT=m + +## +## file: drivers/xen/Kconfig +## +CONFIG_XEN_BALLOON=y +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_BACKEND=y +CONFIG_XENFS=m +CONFIG_XEN_COMPAT_XENFS=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_SCSI_BACKEND=m +CONFIG_XEN_MCE_LOG=y + +## +## file: fs/Kconfig +## +CONFIG_FS_DAX=y +CONFIG_FILE_LOCKING=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_NETWORK_FILESYSTEMS=y + +## +## file: fs/9p/Kconfig +## +CONFIG_9P_FS=m +CONFIG_9P_FSCACHE=y +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y + +## +## file: fs/adfs/Kconfig +## +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set + +## +## file: fs/affs/Kconfig +## +CONFIG_AFFS_FS=m + +## +## file: fs/afs/Kconfig +## +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FSCACHE=y + +## +## file: fs/autofs4/Kconfig +## +CONFIG_AUTOFS4_FS=m + +## +## file: fs/befs/Kconfig +## +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set + +## +## file: fs/bfs/Kconfig +## +CONFIG_BFS_FS=m + +## +## file: fs/Kconfig.binfmt +## +CONFIG_BINFMT_ELF=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=m +CONFIG_COREDUMP=y + +## +## file: fs/btrfs/Kconfig +## +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set + +## +## file: fs/cachefiles/Kconfig +## +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +## +## file: fs/ceph/Kconfig +## +CONFIG_CEPH_FS=m +CONFIG_CEPH_FSCACHE=y +CONFIG_CEPH_FS_POSIX_ACL=y + +## +## file: fs/cifs/Kconfig +## +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_NFSD_EXPORT=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y + +## +## file: fs/coda/Kconfig +## +CONFIG_CODA_FS=m + +## +## file: fs/configfs/Kconfig +## +CONFIG_CONFIGFS_FS=m + +## +## file: fs/cramfs/Kconfig +## +# CONFIG_CRAMFS is not set + +## +## file: fs/dlm/Kconfig +## +CONFIG_DLM=m +CONFIG_DLM_DEBUG=y + +## +## file: fs/ecryptfs/Kconfig +## +CONFIG_ECRYPT_FS=m +CONFIG_ECRYPT_FS_MESSAGING=y + +## +## file: fs/efivarfs/Kconfig +## +CONFIG_EFIVAR_FS=m + +## +## file: fs/efs/Kconfig +## +CONFIG_EFS_FS=m + +## +## file: fs/exofs/Kconfig +## +CONFIG_EXOFS_FS=m +# CONFIG_EXOFS_DEBUG is not set + +## +## file: fs/ext2/Kconfig +## +# CONFIG_EXT2_FS is not set + +## +## file: fs/ext4/Kconfig +## +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=m +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_ENCRYPTION=y +# CONFIG_EXT4_DEBUG is not set + +## +## file: fs/f2fs/Kconfig +## +CONFIG_F2FS_FS=m +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +CONFIG_F2FS_FS_ENCRYPTION=y +# CONFIG_F2FS_IO_TRACE is not set + +## +## file: fs/fat/Kconfig +## +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +#. Mitigate the lack of UTF-8 case-folding which makes FAT name lookup +#. inconsistent (#833238). This combination enables case-folding the +#. ASCII subset while still encoding/decoding as UTF-8. +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" +CONFIG_FAT_DEFAULT_UTF8=y + +## +## file: fs/freevxfs/Kconfig +## +CONFIG_VXFS_FS=m + +## +## file: fs/fscache/Kconfig +## +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set + +## +## file: fs/fuse/Kconfig +## +CONFIG_FUSE_FS=m +CONFIG_CUSE=m + +## +## file: fs/gfs2/Kconfig +## +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y + +## +## file: fs/hfs/Kconfig +## +CONFIG_HFS_FS=m + +## +## file: fs/hfsplus/Kconfig +## +CONFIG_HFSPLUS_FS=m +# CONFIG_HFSPLUS_FS_POSIX_ACL is not set + +## +## file: fs/hpfs/Kconfig +## +# CONFIG_HPFS_FS is not set + +## +## file: fs/isofs/Kconfig +## +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y + +## +## file: fs/jbd2/Kconfig +## +# CONFIG_JBD2_DEBUG is not set + +## +## file: fs/jffs2/Kconfig +## +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +## choice: JFFS2 default compression mode +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +## end choice + +## +## file: fs/jfs/Kconfig +## +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set + +## +## file: fs/logfs/Kconfig +## +CONFIG_LOGFS=m + +## +## file: fs/minix/Kconfig +## +CONFIG_MINIX_FS=m + +## +## file: fs/ncpfs/Kconfig +## +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y + +## +## file: fs/nfs/Kconfig +## +CONFIG_NFS_FS=m +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_SWAP=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +# CONFIG_NFS_V4_1_MIGRATION is not set +CONFIG_NFS_FSCACHE=y +# CONFIG_NFS_USE_LEGACY_DNS is not set + +## +## file: fs/nfsd/Kconfig +## +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_BLOCKLAYOUT=y +CONFIG_NFSD_V4_SECURITY_LABEL=y +# CONFIG_NFSD_FAULT_INJECTION is not set + +## +## file: fs/nilfs2/Kconfig +## +CONFIG_NILFS2_FS=m + +## +## file: fs/nls/Kconfig +## +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m + +## +## file: fs/notify/dnotify/Kconfig +## +CONFIG_DNOTIFY=y + +## +## file: fs/notify/fanotify/Kconfig +## +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y + +## +## file: fs/notify/inotify/Kconfig +## +CONFIG_INOTIFY_USER=y + +## +## file: fs/ntfs/Kconfig +## +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +## +## file: fs/ocfs2/Kconfig +## +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set + +## +## file: fs/omfs/Kconfig +## +CONFIG_OMFS_FS=m + +## +## file: fs/overlayfs/Kconfig +## +CONFIG_OVERLAY_FS=m + +## +## file: fs/proc/Kconfig +## +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y + +## +## file: fs/pstore/Kconfig +## +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_PMSG is not set +# CONFIG_PSTORE_FTRACE is not set +CONFIG_PSTORE_RAM=m + +## +## file: fs/qnx4/Kconfig +## +CONFIG_QNX4FS_FS=m + +## +## file: fs/qnx6/Kconfig +## +CONFIG_QNX6FS_FS=m +# CONFIG_QNX6FS_DEBUG is not set + +## +## file: fs/quota/Kconfig +## +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m + +## +## file: fs/reiserfs/Kconfig +## +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y + +## +## file: fs/romfs/Kconfig +## +CONFIG_ROMFS_FS=m +## choice: RomFS backing stores +# CONFIG_ROMFS_BACKED_BY_BLOCK is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_BACKED_BY_BOTH=y +## end choice + +## +## file: fs/squashfs/Kconfig +## +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZ4 is not set +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set + +## +## file: fs/sysfs/Kconfig +## +CONFIG_SYSFS=y + +## +## file: fs/sysv/Kconfig +## +CONFIG_SYSV_FS=m + +## +## file: fs/ubifs/Kconfig +## +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y + +## +## file: fs/udf/Kconfig +## +CONFIG_UDF_FS=m + +## +## file: fs/ufs/Kconfig +## +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set + +## +## file: fs/xfs/Kconfig +## +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set + +## +## file: init/Kconfig +## +CONFIG_CROSS_COMPILE="" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +## choice: Kernel compression mode +CONFIG_KERNEL_XZ=y +## end choice +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_FHANDLE=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +# CONFIG_RCU_EXPERT is not set +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_KTHREAD_PRIO=0 +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_NUMA_BALANCING=y +# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set +CONFIG_CGROUPS=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +# CONFIG_MEMCG_SWAP_ENABLED is not set +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_HUGETLB is not set +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_SYSFS_DEPRECATED_V2 is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +## choice: Compiler optimization level +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +## end choice +#. Unfortunately some useful options are conditional on EXPERT +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_MULTIUSER=y +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_BPF_SYSCALL=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_USERFAULTFD=y +CONFIG_PCI_QUIRKS=y +CONFIG_MEMBARRIER=y +# CONFIG_EMBEDDED is not set +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_COMPAT_BRK is not set +## choice: Choose SLAB allocator +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +## end choice +CONFIG_SLAB_FREELIST_RANDOM=y +# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set +CONFIG_PROFILING=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +#. This is overridden if the [build]signed-modules setting is enabled +# CONFIG_MODULE_SIG is not set +#. Signature validation is a run-time option +# CONFIG_MODULE_SIG_FORCE is not set +#. Signatures are added in linux-signed +# CONFIG_MODULE_SIG_ALL is not set +## choice: Which hash algorithm should modules be signed with? +CONFIG_MODULE_SIG_SHA256=y +## end choice +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set + +## +## file: kernel/gcov/Kconfig +## +# CONFIG_GCOV_KERNEL is not set + +## +## file: kernel/Kconfig.hz +## +## choice: Timer frequency +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +## end choice + +## +## file: kernel/irq/Kconfig +## +# CONFIG_IRQ_DOMAIN_DEBUG is not set + +## +## file: kernel/power/Kconfig +## +CONFIG_SUSPEND=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +#. Could be enabled if it becomes configurable at run-time +# CONFIG_DPM_WATCHDOG is not set +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set + +## +## file: kernel/Kconfig.preempt +## +## choice: Preemption Model +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +## end choice + +## +## file: kernel/time/Kconfig +## +## choice: Timer tick handling +CONFIG_NO_HZ_IDLE=y +## end choice +#. Backward compatibility symbol +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y + +## +## file: kernel/trace/Kconfig +## +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +## choice: Branch Profiling +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +## end choice +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_KPROBE_EVENT=y +CONFIG_UPROBE_EVENT=y +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE_TEST is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_TRACE_ENUM_MAP_FILE is not set +CONFIG_TRACING_EVENTS_GPIO=y + +## +## file: lib/Kconfig +## +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +# CONFIG_CRC8 is not set +# CONFIG_RANDOM32_SELFTEST is not set +# CONFIG_GLOB_SELFTEST is not set +CONFIG_CORDIC=m +# CONFIG_DDR is not set + +## +## file: lib/Kconfig.debug +## +CONFIG_PRINTK_TIME=y +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_DYNAMIC_DEBUG=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6 +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +#. For use by selftests +CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_TIMEOUT=0 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_STACK_END_CHECK=y +# CONFIG_DEBUG_TIMEKEEPING is not set +CONFIG_TIMER_STATS=y +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_LIST=y +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_TRACE is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +#. For use by selftests +CONFIG_NOTIFIER_ERROR_INJECTION=m +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_PM_NOTIFIER_ERROR_INJECT=m +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_KPROBES_SANITY_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +#. Self-test +# CONFIG_ASYNC_RAID6_TEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_TEST_LKM is not set +#. For use by selftests +CONFIG_TEST_USER_COPY=m +CONFIG_TEST_BPF=m +CONFIG_TEST_FIRMWARE=m +# CONFIG_TEST_UDELAY is not set +CONFIG_TEST_STATIC_KEYS=m +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y + +## +## file: lib/fonts/Kconfig +## +# CONFIG_FONTS is not set + +## +## file: lib/Kconfig.kasan +## +# CONFIG_KASAN is not set + +## +## file: lib/Kconfig.kgdb +## +# CONFIG_KGDB is not set + +## +## file: lib/Kconfig.kmemcheck +## +# CONFIG_KMEMCHECK is not set + +## +## file: lib/xz/Kconfig +## +#. These are enabled again by arch config, matching the defaults +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_TEST is not set + +## +## file: mm/Kconfig +## +CONFIG_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +CONFIG_BOUNCE=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_MEMORY_FAILURE=y +CONFIG_HWPOISON_INJECT=m +CONFIG_TRANSPARENT_HUGEPAGE=y +## choice: Transparent Hugepage Support sysfs defaults +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +## end choice +# CONFIG_CLEANCACHE is not set +CONFIG_FRONTSWAP=y +# CONFIG_CMA is not set +CONFIG_MEM_SOFT_DIRTY=y +CONFIG_ZSWAP=y +CONFIG_ZBUD=y +CONFIG_ZSMALLOC=m +# CONFIG_PGTABLE_MAPPING is not set +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set + +## +## file: mm/Kconfig.debug +## +CONFIG_PAGE_EXTENSION=y +CONFIG_PAGE_POISONING=y +CONFIG_PAGE_POISONING_NO_SANITY=y + +## +## file: net/Kconfig +## +CONFIG_NET=y +CONFIG_INET=y +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_BPF_JIT=y +CONFIG_NET_PKTGEN=m +# CONFIG_NET_TCPPROBE is not set +CONFIG_NET_DROP_MONITOR=m +CONFIG_WIRELESS=y +CONFIG_LWTUNNEL=y +CONFIG_NET_DEVLINK=m + +## +## file: net/6lowpan/Kconfig +## +CONFIG_6LOWPAN=m +# CONFIG_6LOWPAN_DEBUGFS is not set +CONFIG_6LOWPAN_NHC=m +CONFIG_6LOWPAN_NHC_DEST=m +CONFIG_6LOWPAN_NHC_FRAGMENT=m +CONFIG_6LOWPAN_NHC_HOP=m +CONFIG_6LOWPAN_NHC_IPV6=m +CONFIG_6LOWPAN_NHC_MOBILITY=m +CONFIG_6LOWPAN_NHC_ROUTING=m +CONFIG_6LOWPAN_NHC_UDP=m + +## +## file: net/8021q/Kconfig +## +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y + +## +## file: net/9p/Kconfig +## +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set + +## +## file: net/atm/Kconfig +## +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set + +## +## file: net/batman-adv/Kconfig +## +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_BATMAN_V is not set +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +CONFIG_BATMAN_ADV_MCAST=y +CONFIG_BATMAN_ADV_DEBUGFS=y +# CONFIG_BATMAN_ADV_DEBUG is not set + +## +## file: net/bluetooth/Kconfig +## +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_6LOWPAN=m +# CONFIG_BT_LEDS is not set +# CONFIG_BT_SELFTEST is not set +CONFIG_BT_DEBUGFS=y + +## +## file: net/bluetooth/bnep/Kconfig +## +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y + +## +## file: net/bluetooth/cmtp/Kconfig +## +CONFIG_BT_CMTP=m + +## +## file: net/bluetooth/hidp/Kconfig +## +CONFIG_BT_HIDP=m + +## +## file: net/bluetooth/rfcomm/Kconfig +## +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y + +## +## file: net/bridge/Kconfig +## +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y + +## +## file: net/bridge/netfilter/Kconfig +## +CONFIG_NF_TABLES_BRIDGE=m +CONFIG_NFT_BRIDGE_META=m +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_NFLOG=m + +## +## file: net/caif/Kconfig +## +# CONFIG_CAIF is not set + +## +## file: net/can/Kconfig +## +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_GW=m + +## +## file: net/ceph/Kconfig +## +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set + +## +## file: net/dcb/Kconfig +## +CONFIG_DCB=y + +## +## file: net/dccp/Kconfig +## +CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_NET_DCCPPROBE=m + +## +## file: net/dccp/ccids/Kconfig +## +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_DCCP_CCID3_DEBUG is not set + +## +## file: net/decnet/Kconfig +## +# CONFIG_DECNET is not set + +## +## file: net/dns_resolver/Kconfig +## +CONFIG_DNS_RESOLVER=m + +## +## file: net/hsr/Kconfig +## +# CONFIG_HSR is not set + +## +## file: net/ieee802154/Kconfig +## +CONFIG_IEEE802154=m +# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set +CONFIG_IEEE802154_SOCKET=m + +## +## file: net/ieee802154/6lowpan/Kconfig +## +CONFIG_IEEE802154_6LOWPAN=m + +## +## file: net/ipv4/Kconfig +## +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_NET_FOU=m +CONFIG_NET_FOU_IP_TUNNELS=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INET_DIAG_DESTROY=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_NV=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_DCTCP=m +CONFIG_TCP_CONG_CDG=m +CONFIG_TCP_CONG_BBR=m +## choice: Default TCP congestion control +# CONFIG_DEFAULT_BIC is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_WESTWOOD is not set +# CONFIG_DEFAULT_DCTCP is not set +# CONFIG_DEFAULT_RENO is not set +## end choice +CONFIG_TCP_MD5SIG=y + +## +## file: net/ipv4/netfilter/Kconfig +## +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_TABLES_IPV4=m +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NF_TABLES_ARP=m +CONFIG_NF_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +## +## file: net/ipv6/Kconfig +## +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_ILA=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y + +## +## file: net/ipv6/netfilter/Kconfig +## +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_TABLES_IPV6=m +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_LOG_IPV6=m +CONFIG_NF_NAT_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m + +## +## file: net/kcm/Kconfig +## +# CONFIG_AF_KCM is not set + +## +## file: net/l2tp/Kconfig +## +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m + +## +## file: net/l3mdev/Kconfig +## +CONFIG_NET_L3_MASTER_DEV=y + +## +## file: net/llc/Kconfig +## +CONFIG_LLC2=m + +## +## file: net/mac80211/Kconfig +## +CONFIG_MAC80211=m +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +# CONFIG_MAC80211_RC_MINSTREL_VHT is not set +## choice: Default rate control algorithm +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +## end choice +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set + +## +## file: net/mac802154/Kconfig +## +CONFIG_MAC802154=m + +## +## file: net/mpls/Kconfig +## +#. Can be built as a module, but nothing will trigger loading +CONFIG_NET_MPLS_GSO=y +CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m + +## +## file: net/ncsi/Kconfig +## +# CONFIG_NET_NCSI is not set + +## +## file: net/netfilter/Kconfig +## +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=y +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_GLUE_CT=y +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=m +CONFIG_NF_TABLES_NETDEV=m +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_META=m +CONFIG_NFT_NUMGEN=m +CONFIG_NFT_CT=m +CONFIG_NFT_SET_RBTREE=m +CONFIG_NFT_SET_HASH=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m +CONFIG_NFT_QUEUE=m +CONFIG_NFT_QUOTA=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_COMPAT=m +CONFIG_NFT_HASH=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_SET=m +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m + +## +## file: net/netfilter/ipset/Kconfig +## +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m + +## +## file: net/netfilter/ipvs/Kconfig +## +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_SH_TAB_BITS=8 +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_PE_SIP=m + +## +## file: net/netlabel/Kconfig +## +# CONFIG_NETLABEL is not set + +## +## file: net/netlink/Kconfig +## +CONFIG_NETLINK_DIAG=m + +## +## file: net/nfc/Kconfig +## +CONFIG_NFC=m +CONFIG_NFC_DIGITAL=m + +## +## file: net/nfc/hci/Kconfig +## +# CONFIG_NFC_HCI is not set +# CONFIG_NFC_SHDLC is not set + +## +## file: net/nfc/nci/Kconfig +## +# CONFIG_NFC_NCI is not set + +## +## file: net/openvswitch/Kconfig +## +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=y +CONFIG_OPENVSWITCH_VXLAN=y +CONFIG_OPENVSWITCH_GENEVE=y + +## +## file: net/packet/Kconfig +## +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m + +## +## file: net/phonet/Kconfig +## +CONFIG_PHONET=m + +## +## file: net/rds/Kconfig +## +CONFIG_RDS=m +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m +# CONFIG_RDS_DEBUG is not set + +## +## file: net/rfkill/Kconfig +## +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_RFKILL_GPIO is not set + +## +## file: net/rxrpc/Kconfig +## +CONFIG_AF_RXRPC=m +CONFIG_AF_RXRPC_IPV6=y +# CONFIG_AF_RXRPC_INJECT_LOSS is not set +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=y + +## +## file: net/sched/Kconfig +## +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_HHF=m +CONFIG_NET_SCH_PIE=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_MATCHALL=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_CANID=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_VLAN=m +CONFIG_NET_ACT_BPF=m +CONFIG_NET_ACT_CONNMARK=m +CONFIG_NET_ACT_IFE=m +CONFIG_NET_ACT_TUNNEL_KEY=m +CONFIG_NET_IFE_SKBMARK=m +CONFIG_NET_IFE_SKBPRIO=m +CONFIG_NET_IFE_SKBTCINDEX=m +CONFIG_NET_CLS_IND=y + +## +## file: net/sctp/Kconfig +## +CONFIG_IP_SCTP=m +CONFIG_NET_SCTPPROBE=m +# CONFIG_SCTP_DBG_OBJCNT is not set +## choice: Default SCTP cookie HMAC encoding +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +## end choice +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y + +## +## file: net/sunrpc/Kconfig +## +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_SUNRPC_DEBUG=y +CONFIG_SUNRPC_XPRT_RDMA=m + +## +## file: net/switchdev/Kconfig +## +# CONFIG_NET_SWITCHDEV is not set + +## +## file: net/tipc/Kconfig +## +CONFIG_TIPC=m +CONFIG_TIPC_MEDIA_IB=y +CONFIG_TIPC_MEDIA_UDP=y + +## +## file: net/unix/Kconfig +## +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m + +## +## file: net/vmw_vsock/Kconfig +## +CONFIG_VSOCKETS=m +# CONFIG_VMWARE_VMCI_VSOCKETS is not set +CONFIG_VIRTIO_VSOCKETS=m + +## +## file: net/wimax/Kconfig +## +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 + +## +## file: net/wireless/Kconfig +## +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +# CONFIG_LIB80211_DEBUG is not set + +## +## file: net/x25/Kconfig +## +# CONFIG_X25 is not set + +## +## file: net/xfrm/Kconfig +## +CONFIG_XFRM_USER=m +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +# CONFIG_XFRM_STATISTICS is not set +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y + +## +## file: samples/Kconfig +## +# CONFIG_SAMPLES is not set + +## +## file: security/Kconfig +## +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_SECURELEVEL=y +# CONFIG_INTEL_TXT is not set +CONFIG_LSM_MMAP_MIN_ADDR=32768 +CONFIG_HARDENED_USERCOPY=y +# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +## choice: Default security module +CONFIG_DEFAULT_SECURITY_DAC=y +## end choice + +## +## file: security/apparmor/Kconfig +## +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_HASH=y + +## +## file: security/integrity/Kconfig +## +CONFIG_INTEGRITY=y +# CONFIG_INTEGRITY_SIGNATURE is not set +CONFIG_INTEGRITY_AUDIT=y + +## +## file: security/integrity/evm/Kconfig +## +# CONFIG_EVM is not set + +## +## file: security/integrity/ima/Kconfig +## +# CONFIG_IMA is not set + +## +## file: security/keys/Kconfig +## +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_TRUSTED_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set + +## +## file: security/selinux/Kconfig +## +CONFIG_SECURITY_SELINUX=y +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DISABLE is not set +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 + +## +## file: security/smack/Kconfig +## +# CONFIG_SECURITY_SMACK is not set + +## +## file: security/tomoyo/Kconfig +## +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +#. This is so horrible... +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" + +## +## file: security/yama/Kconfig +## +CONFIG_SECURITY_YAMA=y + +## +## file: sound/Kconfig +## +CONFIG_SOUND=m +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +CONFIG_SND=m +# CONFIG_SOUND_PRIME is not set + +## +## file: sound/core/Kconfig +## +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +## +## file: sound/drivers/Kconfig +## +CONFIG_SND_DRIVERS=y +CONFIG_SND_PCSP=m +CONFIG_SND_ALOOP=m +CONFIG_SND_MTS64=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 + +## +## file: sound/firewire/Kconfig +## +CONFIG_SND_FIREWIRE=y +CONFIG_SND_DICE=m +CONFIG_SND_OXFW=m +CONFIG_SND_ISIGHT=m +CONFIG_SND_FIREWORKS=m +CONFIG_SND_BEBOB=m +CONFIG_SND_FIREWIRE_DIGI00X=m +CONFIG_SND_FIREWIRE_TASCAM=m + +## +## file: sound/isa/Kconfig +## +# CONFIG_SND_CMI8328 is not set + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ASIHPI=m +# CONFIG_SND_AW2 is not set +CONFIG_SND_OXYGEN=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_HDSPM=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_VIRTUOSO=m + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 + +## +## file: sound/pcmcia/Kconfig +## +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m + +## +## file: sound/soc/Kconfig +## +# CONFIG_SND_SOC is not set + +## +## file: sound/soc/atmel/Kconfig +## +# CONFIG_SND_ATMEL_SOC is not set + +## +## file: sound/soc/codecs/Kconfig +## +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RT5631 is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set + +## +## file: sound/soc/dwc/Kconfig +## +# CONFIG_SND_DESIGNWARE_I2S is not set + +## +## file: sound/soc/fsl/Kconfig +## +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set + +## +## file: sound/soc/generic/Kconfig +## +# CONFIG_SND_SIMPLE_CARD is not set + +## +## file: sound/soc/sunxi/Kconfig +## +# CONFIG_SND_SUN4I_CODEC is not set + +## +## file: sound/soc/xtensa/Kconfig +## +# CONFIG_SND_SOC_XTFPGA_I2S is not set + +## +## file: sound/spi/Kconfig +## +CONFIG_SND_SPI=y + +## +## file: sound/usb/Kconfig +## +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_HIFACE=m +CONFIG_SND_BCD2000=m + +## +## file: sound/usb/line6/Kconfig +## +CONFIG_SND_USB_POD=m +CONFIG_SND_USB_PODHD=m +CONFIG_SND_USB_TONEPORT=m +CONFIG_SND_USB_VARIAX=m + +## +## file: usr/Kconfig +## +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y + diff --git a/config/defines b/config/defines new file mode 100644 index 00000000000..07cab406c12 --- /dev/null +++ b/config/defines @@ -0,0 +1,68 @@ +[abi] +abiname: 1 + +[base] +arches: + alpha + amd64 + arm64 + armel + armhf + hppa + i386 + m68k + mips + mipsel + mipsn32 + mipsn32el + mips64 + mips64el +# Disabled until dak accepts them in the control file +# mipsr6 +# mipsr6el +# mipsn32r6 +# mipsn32r6el +# mips64r6 +# mips64r6el + or1k + powerpc + powerpcspe + ppc64 + ppc64el + s390 + s390x + sh3 + sh4 + sparc + sparc64 + tilegx + x32 +compiler: gcc-6 +featuresets: + none + rt + +[build] +debug-info: true +# Enable module signing by default (implemented in the linux-signed package) +signed-modules: true + +[featureset-rt_base] +enabled: true + +[description] +part-long-up: This kernel is not suitable for SMP (multi-processor, + multi-core or hyper-threaded) systems. +part-long-xen: This kernel also runs on a Xen hypervisor. + It supports both privileged (dom0) and unprivileged (domU) operation. + +[image] +initramfs-generators: initramfs-tools initramfs-fallback + +[relations] +# compilers +gcc-6: gcc-6 , gcc-6-@gnu-type-package@:native + +# initramfs-generators +initramfs-fallback: linux-initramfs-tool +initramfs-tools: initramfs-tools (>= 0.110~) diff --git a/config/featureset-rt/config b/config/featureset-rt/config new file mode 100644 index 00000000000..97a15a73c3b --- /dev/null +++ b/config/featureset-rt/config @@ -0,0 +1,9 @@ +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT_RT_FULL=y +CONFIG_SCHED_TRACER=y +CONFIG_MISSED_TIMER_OFFSETS_HIST=y +CONFIG_WAKEUP_LATENCY_HIST=y +CONFIG_RCU_EXPERT=y +#. Certificate paths are resolved relative to debian/build/source_rt +CONFIG_SYSTEM_TRUSTED_KEYS="../../certs/benh@debian.org.cert.pem" +CONFIG_HWLAT_DETECTOR=m diff --git a/config/featureset-rt/defines b/config/featureset-rt/defines new file mode 100644 index 00000000000..44e2f2b0304 --- /dev/null +++ b/config/featureset-rt/defines @@ -0,0 +1,7 @@ +[abi] +ignore-changes: * + +[description] +part-long-rt: This kernel includes the PREEMPT_RT realtime patch set. +part-short-rt: PREEMPT_RT +parts: rt diff --git a/config/hppa/config b/config/hppa/config new file mode 100644 index 00000000000..dafc021182c --- /dev/null +++ b/config/hppa/config @@ -0,0 +1,705 @@ +## +## file: arch/parisc/Kconfig +## +## choice: Processor type +# CONFIG_PA7100LC is not set +# CONFIG_PA7200 is not set +# CONFIG_PA7300LC is not set +## end choice +CONFIG_MLONGCALLS=y +## choice: Kernel page size +CONFIG_PARISC_PAGE_SIZE_4KB=y +# CONFIG_PARISC_PAGE_SIZE_16KB is not set +# CONFIG_PARISC_PAGE_SIZE_64KB is not set +## end choice + +## +## file: arch/parisc/Kconfig.debug +## +# CONFIG_DEBUG_RODATA is not set + +## +## file: block/partitions/Kconfig +## +# CONFIG_PARTITION_ADVANCED is not set + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_NS87415=m +CONFIG_PATA_LEGACY=m + +## +## file: drivers/block/Kconfig +## +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +# CONFIG_DTLK is not set +# CONFIG_APPLICOM is not set + +## +## file: drivers/char/ipmi/Kconfig +## +# CONFIG_IPMI_HANDLER is not set + +## +## file: drivers/eisa/Kconfig +## +CONFIG_EISA_NAMES=y + +## +## file: drivers/firewire/Kconfig +## +# CONFIG_FIREWIRE is not set + +## +## file: drivers/gpu/drm/Kconfig +## +# CONFIG_DRM is not set + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=m + +## +## file: drivers/hwmon/Kconfig +## +# CONFIG_SENSORS_F71805F is not set + +## +## file: drivers/i2c/Kconfig +## +# CONFIG_I2C is not set + +## +## file: drivers/input/Kconfig +## +# CONFIG_INPUT_JOYDEV is not set + +## +## file: drivers/input/gameport/Kconfig +## +# CONFIG_GAMEPORT is not set + +## +## file: drivers/input/joystick/Kconfig +## +# CONFIG_INPUT_JOYSTICK is not set + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y +# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_HIL_OLD=m +CONFIG_KEYBOARD_HIL=m +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_UINPUT is not set +# CONFIG_HP_SDC_RTC is not set + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_VSXXXAA is not set + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_GSCPS2=y +CONFIG_HP_SDC=m +CONFIG_HIL_MLC=m +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_INPUT_TOUCHSCREEN is not set + +## +## file: drivers/mfd/Kconfig +## +# CONFIG_AB3100_CORE is not set + +## +## file: drivers/mmc/Kconfig +## +# CONFIG_MMC is not set + +## +## file: drivers/mtd/Kconfig +## +# CONFIG_MTD is not set + +## +## file: drivers/net/Kconfig +## +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set + +## +## file: drivers/net/appletalk/Kconfig +## +# CONFIG_ATALK is not set + +## +## file: drivers/net/arcnet/Kconfig +## +# CONFIG_ARCNET is not set + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_EL3=m +# CONFIG_3C515 is not set +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_PCMCIA_AXNET=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRA=m +CONFIG_WD80x3=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_AMD8111_ETH=m +# CONFIG_LANCE is not set +CONFIG_PCMCIA_NMCLAN=m +# CONFIG_NI65 is not set + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_B44=m + +## +## file: drivers/net/ethernet/cirrus/Kconfig +## +CONFIG_CS89x0=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +# CONFIG_DE2104X is not set +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_MMIO=y +# CONFIG_WINBOND_840 is not set +# CONFIG_DM9102 is not set +CONFIG_PCMCIA_XIRCOM=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set + +## +## file: drivers/net/ethernet/fujitsu/Kconfig +## +CONFIG_PCMCIA_FMVJ18X=m + +## +## file: drivers/net/ethernet/hp/Kconfig +## +CONFIG_HP100=m + +## +## file: drivers/net/ethernet/i825xx/Kconfig +## +CONFIG_LASI_82596=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/neterion/Kconfig +## +# CONFIG_VXGE is not set + +## +## file: drivers/net/ethernet/nvidia/Kconfig +## +CONFIG_FORCEDETH=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +# CONFIG_NIU is not set + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set + +## +## file: drivers/net/ethernet/xircom/Kconfig +## +CONFIG_PCMCIA_XIRC2PS=m + +## +## file: drivers/net/fddi/Kconfig +## +# CONFIG_FDDI is not set + +## +## file: drivers/net/hippi/Kconfig +## +# CONFIG_HIPPI is not set + +## +## file: drivers/net/plip/Kconfig +## +CONFIG_PLIP=m + +## +## file: drivers/net/wan/Kconfig +## +# CONFIG_WAN is not set + +## +## file: drivers/net/wireless/Kconfig +## +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_WL3501=m + +## +## file: drivers/net/wireless/atmel/Kconfig +## +# CONFIG_ATMEL is not set + +## +## file: drivers/net/wireless/cisco/Kconfig +## +CONFIG_AIRO_CS=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +# CONFIG_IPW2100 is not set + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +CONFIG_HERMES=m +# CONFIG_PLX_HERMES is not set +# CONFIG_TMD_HERMES is not set +# CONFIG_PCI_HERMES is not set +CONFIG_PCMCIA_HERMES=m + +## +## file: drivers/net/wireless/zydas/Kconfig +## +# CONFIG_USB_ZD1201 is not set + +## +## file: drivers/parisc/Kconfig +## +CONFIG_GSC=y +CONFIG_HPPB=y +CONFIG_IOMMU_CCIO=y +CONFIG_GSC_LASI=y +CONFIG_GSC_WAX=y +CONFIG_EISA=y +CONFIG_ISA=y +CONFIG_PCI=y +CONFIG_GSC_DINO=y +CONFIG_PCI_LBA=y +CONFIG_SUPERIO=y +CONFIG_CHASSIS_LCD_LED=y +CONFIG_PDC_CHASSIS=y +CONFIG_PDC_CHASSIS_WARN=y +CONFIG_PDC_STABLE=y + +## +## file: drivers/pci/hotplug/Kconfig +## +# CONFIG_HOTPLUG_PCI is not set + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_PCCARD=m +CONFIG_PCMCIA=m +CONFIG_CARDBUS=y +CONFIG_YENTA=m +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_I82365=m +# CONFIG_TCIC is not set +# CONFIG_PCMCIA_DEBUG is not set + +## +## file: drivers/pnp/Kconfig +## +# CONFIG_PNP is not set + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_GENERIC=y + +## +## file: drivers/scsi/Kconfig +## +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_IPS is not set +CONFIG_SCSI_INITIO=m +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_NCR53C406A is not set +CONFIG_SCSI_LASI700=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_ZALON=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 +CONFIG_SCSI_NCR53C8XX_SYNC=20 +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_SIM710 is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_DC395x is not set + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +# CONFIG_MEGARAID_LEGACY is not set + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_MUX=y +CONFIG_SERIAL_MUX_CONSOLE=y +CONFIG_SERIAL_JSM=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m +# CONFIG_USB_USS720 is not set + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set + +## +## file: drivers/video/console/Kconfig +## +CONFIG_DUMMY_CONSOLE_COLUMNS=160 +CONFIG_DUMMY_CONSOLE_ROWS=64 +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_STI_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_STI=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_VIRTUAL is not set + +## +## file: drivers/w1/Kconfig +## +# CONFIG_W1 is not set + +## +## file: fs/nfs/Kconfig +## +CONFIG_ROOT_NFS=y + +## +## file: init/Kconfig +## +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y + +## +## file: lib/Kconfig.debug +## +CONFIG_DEBUG_STACKOVERFLOW=y +# CONFIG_LOCKUP_DETECTOR is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +## end choice + +## +## file: net/ax25/Kconfig +## +# CONFIG_HAMRADIO is not set + +## +## file: net/decnet/Kconfig +## +# CONFIG_DECNET is not set + +## +## file: net/ipv4/Kconfig +## +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set + +## +## file: net/ipx/Kconfig +## +# CONFIG_IPX is not set + +## +## file: net/irda/Kconfig +## +# CONFIG_IRDA is not set + +## +## file: net/lapb/Kconfig +## +# CONFIG_LAPB is not set + +## +## file: net/llc/Kconfig +## +# CONFIG_LLC2 is not set + +## +## file: sound/drivers/Kconfig +## +CONFIG_SND_DUMMY=m +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +## +## file: sound/isa/Kconfig +## +# CONFIG_SND_AD1848 is not set +# CONFIG_SND_CMI8330 is not set +# CONFIG_SND_CS4231 is not set +# CONFIG_SND_CS4236 is not set +# CONFIG_SND_ES1688 is not set +# CONFIG_SND_ES18XX is not set +# CONFIG_SND_GUSCLASSIC is not set +# CONFIG_SND_GUSEXTREME is not set +# CONFIG_SND_GUSMAX is not set +# CONFIG_SND_INTERWAVE is not set +# CONFIG_SND_INTERWAVE_STB is not set +# CONFIG_SND_OPL3SA2 is not set +# CONFIG_SND_OPTI92X_AD1848 is not set +# CONFIG_SND_OPTI92X_CS4231 is not set +# CONFIG_SND_OPTI93X is not set +# CONFIG_SND_SB8 is not set +# CONFIG_SND_SB16 is not set +# CONFIG_SND_SBAWE is not set +# CONFIG_SND_SSCAPE is not set +# CONFIG_SND_WAVEFRONT is not set + +## +## file: sound/parisc/Kconfig +## +CONFIG_SND_HARMONY=m + +## +## file: sound/pci/Kconfig +## +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +## +## file: sound/pci/hda/Kconfig +## +# CONFIG_SND_HDA_INTEL is not set + diff --git a/config/hppa/config.parisc b/config/hppa/config.parisc new file mode 100644 index 00000000000..9a07c7962b9 --- /dev/null +++ b/config/hppa/config.parisc @@ -0,0 +1,26 @@ +## +## file: arch/parisc/Kconfig +## +## choice: Processor type +CONFIG_PA7000=y +# CONFIG_PA8X00 is not set +## end choice +# CONFIG_SMP is not set + +## +## file: drivers/net/ethernet/ti/Kconfig +## +CONFIG_TLAN=m + +## +## file: drivers/scsi/Kconfig +## +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_NSP32 is not set + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_NINJA_SCSI=m + diff --git a/config/hppa/config.parisc-smp b/config/hppa/config.parisc-smp new file mode 100644 index 00000000000..8c9cc9a2747 --- /dev/null +++ b/config/hppa/config.parisc-smp @@ -0,0 +1,28 @@ +## +## file: arch/parisc/Kconfig +## +## choice: Processor type +CONFIG_PA7000=y +# CONFIG_PA8X00 is not set +## end choice +CONFIG_SMP=y +# CONFIG_HPUX is not set +CONFIG_NR_CPUS=8 + +## +## file: drivers/net/ethernet/ti/Kconfig +## +CONFIG_TLAN=m + +## +## file: drivers/scsi/Kconfig +## +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_NSP32 is not set + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_NINJA_SCSI=m + diff --git a/config/hppa/config.parisc64 b/config/hppa/config.parisc64 new file mode 100644 index 00000000000..7a782e78d3f --- /dev/null +++ b/config/hppa/config.parisc64 @@ -0,0 +1,17 @@ +## +## file: arch/parisc/Kconfig +## +## choice: Processor type +# CONFIG_PA7000 is not set +CONFIG_PA8X00=y +## end choice +CONFIG_64BIT=y +# CONFIG_SMP is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +# CONFIG_FLATMEM_MANUAL is not set +## end choice + diff --git a/config/hppa/config.parisc64-smp b/config/hppa/config.parisc64-smp new file mode 100644 index 00000000000..e39d0c9347a --- /dev/null +++ b/config/hppa/config.parisc64-smp @@ -0,0 +1,58 @@ +## +## file: arch/parisc/Kconfig +## +## choice: Processor type +# CONFIG_PA7000 is not set +CONFIG_PA8X00=y +## end choice +CONFIG_64BIT=y +CONFIG_SMP=y +CONFIG_NR_CPUS=8 + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_SIL680=m + +## +## file: drivers/char/agp/Kconfig +## +#. for ATI FireGL DRM in C8000 workstation +CONFIG_AGP=y +CONFIG_AGP_PARISC=y + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m + +## +## file: drivers/gpu/drm/Kconfig +## +#. for ATI FireGL DRM in C8000 workstation +CONFIG_DRM=y +CONFIG_DRM_RADEON=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y + +## +## file: drivers/i2c/algos/Kconfig +## +CONFIG_I2C_ALGOBIT=y + +## +## file: mm/Kconfig +## +## choice: Memory model +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +## end choice + diff --git a/config/hppa/defines b/config/hppa/defines new file mode 100644 index 00000000000..f75bd1fb172 --- /dev/null +++ b/config/hppa/defines @@ -0,0 +1,28 @@ +[base] +flavours: parisc parisc64-smp +kernel-arch: parisc + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +suggests: palo +install-stem: vmlinux + +[parisc_description] +hardware: 32-bit PA-RISC +hardware-long: HP PA-RISC 32-bit systems with max 4 GB RAM + +[parisc64-smp_base] +cflags: -fno-cse-follow-jumps +override-host-type: hppa64-linux-gnu + +[parisc64-smp_description] +hardware: multiprocessor 64-bit PA-RISC +hardware-long: HP PA-RISC 64-bit SMP systems with support for more than 4 GB RAM + +[relations] +gcc-6: gcc-6 , binutils-hppa64-linux-gnu , gcc-6-hppa64-linux-gnu , gcc-6-hppa-linux-gnu:native , binutils-hppa64-linux-gnu:native , gcc-6-hppa64-linux-gnu:native + diff --git a/config/i386/config b/config/i386/config new file mode 100644 index 00000000000..736ab7206b7 --- /dev/null +++ b/config/i386/config @@ -0,0 +1,556 @@ +## +## file: arch/x86/Kconfig +## +# CONFIG_64BIT is not set +CONFIG_SMP=y +CONFIG_X86_BIGSMP=y +CONFIG_NR_CPUS=32 +# CONFIG_X86_LEGACY_VM86 is not set +CONFIG_TOSHIBA=m +CONFIG_X86_REBOOTFIXUPS=y +## choice: High Memory Support +# CONFIG_NOHIGHMEM is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +## end choice +## choice: Memory split +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +# CONFIG_VMSPLIT_1G is not set +## end choice +# CONFIG_X86_PAE is not set +# CONFIG_NUMA is not set +CONFIG_HIGHPTE=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_APM=m +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_ALLOW_INTS is not set +## choice: PCI access mode +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOOLPC is not set +CONFIG_PCI_GOANY=y +## end choice +CONFIG_PCI_MMCONFIG=y +CONFIG_ISA=y +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +# CONFIG_OLPC is not set + +## +## file: arch/x86/Kconfig.cpu +## +CONFIG_X86_GENERIC=y +# CONFIG_X86_PPRO_FENCE is not set + +## +## file: arch/x86/lguest/Kconfig +## +# CONFIG_LGUEST_GUEST is not set + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_SALSA20_586=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m +CONFIG_CRYPTO_TWOFISH_586=m + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_LEGACY=m + +## +## file: drivers/atm/Kconfig +## +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set + +## +## file: drivers/auxdisplay/Kconfig +## +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 + +## +## file: drivers/char/Kconfig +## +CONFIG_SONYPI=m +CONFIG_SCx200_GPIO=m + +## +## file: drivers/char/agp/Kconfig +## +#. Workaround +CONFIG_AGP_ALI=y +#. Workaround +CONFIG_AGP_ATI=y +#. Workaround +CONFIG_AGP_AMD=y +#. Workaround +CONFIG_AGP_NVIDIA=y +#. Workaround +CONFIG_AGP_SWORKS=y +#. Workaround +CONFIG_AGP_EFFICEON=y + +## +## file: drivers/cpufreq/Kconfig.x86 +## +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=m +CONFIG_X86_SPEEDSTEP_SMI=m +CONFIG_X86_CPUFREQ_NFORCE2=m +CONFIG_X86_LONGRUN=m +CONFIG_X86_LONGHAUL=m +# CONFIG_X86_E_POWERSAVER is not set +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_DEV_GEODE=m + +## +## file: drivers/dma/Kconfig +## +CONFIG_PCH_DMA=m + +## +## file: drivers/gpio/Kconfig +## +CONFIG_GPIO_VX855=m +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_PCH=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM_I810=m + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_EG20T=m +CONFIG_I2C_PXA=m + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_WISTRON_BTNS=m + +## +## file: drivers/input/mouse/Kconfig +## +# CONFIG_MOUSE_PS2_OLPC is not set +CONFIG_MOUSE_INPORT=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m + +## +## file: drivers/iommu/Kconfig +## +# CONFIG_INTEL_IOMMU is not set + +## +## file: drivers/isdn/hardware/avm/Kconfig +## +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_T1ISA=m + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_WRAP=m + +## +## file: drivers/lguest/Kconfig +## +# CONFIG_LGUEST is not set + +## +## file: drivers/macintosh/Kconfig +## +# CONFIG_MACINTOSH_DRIVERS is not set + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_V4L_RADIO_ISA_DRIVERS=y +CONFIG_RADIO_CADET=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_MIROPCM20=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_ZOLTRIX=m + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_CS5535=m +CONFIG_MFD_VX855=m + +## +## file: drivers/misc/Kconfig +## +CONFIG_CS5535_MFGPT=m +CONFIG_CS5535_CLOCK_EVENT_SRC=m +CONFIG_PCH_PHUB=m + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set + +## +## file: drivers/net/arcnet/Kconfig +## +CONFIG_ARCNET_COM20020_ISA=m + +## +## file: drivers/net/can/Kconfig +## +CONFIG_PCH_CAN=m + +## +## file: drivers/net/can/cc770/Kconfig +## +CONFIG_CAN_CC770=m +CONFIG_CAN_CC770_ISA=m +# CONFIG_CAN_CC770_PLATFORM is not set + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_EL3=m +CONFIG_3C515=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NET_VENDOR_8390=y +CONFIG_NE2000=m +CONFIG_ULTRA=m +CONFIG_WD80x3=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_NET_VENDOR_AMD=y +CONFIG_LANCE=m +CONFIG_NI65=m + +## +## file: drivers/net/ethernet/cirrus/Kconfig +## +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m + +## +## file: drivers/net/ethernet/dec/Kconfig +## +CONFIG_NET_VENDOR_DEC=y + +## +## file: drivers/net/ethernet/fujitsu/Kconfig +## +CONFIG_NET_VENDOR_FUJITSU=y + +## +## file: drivers/net/ethernet/oki-semi/pch_gbe/Kconfig +## +CONFIG_PCH_GBE=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC9194=m + +## +## file: drivers/net/hamradio/Kconfig +## +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_TOSHIBA_FIR=m + +## +## file: drivers/net/wan/Kconfig +## +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_SEALEVEL_4021=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_SDLA=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_IBM=m + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_I82365=m + +## +## file: drivers/platform/x86/Kconfig +## +CONFIG_TC1100_WMI=m + +## +## file: drivers/pnp/isapnp/Kconfig +## +CONFIG_ISAPNP=y + +## +## file: drivers/pnp/pnpbios/Kconfig +## +CONFIG_PNPBIOS=y +# CONFIG_PNPBIOS_PROC_FS is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_EATA_PIO=m +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_NSP32=m + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_NINJA_SCSI=m + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_TOPCLIFF_PCH=m + +## +## file: drivers/staging/comedi/Kconfig +## +CONFIG_COMEDI_ISA_DRIVERS=y +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=m +CONFIG_COMEDI_PCL726=m +CONFIG_COMEDI_PCL730=m +CONFIG_COMEDI_PCL812=m +CONFIG_COMEDI_PCL816=m +CONFIG_COMEDI_PCL818=m +CONFIG_COMEDI_PCM3724=m +CONFIG_COMEDI_AMPLC_DIO200_ISA=m +CONFIG_COMEDI_AMPLC_PC236_ISA=m +CONFIG_COMEDI_AMPLC_PC263_ISA=m +CONFIG_COMEDI_RTI800=m +CONFIG_COMEDI_RTI802=m +CONFIG_COMEDI_DAC02=m +CONFIG_COMEDI_DAS16M1=m +CONFIG_COMEDI_DAS08_ISA=m +CONFIG_COMEDI_DAS16=m +CONFIG_COMEDI_DAS800=m +CONFIG_COMEDI_DAS1800=m +CONFIG_COMEDI_DAS6402=m +CONFIG_COMEDI_DT2801=m +CONFIG_COMEDI_DT2811=m +CONFIG_COMEDI_DT2814=m +CONFIG_COMEDI_DT2815=m +CONFIG_COMEDI_DT2817=m +CONFIG_COMEDI_DT282X=m +CONFIG_COMEDI_DMM32AT=m +CONFIG_COMEDI_FL512=m +CONFIG_COMEDI_AIO_AIO12_8=m +CONFIG_COMEDI_AIO_IIRO_16=m +CONFIG_COMEDI_C6XDIGIO=m +CONFIG_COMEDI_MPC624=m +CONFIG_COMEDI_ADQ12B=m +CONFIG_COMEDI_NI_AT_A2150=m +CONFIG_COMEDI_NI_AT_AO=m +CONFIG_COMEDI_NI_ATMIO=m +CONFIG_COMEDI_NI_ATMIO16D=m +CONFIG_COMEDI_NI_LABPC_ISA=m +CONFIG_COMEDI_PCMAD=m +CONFIG_COMEDI_PCMDA12=m +CONFIG_COMEDI_PCMMIO=m +CONFIG_COMEDI_PCMUIO=m +CONFIG_COMEDI_MULTIQ3=m + +## +## file: drivers/staging/olpc_dcon/Kconfig +## +CONFIG_FB_OLPC_DCON=m +CONFIG_FB_OLPC_DCON_1=y +CONFIG_FB_OLPC_DCON_1_5=y + +## +## file: drivers/staging/speakup/Kconfig +## +CONFIG_SPEAKUP_SYNTH_DECPC=m + +## +## file: drivers/tty/Kconfig +## +# CONFIG_ISI is not set + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_PCH_UART=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250_EXAR_ST16C554=m + +## +## file: drivers/usb/gadget/udc/Kconfig +## +CONFIG_USB_AMD5536UDC=m + +## +## file: drivers/video/console/Kconfig +## +CONFIG_MDA_CONSOLE=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_I810=m +CONFIG_FB_I810_GTF=y +CONFIG_FB_I810_I2C=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_SAVAGE_I2C=y + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_SCx200_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC7240_WDT=m +CONFIG_PCWATCHDOG=m +CONFIG_MIXCOMWD=m +CONFIG_WDT=m + +## +## file: fs/Kconfig.binfmt +## +CONFIG_BINFMT_AOUT=m + +## +## file: kernel/irq/Kconfig +## +# CONFIG_SPARSE_IRQ is not set + +## +## file: lib/Kconfig.debug +## +CONFIG_FRAME_WARN=1024 + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +## end choice + +## +## file: security/Kconfig +## +CONFIG_LSM_MMAP_MIN_ADDR=0 + +## +## file: sound/isa/Kconfig +## +CONFIG_SND_ISA=y +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_JAZZ16=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MSND_CLASSIC=m + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_SIS7019=m + diff --git a/config/i386/config.686 b/config/i386/config.686 new file mode 100644 index 00000000000..d3a811da541 --- /dev/null +++ b/config/i386/config.686 @@ -0,0 +1,87 @@ +## +## file: arch/x86/Kconfig +## +CONFIG_X86_32_IRIS=m +# CONFIG_MATH_EMULATION is not set +# CONFIG_EISA is not set +CONFIG_OLPC=y +CONFIG_OLPC_XO1_PM=y +CONFIG_OLPC_XO1_RTC=y +CONFIG_OLPC_XO1_SCI=y +CONFIG_OLPC_XO15_SCI=y +CONFIG_ALIX=y +CONFIG_NET5501=y +CONFIG_GEOS=y + +## +## file: arch/x86/Kconfig.cpu +## +## choice: Processor family +# CONFIG_M486 is not set +CONFIG_M686=y +## end choice + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C_STUB=m + +## +## file: drivers/i2c/busses/Kconfig +## +# CONFIG_I2C_ELEKTOR is not set + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_KEYBOARD_GPIO_POLLED=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_MOUSE_PS2_OLPC=y + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_GPIO=m + +## +## file: drivers/net/hamradio/Kconfig +## +# CONFIG_DMASCC is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set + +## +## file: drivers/platform/x86/Kconfig +## +CONFIG_XO1_RFKILL=m +CONFIG_XO15_EBOOK=m + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_BATTERY_OLPC=m + +## +## file: drivers/tty/Kconfig +## +# CONFIG_MOXA_INTELLIO is not set + +## +## file: drivers/video/fbdev/geode/Kconfig +## +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m + +## +## file: lib/Kconfig.debug +## +# CONFIG_DEBUG_HIGHMEM is not set + diff --git a/config/i386/config.686-pae b/config/i386/config.686-pae new file mode 100644 index 00000000000..c5faf690254 --- /dev/null +++ b/config/i386/config.686-pae @@ -0,0 +1,54 @@ +## +## file: arch/x86/Kconfig +## +# CONFIG_X86_32_IRIS is not set +## choice: High Memory Support +# CONFIG_NOHIGHMEM is not set +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +## end choice +CONFIG_X86_PAE=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_EISA is not set +# CONFIG_ALIX is not set +# CONFIG_NET5501 is not set +# CONFIG_GEOS is not set + +## +## file: arch/x86/Kconfig.cpu +## +## choice: Processor family +# CONFIG_M486 is not set +CONFIG_M686=y +## end choice + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C_STUB=m + +## +## file: drivers/i2c/busses/Kconfig +## +# CONFIG_I2C_ELEKTOR is not set + +## +## file: drivers/net/hamradio/Kconfig +## +# CONFIG_DMASCC is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set + +## +## file: drivers/tty/Kconfig +## +# CONFIG_MOXA_INTELLIO is not set + +## +## file: lib/Kconfig.debug +## +# CONFIG_DEBUG_HIGHMEM is not set + diff --git a/config/i386/defines b/config/i386/defines new file mode 100644 index 00000000000..414dbaebf9a --- /dev/null +++ b/config/i386/defines @@ -0,0 +1,35 @@ +[base] +featuresets: + none + rt +kernel-arch: x86 + +[build] +image-file: arch/x86/boot/bzImage +vdso: true + +[description] +part-long-pae: This kernel requires PAE (Physical Address Extension). + This feature is supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, + Core and Atom; AMD Geode NX, Athlon (K7), Duron, Opteron, Sempron, + Turion or Phenom; Transmeta Efficeon; VIA C7; and some other processors. + +[image] +bootloaders: grub-pc extlinux +install-stem: vmlinuz +breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) + +[relations] +headers%gcc-5: linux-compiler-gcc-5-x86 + +[686_description] +hardware: older PCs +hardware-long: PCs with one or more processors not supporting PAE + +[686-pae_build] +debug-info: true + +[686-pae_description] +hardware: modern PCs +hardware-long: PCs with one or more processors supporting PAE +parts: pae diff --git a/config/i386/none/defines b/config/i386/none/defines new file mode 100644 index 00000000000..45987b5a48b --- /dev/null +++ b/config/i386/none/defines @@ -0,0 +1,7 @@ +[base] +flavours: + 686 + 686-pae + +[686-pae_description] +parts: xen diff --git a/config/i386/rt/defines b/config/i386/rt/defines new file mode 100644 index 00000000000..358e12d559c --- /dev/null +++ b/config/i386/rt/defines @@ -0,0 +1,3 @@ +[base] +flavours: + 686-pae diff --git a/config/kernelarch-arm/config b/config/kernelarch-arm/config new file mode 100644 index 00000000000..eafef745174 --- /dev/null +++ b/config/kernelarch-arm/config @@ -0,0 +1,117 @@ +## +## file: arch/arm/Kconfig +## +CONFIG_MMU=y +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_CPU_SW_DOMAIN_PAN=y +CONFIG_SECCOMP=y +CONFIG_KEXEC=y + +## +## file: arch/arm/crypto/Kconfig +## +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_AES_ARM=m + +## +## file: arch/arm/Kconfig.debug +## +CONFIG_DEBUG_LL=y +CONFIG_EARLY_PRINTK=y + +## +## file: arch/arm/mm/Kconfig +## +#. Support Thumb user binaries +CONFIG_ARM_THUMB=y + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_APPLETOUCH=m + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_TOUCHSCREEN_EETI is not set + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_PHYSMAP=y + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +# CONFIG_IPW2100 is not set + +## +## file: drivers/parport/Kconfig +## +#. Causes lockups on ARM (see #588164) +# CONFIG_PARPORT_PC is not set + +## +## file: drivers/pci/Kconfig +## +# CONFIG_PCI_IOV is not set + +## +## file: drivers/scsi/Kconfig +## +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_HPTIOP is not set + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic79xx +## +# CONFIG_SCSI_AIC79XX is not set + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx +## +# CONFIG_SCSI_AIC7XXX is not set + +## +## file: drivers/scsi/aic94xx/Kconfig +## +# CONFIG_SCSI_AIC94XX is not set + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +# CONFIG_MEGARAID_SAS is not set + +## +## file: drivers/scsi/qla2xxx/Kconfig +## +# CONFIG_SCSI_QLA_FC is not set + +## +## file: drivers/scsi/qla4xxx/Kconfig +## +# CONFIG_SCSI_QLA_ISCSI is not set + +## +## file: drivers/thermal/Kconfig +## +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y + +## +## file: lib/xz/Kconfig +## +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y + diff --git a/config/kernelarch-mips/config b/config/kernelarch-mips/config new file mode 100644 index 00000000000..78b9267b197 --- /dev/null +++ b/config/kernelarch-mips/config @@ -0,0 +1,68 @@ +## +## file: arch/mips/Kconfig +## +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_KEXEC=y +CONFIG_SECCOMP=y +CONFIG_PCI=y +# CONFIG_RAPIDIO is not set +#. Ignored in 32-bit configurations +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y + +## +## file: arch/mips/Kconfig.debug +## +CONFIG_EARLY_PRINTK=y + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=y + +## +## file: drivers/net/ethernet/sun/Kconfig +## +# CONFIG_NIU is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m + +## +## file: drivers/video/console/Kconfig +## +# CONFIG_VGA_CONSOLE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y + +## +## file: init/Kconfig +## +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y + diff --git a/config/kernelarch-mips/config.loongson-3 b/config/kernelarch-mips/config.loongson-3 new file mode 100644 index 00000000000..a8235bfc426 --- /dev/null +++ b/config/kernelarch-mips/config.loongson-3 @@ -0,0 +1,97 @@ +## +## file: arch/mips/Kconfig +## +## choice: System type +CONFIG_MACH_LOONGSON64=y +## end choice +## choice: Kernel code model +# CONFIG_32BIT is not set +CONFIG_64BIT=y +## end choice +CONFIG_SMP=y +CONFIG_HOTPLUG_CPU=y + +## +## file: arch/mips/loongson64/Kconfig +## +## choice: Machine Type +CONFIG_LOONGSON_MACH3X=y +## end choice + +## +## file: drivers/ata/Kconfig +## +CONFIG_SATA_AHCI=y + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y + +## +## file: drivers/i2c/algos/Kconfig +## +CONFIG_I2C_ALGOBIT=y + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NE2K_PCI=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/pci/pcie/Kconfig +## +# CONFIG_PCIEPORTBUS is not set + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_CMOS=y + +## +## file: drivers/tty/serial/8250/Kconfig +## +# CONFIG_SERIAL_8250_EXTENDED is not set + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_RADEON=y + +## +## file: kernel/Kconfig.preempt +## +## choice: Preemption Model +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +## end choice + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_INTEL=m + diff --git a/config/kernelarch-mips/config.malta b/config/kernelarch-mips/config.malta new file mode 100644 index 00000000000..c079ae58ff9 --- /dev/null +++ b/config/kernelarch-mips/config.malta @@ -0,0 +1,532 @@ +## +## file: arch/mips/Kconfig +## +## choice: System type +CONFIG_MIPS_MALTA=y +## end choice +## choice: Kernel page size +CONFIG_PAGE_SIZE_4KB=y +## end choice + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_HPT366=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_SX8=m +CONFIG_CDROM_PKTCDVD=m + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +CONFIG_PPDEV=m + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_MGA=m + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_PCF8591=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=m + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_PIIX4=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m + +## +## file: drivers/input/gameport/Kconfig +## +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_VSXXXAA=m + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_SM501=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +## +## file: drivers/mtd/devices/Kconfig +## +CONFIG_MTD_PMC551=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_BLOCK2MTD=m + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PCI=m + +## +## file: drivers/mtd/nand/Kconfig +## +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m + +## +## file: drivers/net/Kconfig +## +CONFIG_NET_FC=y + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NE2K_PCI=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_AMD8111_ETH=m + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_B44=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +CONFIG_DM9102=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_SUNDANCE=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_VIA_RHINE=m + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_IRTTY_SIR=m +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_VLSI_FIR=m + +## +## file: drivers/net/wireless/atmel/Kconfig +## +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_PCI_HERMES=m + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m + +## +## file: drivers/net/wireless/zydas/Kconfig +## +CONFIG_USB_ZD1201=m + +## +## file: drivers/pci/pcie/Kconfig +## +# CONFIG_PCIEPORTBUS is not set + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_M48T86=m + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_DEBUG=m + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_JSM=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB_USS720=m + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_CIRRUS=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_S1D13XXX=m +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_SAVAGE=m +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_VOODOO1=m +CONFIG_FB_TRIDENT=m +CONFIG_FB_VIRTUAL=m + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_USBPCWATCHDOG=m + +## +## file: net/ax25/Kconfig +## +CONFIG_HAMRADIO=y +CONFIG_AX25=m +CONFIG_NETROM=m +CONFIG_ROSE=m + +## +## file: net/decnet/Kconfig +## +CONFIG_DECNET=m + +## +## file: net/decnet/netfilter/Kconfig +## +CONFIG_DECNET_NF_GRABULATOR=m + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m + +## +## file: net/irda/Kconfig +## +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y + +## +## file: net/irda/ircomm/Kconfig +## +CONFIG_IRCOMM=m + +## +## file: net/irda/irlan/Kconfig +## +CONFIG_IRLAN=m + +## +## file: net/irda/irnet/Kconfig +## +CONFIG_IRNET=m + +## +## file: net/lapb/Kconfig +## +CONFIG_LAPB=m + +## +## file: sound/drivers/Kconfig +## +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m + diff --git a/config/kernelarch-mips/config.mips32r2 b/config/kernelarch-mips/config.mips32r2 new file mode 100644 index 00000000000..88f2c05a9e7 --- /dev/null +++ b/config/kernelarch-mips/config.mips32r2 @@ -0,0 +1,10 @@ +## +## file: arch/mips/Kconfig +## +## choice: CPU type +CONFIG_CPU_MIPS32_R2=y +## end choice +## choice: Kernel code model +CONFIG_32BIT=y +## end choice + diff --git a/config/kernelarch-mips/config.mips32r6 b/config/kernelarch-mips/config.mips32r6 new file mode 100644 index 00000000000..c95ffabb9f6 --- /dev/null +++ b/config/kernelarch-mips/config.mips32r6 @@ -0,0 +1,10 @@ +## +## file: arch/mips/Kconfig +## +## choice: CPU type +CONFIG_CPU_MIPS32_R6=y +## end choice +## choice: Kernel code model +CONFIG_32BIT=y +## end choice + diff --git a/config/kernelarch-mips/config.mips64r2 b/config/kernelarch-mips/config.mips64r2 new file mode 100644 index 00000000000..1c1bed181bb --- /dev/null +++ b/config/kernelarch-mips/config.mips64r2 @@ -0,0 +1,10 @@ +## +## file: arch/mips/Kconfig +## +## choice: CPU type +CONFIG_CPU_MIPS64_R2=y +## end choice +## choice: Kernel code model +CONFIG_64BIT=y +## end choice + diff --git a/config/kernelarch-mips/config.mips64r6 b/config/kernelarch-mips/config.mips64r6 new file mode 100644 index 00000000000..2cd32b0b5d9 --- /dev/null +++ b/config/kernelarch-mips/config.mips64r6 @@ -0,0 +1,10 @@ +## +## file: arch/mips/Kconfig +## +## choice: CPU type +CONFIG_CPU_MIPS64_R6=y +## end choice +## choice: Kernel code model +CONFIG_64BIT=y +## end choice + diff --git a/config/kernelarch-mips/config.octeon b/config/kernelarch-mips/config.octeon new file mode 100644 index 00000000000..f889f9efa45 --- /dev/null +++ b/config/kernelarch-mips/config.octeon @@ -0,0 +1,180 @@ +## +## file: arch/mips/Kconfig +## +## choice: System type +CONFIG_CAVIUM_OCTEON_SOC=y +## end choice +## choice: Kernel code model +# CONFIG_32BIT is not set +CONFIG_64BIT=y +## end choice +CONFIG_SMP=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_NR_CPUS=32 + +## +## file: arch/mips/cavium-octeon/Kconfig +## +CONFIG_CAVIUM_CN63XXP1=y +CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=1 +# CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set +CONFIG_CAVIUM_OCTEON_LOCK_L2=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y +CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_MD5_OCTEON=m +CONFIG_CRYPTO_SHA1_OCTEON=m +CONFIG_CRYPTO_SHA256_OCTEON=m +CONFIG_CRYPTO_SHA512_OCTEON=m + +## +## file: drivers/ata/Kconfig +## +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_AHCI_OCTEON=m +CONFIG_PATA_OCTEON_CF=y + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_OCTEON=m + +## +## file: drivers/edac/Kconfig +## +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_OCTEON_PC=m +CONFIG_EDAC_OCTEON_L2C=m +CONFIG_EDAC_OCTEON_LMC=m +CONFIG_EDAC_OCTEON_PCI=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_OCTEON=y + +## +## file: drivers/input/keyboard/Kconfig +## +# CONFIG_KEYBOARD_ATKBD is not set + +## +## file: drivers/input/mouse/Kconfig +## +# CONFIG_MOUSE_PS2 is not set + +## +## file: drivers/input/serio/Kconfig +## +# CONFIG_SERIO_I8042 is not set + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_INPUT_TOUCHSCREEN is not set + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_AMDSTD=y + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_PHYSMAP=y + +## +## file: drivers/net/ethernet/cavium/Kconfig +## +CONFIG_OCTEON_MGMT_ETHERNET=y + +## +## file: drivers/net/phy/Kconfig +## +CONFIG_MDIO_OCTEON=y + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_DS1307=y + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_OCTEON=y + +## +## file: drivers/staging/octeon/Kconfig +## +CONFIG_OCTEON_ETHERNET=y + +## +## file: drivers/staging/octeon-usb/Kconfig +## +CONFIG_OCTEON_USB=y + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +CONFIG_SERIAL_8250_DW=y + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_OCTEON_EHCI=y +CONFIG_USB_OCTEON_OHCI=y + +## +## file: drivers/video/fbdev/Kconfig +## +# CONFIG_FB is not set + +## +## file: kernel/power/Kconfig +## +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_SPARSEMEM_MANUAL=y +## end choice + +## +## file: unknown +## +CONFIG_OCTEON_MMC=m + diff --git a/config/kernelarch-powerpc/config b/config/kernelarch-powerpc/config new file mode 100644 index 00000000000..d78f4690804 --- /dev/null +++ b/config/kernelarch-powerpc/config @@ -0,0 +1,999 @@ +## +## file: arch/powerpc/Kconfig +## +# CONFIG_HOTPLUG_CPU is not set +CONFIG_KEXEC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=ttyS0,9600 console=tty0" +CONFIG_SECCOMP=y +CONFIG_PCI=y +# CONFIG_RAPIDIO is not set +# CONFIG_ADVANCED_OPTIONS is not set + +## +## file: arch/powerpc/Kconfig.debug +## +CONFIG_PPC_DISABLE_WERROR=y +# CONFIG_CODE_PATCHING_SELFTEST is not set +# CONFIG_FTR_FIXUP_SELFTEST is not set +# CONFIG_MSI_BITMAP_SELFTEST is not set +CONFIG_XMON=y +# CONFIG_XMON_DEFAULT is not set +CONFIG_XMON_DISASSEMBLY=y +# CONFIG_BDI_SWITCH is not set +CONFIG_BOOTX_TEXT=y + +## +## file: arch/powerpc/kvm/Kconfig +## +CONFIG_VIRTUALIZATION=y + +## +## file: arch/powerpc/platforms/Kconfig +## +CONFIG_KVM_GUEST=y +CONFIG_RTAS_PROC=y +CONFIG_PPC601_SYNC_FIX=y +CONFIG_TAU=y +# CONFIG_TAU_INT is not set +# CONFIG_TAU_AVERAGE is not set + +## +## file: arch/powerpc/platforms/52xx/Kconfig +## +# CONFIG_PPC_LITE5200 is not set + +## +## file: arch/powerpc/platforms/82xx/Kconfig +## +# CONFIG_PPC_82xx is not set + +## +## file: arch/powerpc/platforms/83xx/Kconfig +## +# CONFIG_PPC_83xx is not set + +## +## file: arch/powerpc/platforms/86xx/Kconfig +## +# CONFIG_PPC_86xx is not set + +## +## file: arch/powerpc/platforms/powermac/Kconfig +## +CONFIG_PPC_PMAC=y + +## +## file: block/partitions/Kconfig +## +CONFIG_AMIGA_PARTITION=y +CONFIG_MAC_PARTITION=y + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_SHA1_PPC=m + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=y +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_MACIO=y +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_PCMCIA=m + +## +## file: drivers/atm/Kconfig +## +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +CONFIG_ATM_ZATM_DEBUG=y +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_SX8=m +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIVHCI=m + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +CONFIG_NVRAM=y +CONFIG_DTLK=m +CONFIG_APPLICOM=m + +## +## file: drivers/char/agp/Kconfig +## +#. Workaround +CONFIG_AGP=y +#. Workaround +CONFIG_AGP_UNINORTH=y + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_POWERNV=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m + +## +## file: drivers/cpufreq/Kconfig.powerpc +## +CONFIG_CPU_FREQ_PMAC=y + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_MGA=m +# CONFIG_DRM_SIS is not set + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m + +## +## file: drivers/gpu/drm/nouveau/Kconfig +## +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +## +## file: drivers/hid/Kconfig +## +CONFIG_HID_APPLEIR=m + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=m + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set + +## +## file: drivers/i2c/busses/Kconfig +## +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_HYDRA=m +#. This isn't auto-loaded (#713943) +CONFIG_I2C_POWERMAC=y +CONFIG_I2C_MPC=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_SCx200_ACB=m + +## +## file: drivers/input/gameport/Kconfig +## +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=m +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_UINPUT=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +# CONFIG_MOUSE_SERIAL is not set +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +# CONFIG_MOUSE_VSXXXAA is not set + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=m +CONFIG_SERIO_I8042=m +CONFIG_SERIO_SERPORT=m +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=m +CONFIG_SERIO_RAW=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y + +## +## file: drivers/isdn/Kconfig +## +CONFIG_ISDN=y +CONFIG_ISDN_CAPI=m + +## +## file: drivers/isdn/capi/Kconfig +## +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y + +## +## file: drivers/isdn/hardware/avm/Kconfig +## +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +## +## file: drivers/isdn/hardware/eicon/Kconfig +## +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_PMU=y +CONFIG_ADB_PMU_LED=y +# CONFIG_ADB_PMU_LED_DISK is not set +CONFIG_PMAC_SMU=y +# CONFIG_PMAC_APM_EMU is not set +CONFIG_PMAC_MEDIABAY=y +CONFIG_PMAC_BACKLIGHT=y +CONFIG_ADB_MACIO=y +CONFIG_INPUT_ADBHID=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_THERM_WINDTUNNEL=m +CONFIG_THERM_ADT746X=m +CONFIG_WINDFARM=m +CONFIG_ANSLCD=m +CONFIG_PMAC_RACKMETER=m + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_USB_DSBR=m +CONFIG_RADIO_MAXIRADIO=m + +## +## file: drivers/misc/Kconfig +## +CONFIG_PHANTOM=m +CONFIG_HP_ILO=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mtd/Kconfig +## +# CONFIG_MTD is not set + +## +## file: drivers/net/Kconfig +## +CONFIG_NET_FC=y + +## +## file: drivers/net/arcnet/Kconfig +## +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +# CONFIG_ARCNET_COM90xx is not set +CONFIG_ARCNET_COM90xxIO=m +# CONFIG_ARCNET_RIM_I is not set +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM20020_CS=m + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_PCMCIA_AXNET=m +CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +# CONFIG_AMD8111_ETH is not set +CONFIG_PCMCIA_NMCLAN=m + +## +## file: drivers/net/ethernet/apple/Kconfig +## +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_BMAC=m + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_B44=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_PCMCIA_XIRCOM=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y + +## +## file: drivers/net/ethernet/fujitsu/Kconfig +## +CONFIG_PCMCIA_FMVJ18X=m + +## +## file: drivers/net/ethernet/hp/Kconfig +## +# CONFIG_HP100 is not set + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/marvell/Kconfig +## +CONFIG_MV643XX_ETH=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/nvidia/Kconfig +## +# CONFIG_FORCEDETH is not set + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_PCMCIA_SMC91C92=m +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m + +## +## file: drivers/net/ethernet/ti/Kconfig +## +CONFIG_TLAN=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y + +## +## file: drivers/net/ethernet/xircom/Kconfig +## +CONFIG_PCMCIA_XIRC2PS=m + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/hippi/Kconfig +## +CONFIG_HIPPI=y +# CONFIG_ROADRUNNER is not set + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_IRTTY_SIR=m +# CONFIG_DONGLE is not set +CONFIG_USB_IRDA=m +# CONFIG_SIGMATEL_FIR is not set +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +# CONFIG_TOSHIBA_FIR is not set +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +# CONFIG_VLSI_FIR is not set +CONFIG_VIA_FIR=m + +## +## file: drivers/net/wan/Kconfig +## +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 + +## +## file: drivers/net/wireless/Kconfig +## +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_WL3501=m + +## +## file: drivers/net/wireless/atmel/Kconfig +## +CONFIG_ATMEL=m +# CONFIG_PCI_ATMEL is not set +CONFIG_PCMCIA_ATMEL=m + +## +## file: drivers/net/wireless/cisco/Kconfig +## +CONFIG_AIRO_CS=m + +## +## file: drivers/net/wireless/intel/ipw2x00/Kconfig +## +# CONFIG_IPW2100 is not set + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +CONFIG_HERMES=m +CONFIG_APPLE_AIRPORT=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m + +## +## file: drivers/net/wireless/zydas/Kconfig +## +CONFIG_USB_ZD1201=m + +## +## file: drivers/pci/hotplug/Kconfig +## +# CONFIG_HOTPLUG_PCI is not set + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_PCCARD=m +CONFIG_PCMCIA=m +CONFIG_CARDBUS=y +CONFIG_YENTA=m +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_TCIC=m +# CONFIG_PCMCIA_DEBUG is not set + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_BATTERY_PMU=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_GENERIC=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +CONFIG_SCSI_IPS=m +# CONFIG_SCSI_INITIO is not set +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MAC53C94=m + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +# CONFIG_MEGARAID_LEGACY is not set + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_AHA152X=m +# CONFIG_PCMCIA_FDOMAIN is not set +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +## +## file: drivers/tty/hvc/Kconfig +## +CONFIG_HVC_RTAS=y + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +CONFIG_SERIAL_JSM=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +CONFIG_USB_OHCI_HCD_PPC_OF_LE=y +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +## +## file: drivers/video/console/Kconfig +## +CONFIG_VGA_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_CIRRUS=m +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +CONFIG_FB_OF=y +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_VGA16 is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_VOODOO1=m +CONFIG_FB_TRIDENT=m +CONFIG_FB_IBM_GXT4500=m +# CONFIG_FB_VIRTUAL is not set + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_WATCHDOG_RTAS=m +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_USBPCWATCHDOG=m + +## +## file: init/Kconfig +## +CONFIG_SGETMASK_SYSCALL=y + +## +## file: lib/Kconfig.debug +## +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set + +## +## file: lib/xz/Kconfig +## +CONFIG_XZ_DEC_POWERPC=y + +## +## file: net/ax25/Kconfig +## +CONFIG_HAMRADIO=y +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +## +## file: net/decnet/Kconfig +## +CONFIG_DECNET=m +CONFIG_DECNET_ROUTER=y + +## +## file: net/decnet/netfilter/Kconfig +## +CONFIG_DECNET_NF_GRABULATOR=m + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m +CONFIG_IPX_INTERN=y + +## +## file: net/irda/Kconfig +## +CONFIG_IRDA=m +CONFIG_IRDA_ULTRA=y +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +## +## file: net/irda/ircomm/Kconfig +## +CONFIG_IRCOMM=m + +## +## file: net/irda/irlan/Kconfig +## +CONFIG_IRLAN=m + +## +## file: net/irda/irnet/Kconfig +## +CONFIG_IRNET=m + +## +## file: net/lapb/Kconfig +## +CONFIG_LAPB=m + +## +## file: sound/aoa/Kconfig +## +CONFIG_SND_AOA=m + +## +## file: sound/aoa/codecs/Kconfig +## +CONFIG_SND_AOA_ONYX=m +CONFIG_SND_AOA_TAS=m +CONFIG_SND_AOA_TOONIE=m + +## +## file: sound/aoa/fabrics/Kconfig +## +CONFIG_SND_AOA_FABRIC_LAYOUT=m + +## +## file: sound/aoa/soundbus/Kconfig +## +CONFIG_SND_AOA_SOUNDBUS=m +CONFIG_SND_AOA_SOUNDBUS_I2S=m + +## +## file: sound/drivers/Kconfig +## +# CONFIG_SND_DUMMY is not set +CONFIG_SND_VIRMIDI=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_ALS4000=m +# CONFIG_SND_ALI5451 is not set +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_INTEL=m + +## +## file: sound/ppc/Kconfig +## +CONFIG_SND_POWERMAC=m +CONFIG_SND_POWERMAC_AUTO_DRC=y + diff --git a/config/kernelarch-powerpc/config-arch-64 b/config/kernelarch-powerpc/config-arch-64 new file mode 100644 index 00000000000..0bd0fa227c1 --- /dev/null +++ b/config/kernelarch-powerpc/config-arch-64 @@ -0,0 +1,182 @@ +## +## file: arch/powerpc/Kconfig +## +CONFIG_PPC_TRANSACTIONAL_MEM=y +# CONFIG_CRASH_DUMP is not set +CONFIG_IRQ_ALL_CPUS=y +CONFIG_NUMA=y +## choice: Page size +CONFIG_PPC_64K_PAGES=y +## end choice +CONFIG_SCHED_SMT=y +CONFIG_KERNEL_START=0xc000000000000000 + +## +## file: arch/powerpc/kvm/Kconfig +## +CONFIG_KVM_BOOK3S_64=m +CONFIG_KVM_BOOK3S_64_HV=m +CONFIG_KVM_BOOK3S_64_PR=m +CONFIG_KVM_XICS=y + +## +## file: arch/powerpc/platforms/Kconfig +## +CONFIG_RTAS_PROC=y +CONFIG_RTAS_FLASH=m +CONFIG_IBMEBUS=y + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +CONFIG_PPC64=y +CONFIG_ALTIVEC=y +CONFIG_VSX=y +CONFIG_SMP=y + +## +## file: arch/powerpc/platforms/powernv/Kconfig +## +CONFIG_OPAL_PRD=m + +## +## file: arch/powerpc/platforms/pseries/Kconfig +## +CONFIG_PPC_PSERIES=y +CONFIG_PPC_SPLPAR=y +CONFIG_SCANLOG=m +# CONFIG_LPARCFG is not set + +## +## file: block/partitions/Kconfig +## +CONFIG_AIX_PARTITION=y + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_AMD=m + +## +## file: drivers/block/Kconfig +## +# CONFIG_MAC_FLOPPY is not set +CONFIG_BLK_DEV_RSXX=m + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_DEV_VMX=y + +## +## file: drivers/crypto/vmx/Kconfig +## +CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m + +## +## file: drivers/gpu/drm/ast/Kconfig +## +CONFIG_DRM_AST=m + +## +## file: drivers/iommu/Kconfig +## +CONFIG_SPAPR_TCE_IOMMU=y + +## +## file: drivers/misc/genwqe/Kconfig +## +CONFIG_GENWQE=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=m + +## +## file: drivers/mtd/devices/Kconfig +## +CONFIG_MTD_POWERNV_FLASH=m + +## +## file: drivers/net/ethernet/ibm/Kconfig +## +CONFIG_IBMVETH=m +CONFIG_EHEA=m + +## +## file: drivers/net/ethernet/ibm/emac/Kconfig +## +CONFIG_IBM_EMAC=m +CONFIG_IBM_EMAC_RXB=128 +CONFIG_IBM_EMAC_TXB=64 +CONFIG_IBM_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 +CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0 +# CONFIG_IBM_EMAC_DEBUG is not set + +## +## file: drivers/net/ethernet/marvell/Kconfig +## +# CONFIG_MV643XX_ETH is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_RPA=m +CONFIG_HOTPLUG_PCI_RPA_DLPAR=m + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_IBMVSCSI=m +CONFIG_SCSI_IBMVFC=m +CONFIG_SCSI_QLOGIC_1280=m + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_LEGACY=m + +## +## file: drivers/tty/hvc/Kconfig +## +CONFIG_HVC_CONSOLE=y +CONFIG_HVCS=m + +## +## file: drivers/tty/serial/Kconfig +## +# CONFIG_SERIAL_ICOM is not set + +## +## file: drivers/vfio/Kconfig +## +CONFIG_VFIO=m + +## +## file: drivers/vfio/pci/Kconfig +## +CONFIG_VFIO_PCI=m + +## +## file: drivers/video/fbdev/Kconfig +## +# CONFIG_FB_IMSTT is not set + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_WATCHDOG_RTAS=m + +## +## file: mm/Kconfig +## +## choice: Memory model +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +## end choice +CONFIG_SPARSEMEM_VMEMMAP=y + diff --git a/config/kernelarch-powerpc/config-arch-64-be b/config/kernelarch-powerpc/config-arch-64-be new file mode 100644 index 00000000000..71259df006a --- /dev/null +++ b/config/kernelarch-powerpc/config-arch-64-be @@ -0,0 +1,106 @@ +## +## file: arch/powerpc/Kconfig +## +CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0" + +## +## file: arch/powerpc/platforms/cell/Kconfig +## +CONFIG_PPC_IBM_CELL_BLADE=y +CONFIG_SPU_FS=m +CONFIG_CBE_RAS=y +CONFIG_CBE_THERM=m + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +CONFIG_NR_CPUS=32 + +## +## file: arch/powerpc/platforms/maple/Kconfig +## +CONFIG_PPC_MAPLE=y + +## +## file: arch/powerpc/platforms/pasemi/Kconfig +## +CONFIG_PPC_PASEMI=y +CONFIG_PPC_PASEMI_MDIO=m + +## +## file: arch/powerpc/platforms/ps3/Kconfig +## +CONFIG_PPC_PS3=y +CONFIG_PS3_ADVANCED=y +CONFIG_PS3_HTAB_SIZE=20 +# CONFIG_PS3_DYNAMIC_DMA is not set +CONFIG_PS3_PS3AV=y +CONFIG_PS3_SYS_MANAGER=y +CONFIG_PS3_DISK=m +CONFIG_PS3_ROM=m +CONFIG_PS3_FLASH=m +CONFIG_PS3_VRAM=m +CONFIG_PS3_LPM=m + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_PASEMI=m + +## +## file: drivers/cpufreq/Kconfig.powerpc +## +CONFIG_CPU_FREQ_CBE=m +CONFIG_CPU_FREQ_PMAC64=y +#. It's a bool +CONFIG_PPC_PASEMI_CPUFREQ=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_PASEMI=m + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM72=m +CONFIG_WINDFARM_RM31=m +CONFIG_WINDFARM_PM91=m +CONFIG_WINDFARM_PM112=m +CONFIG_WINDFARM_PM121=m + +## +## file: drivers/net/ethernet/pasemi/Kconfig +## +CONFIG_PASEMI_MAC=m + +## +## file: drivers/net/ethernet/toshiba/Kconfig +## +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_SPIDER_NET=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_PS3=m + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_PS3=y +CONFIG_FB_PS3_DEFAULT_SIZE_M=9 + +## +## file: init/Kconfig +## +CONFIG_SYSFS_SYSCALL=y + +## +## file: sound/ppc/Kconfig +## +CONFIG_SND_PS3=m +CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 + diff --git a/config/kernelarch-powerpc/config-arch-64-le b/config/kernelarch-powerpc/config-arch-64-le new file mode 100644 index 00000000000..4467c30591c --- /dev/null +++ b/config/kernelarch-powerpc/config-arch-64-le @@ -0,0 +1,37 @@ +## +## file: arch/powerpc/Kconfig +## +# CONFIG_CMDLINE_BOOL is not set + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +CONFIG_NR_CPUS=2048 +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice + +## +## file: arch/powerpc/platforms/powermac/Kconfig +## +#. This needs to be explicitly disabled currently (3.15) +# CONFIG_PPC_PMAC is not set + +## +## file: drivers/cpufreq/Kconfig +## +## choice: Default CPUFreq governor +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +## end choice + +## +## file: kernel/power/Kconfig +## +#. See #789070 +# CONFIG_HIBERNATION is not set + diff --git a/config/kernelarch-sparc/config b/config/kernelarch-sparc/config new file mode 100644 index 00000000000..7f2e07da614 --- /dev/null +++ b/config/kernelarch-sparc/config @@ -0,0 +1,627 @@ +## +## file: arch/sparc/Kconfig +## +CONFIG_64BIT=y +CONFIG_SECCOMP=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_SUN_LDOMS=y +CONFIG_PCI=y +CONFIG_SUN_OPENPROMFS=m + +## +## file: block/partitions/Kconfig +## +CONFIG_SUN_PARTITION=y + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_CRC32C_SPARC64=m +CONFIG_CRYPTO_MD5_SPARC64=m +CONFIG_CRYPTO_SHA1_SPARC64=m +CONFIG_CRYPTO_SHA256_SPARC64=m +CONFIG_CRYPTO_SHA512_SPARC64=m +CONFIG_CRYPTO_AES_SPARC64=m +CONFIG_CRYPTO_CAMELLIA_SPARC64=m +CONFIG_CRYPTO_DES_SPARC64=m + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_ALI=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_VIA=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_LEGACY=m + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=y +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_SX8=m +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_SUNVDC=m + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +## +## file: drivers/char/ipmi/Kconfig +## +# CONFIG_IPMI_HANDLER is not set + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_DEV_NIAGARA2=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_MGA=m + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m + +## +## file: drivers/gpu/drm/nouveau/Kconfig +## +CONFIG_DRM_NOUVEAU=m +# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=y + +## +## file: drivers/hwmon/Kconfig +## +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=m +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set + +## +## file: drivers/i2c/busses/Kconfig +## +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +# CONFIG_I2C_PCA_ISA is not set + +## +## file: drivers/input/Kconfig +## +# CONFIG_INPUT_JOYDEV is not set + +## +## file: drivers/input/gameport/Kconfig +## +# CONFIG_GAMEPORT is not set + +## +## file: drivers/input/joystick/Kconfig +## +# CONFIG_INPUT_JOYSTICK is not set + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_SUNKBD=y +# CONFIG_KEYBOARD_XTKBD is not set + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_SPARCSPKR=m +# CONFIG_INPUT_UINPUT is not set + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_SERIAL=y +# CONFIG_MOUSE_VSXXXAA is not set + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_INPUT_TOUCHSCREEN is not set + +## +## file: drivers/media/pci/cx88/Kconfig +## +# CONFIG_VIDEO_CX88 is not set + +## +## file: drivers/media/pci/saa7146/Kconfig +## +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_MXB is not set + +## +## file: drivers/media/pci/zoran/Kconfig +## +# CONFIG_VIDEO_ZORAN is not set + +## +## file: drivers/media/radio/Kconfig +## +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_MAXIRADIO is not set + +## +## file: drivers/mmc/Kconfig +## +# CONFIG_MMC is not set + +## +## file: drivers/mtd/Kconfig +## +# CONFIG_MTD is not set + +## +## file: drivers/net/Kconfig +## +CONFIG_NET_FC=y + +## +## file: drivers/net/arcnet/Kconfig +## +# CONFIG_ARCNET is not set + +## +## file: drivers/net/ethernet/Kconfig +## +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NE2K_PCI=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +# CONFIG_AMD8111_ETH is not set +CONFIG_SUNLANCE=m + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_B44=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +# CONFIG_DE2104X is not set +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_WINBOND_840=m +CONFIG_DM9102=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/nvidia/Kconfig +## +# CONFIG_FORCEDETH is not set + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +# CONFIG_8139CP is not set +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_HAPPYMEAL=m +CONFIG_SUNBMAC=m +CONFIG_SUNQE=m +CONFIG_SUNGEM=m +CONFIG_SUNVNET=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/hippi/Kconfig +## +# CONFIG_HIPPI is not set + +## +## file: drivers/net/plip/Kconfig +## +CONFIG_PLIP=m + +## +## file: drivers/net/wan/Kconfig +## +# CONFIG_WAN is not set + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_PCIE=m + +## +## file: drivers/parport/Kconfig +## +CONFIG_PARPORT_SUNBPP=m + +## +## file: drivers/sbus/char/Kconfig +## +CONFIG_SUN_OPENPROMIO=y +CONFIG_OBP_FLASH=m +CONFIG_BBC_I2C=m +CONFIG_ENVCTRL=m +CONFIG_DISPLAY7SEG=m + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_DMX3191D=m +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +CONFIG_SCSI_INITIO=m +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGICPTI=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_SUNESP=m + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_SUNZILOG=y +CONFIG_SERIAL_SUNZILOG_CONSOLE=y +CONFIG_SERIAL_SUNSU=y +CONFIG_SERIAL_SUNSU_CONSOLE=y +CONFIG_SERIAL_SUNSAB=y +CONFIG_SERIAL_SUNSAB_CONSOLE=y +CONFIG_SERIAL_SUNHV=y +CONFIG_SERIAL_JSM=m + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m +# CONFIG_USB_USS720 is not set + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_UHCI_HCD=m +# CONFIG_USB_SL811_HCD is not set + +## +## file: drivers/video/backlight/Kconfig +## +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +## +## file: drivers/video/console/Kconfig +## +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_CIRRUS is not set +CONFIG_FB_PM2=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_SBUS=y +# CONFIG_FB_BW2 is not set +# CONFIG_FB_CG3 is not set +CONFIG_FB_CG6=y +CONFIG_FB_FFB=y +# CONFIG_FB_TCX is not set +# CONFIG_FB_CG14 is not set +# CONFIG_FB_P9100 is not set +# CONFIG_FB_LEO is not set +CONFIG_FB_XVR500=y +CONFIG_FB_XVR2500=y +CONFIG_FB_XVR1000=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_MATROX is not set +CONFIG_FB_RADEON=y +# CONFIG_FB_RADEON_I2C is not set +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=y +CONFIG_FB_ATY=y +CONFIG_FB_ATY_CT=y +# CONFIG_FB_ATY_GENERIC_LCD is not set +CONFIG_FB_ATY_GX=y +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_VIRTUAL is not set + +## +## file: drivers/w1/Kconfig +## +# CONFIG_W1 is not set + +## +## file: init/Kconfig +## +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y + +## +## file: lib/xz/Kconfig +## +CONFIG_XZ_DEC_SPARC=y + +## +## file: mm/Kconfig +## +## choice: Memory model +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +## end choice + +## +## file: net/ax25/Kconfig +## +# CONFIG_HAMRADIO is not set + +## +## file: net/decnet/Kconfig +## +CONFIG_DECNET=m +CONFIG_DECNET_ROUTER=y + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set + +## +## file: net/irda/Kconfig +## +# CONFIG_IRDA is not set + +## +## file: net/lapb/Kconfig +## +# CONFIG_LAPB is not set + +## +## file: sound/drivers/Kconfig +## +# CONFIG_SND_DUMMY is not set +CONFIG_SND_VIRMIDI=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_ALI5451=m +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +CONFIG_SND_CMIPCI=m +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +CONFIG_SND_EMU10K1=m +# CONFIG_SND_EMU10K1X is not set +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +CONFIG_SND_MAESTRO3=m +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +## +## file: sound/pci/hda/Kconfig +## +# CONFIG_SND_HDA_INTEL is not set + +## +## file: sound/sparc/Kconfig +## +CONFIG_SND_SUN_AMD7930=m +CONFIG_SND_SUN_CS4231=m +CONFIG_SND_SUN_DBRI=m + diff --git a/config/kernelarch-sparc/config-smp b/config/kernelarch-sparc/config-smp new file mode 100644 index 00000000000..f6412c26ed8 --- /dev/null +++ b/config/kernelarch-sparc/config-smp @@ -0,0 +1,7 @@ +## +## file: arch/sparc/Kconfig +## +CONFIG_SMP=y +CONFIG_NR_CPUS=256 +CONFIG_SCHED_SMT=y + diff --git a/config/kernelarch-sparc/config-up b/config/kernelarch-sparc/config-up new file mode 100644 index 00000000000..758621713fd --- /dev/null +++ b/config/kernelarch-sparc/config-up @@ -0,0 +1,5 @@ +## +## file: arch/sparc/Kconfig +## +# CONFIG_SMP is not set + diff --git a/config/kernelarch-x86/config b/config/kernelarch-x86/config new file mode 100644 index 00000000000..3a87783c45a --- /dev/null +++ b/config/kernelarch-x86/config @@ -0,0 +1,2057 @@ +## +## file: arch/Kconfig +## +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set + +## +## file: arch/x86/Kconfig +## +CONFIG_ZONE_DMA=y +CONFIG_X86_MPPARSE=y +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_X86_INTEL_LPSS=y +CONFIG_X86_AMD_PLATFORM_DEVICE=y +CONFIG_IOSF_MBI=m +# CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_QUEUED_LOCK_STAT is not set +CONFIG_KVM_GUEST=y +# CONFIG_KVM_DEBUG_FS is not set +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_HPET_TIMER=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +# CONFIG_X86_ANCIENT_MCE is not set +CONFIG_X86_MCE_INJECT=m +CONFIG_X86_16BIT=y +CONFIG_I8K=m +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_NODES_SHIFT=6 +# CONFIG_ARCH_MEMORY_PROBE is not set +CONFIG_X86_PMEM_LEGACY=m +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW=64 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_RANDOM=y +CONFIG_X86_SMAP=y +CONFIG_X86_INTEL_MPX=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_EFI_SECURE_BOOT_SECURELEVEL=y +CONFIG_SECCOMP=y +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +# CONFIG_COMPAT_VDSO is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y +CONFIG_PCI=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_RAPIDIO is not set +#. Doesn't support handover; see #822575 +# CONFIG_X86_SYSFB is not set +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=y + +## +## file: arch/x86/Kconfig.cpu +## +# CONFIG_PROCESSOR_SELECT is not set + +## +## file: arch/x86/Kconfig.debug +## +# CONFIG_X86_VERBOSE_BOOTUP is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_EARLY_PRINTK_EFI=y +# CONFIG_X86_PTDUMP is not set +# CONFIG_EFI_PGT_DUMP is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_DEBUG_WX=y +CONFIG_DEBUG_SET_MODULE_RONX=y +# CONFIG_DEBUG_NX_TEST is not set +CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_IOMMU_DEBUG is not set +# CONFIG_IOMMU_STRESS is not set +# CONFIG_X86_DECODER_SELFTEST is not set +## choice: IO delay type +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +## end choice +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set + +## +## file: arch/x86/events/Kconfig +## +CONFIG_PERF_EVENTS_INTEL_UNCORE=m +CONFIG_PERF_EVENTS_INTEL_RAPL=m +CONFIG_PERF_EVENTS_INTEL_CSTATE=m +CONFIG_PERF_EVENTS_AMD_POWER=m + +## +## file: arch/x86/kvm/Kconfig +## +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +# CONFIG_KVM_MMU_AUDIT is not set +CONFIG_KVM_DEVICE_ASSIGNMENT=y + +## +## file: arch/x86/ras/Kconfig +## +# CONFIG_MCE_AMD_INJ is not set + +## +## file: arch/x86/xen/Kconfig +## +CONFIG_XEN=y +# CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_PVH=y + +## +## file: block/partitions/Kconfig +## +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y + +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32_PCLMUL=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_AES_NI_INTEL=m + +## +## file: drivers/acpi/Kconfig +## +CONFIG_ACPI=y +# CONFIG_ACPI_PROCFS_POWER is not set +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +CONFIG_ACPI_THERMAL=m +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_MEMORY=y +CONFIG_ACPI_SBS=m +CONFIG_ACPI_HED=m +# CONFIG_ACPI_CUSTOM_METHOD is not set +CONFIG_ACPI_EXTLOG=y + +## +## file: drivers/acpi/apei/Kconfig +## +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +# CONFIG_ACPI_APEI_EINJ is not set +# CONFIG_ACPI_APEI_ERST_DEBUG is not set + +## +## file: drivers/acpi/dptf/Kconfig +## +CONFIG_DPTF_POWER=m + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_RZ1000=m + +## +## file: drivers/atm/Kconfig +## +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y + +## +## file: drivers/auxdisplay/Kconfig +## +CONFIG_KS0108=m +CONFIG_KS0108_PORT=0x378 +CONFIG_KS0108_DELAY=2 + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_SX8=m +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set + +## +## file: drivers/bluetooth/Kconfig +## +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIVHCI=m + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +CONFIG_NVRAM=m +CONFIG_DTLK=m +CONFIG_R3964=m +CONFIG_APPLICOM=m +CONFIG_MWAVE=m +CONFIG_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_HPET=y +CONFIG_HPET_MMAP=y +CONFIG_HPET_MMAP_DEFAULT=y + +## +## file: drivers/char/agp/Kconfig +## +#. Workaround +CONFIG_AGP=y +#. Workaround +CONFIG_AGP_AMD64=y +#. Workaround +CONFIG_AGP_INTEL=y +#. Workaround +CONFIG_AGP_SIS=y +#. Workaround +CONFIG_AGP_VIA=y + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m + +## +## file: drivers/char/ipmi/Kconfig +## +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m + +## +## file: drivers/char/tpm/Kconfig +## +CONFIG_TCG_TPM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_INFINEON=m +CONFIG_TCG_TIS_I2C_NUVOTON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_XEN=m +CONFIG_TCG_CRB=m + +## +## file: drivers/char/tpm/st33zp24/Kconfig +## +CONFIG_TCG_TIS_ST33ZP24_I2C=m + +## +## file: drivers/cpufreq/Kconfig +## +## choice: Default CPUFreq governor +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +## end choice + +## +## file: drivers/cpufreq/Kconfig.x86 +## +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_AMD_FREQ_SENSITIVITY=m +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +## +## file: drivers/cpuidle/Kconfig +## +CONFIG_CPU_IDLE=y + +## +## file: drivers/crypto/Kconfig +## +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_CCP=y + +## +## file: drivers/crypto/ccp/Kconfig +## +CONFIG_CRYPTO_DEV_CCP_DD=m +CONFIG_CRYPTO_DEV_CCP_CRYPTO=m + +## +## file: drivers/crypto/qat/Kconfig +## +CONFIG_CRYPTO_DEV_QAT_DH895xCC=m +CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y +CONFIG_INTEL_IDMA64=m +CONFIG_INTEL_IOATDMA=m + +## +## file: drivers/dma/dw/Kconfig +## +CONFIG_DW_DMAC=m + +## +## file: drivers/edac/Kconfig +## +CONFIG_EDAC=y +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_AMD64=m +# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_IE31200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m +CONFIG_EDAC_AMD8131=m +CONFIG_EDAC_AMD8111=m + +## +## file: drivers/firmware/Kconfig +## +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=y + +## +## file: drivers/firmware/efi/Kconfig +## +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_EFI_FAKE_MEMMAP is not set + +## +## file: drivers/firmware/google/Kconfig +## +# CONFIG_GOOGLE_FIRMWARE is not set + +## +## file: drivers/gpio/Kconfig +## +CONFIG_GPIOLIB=y +# CONFIG_GPIO_ICH is not set +# CONFIG_GPIO_LYNXPOINT is not set +# CONFIG_GPIO_F7188X is not set +# CONFIG_GPIO_SCH is not set +CONFIG_GPIO_KEMPLD=m +# CONFIG_GPIO_INTEL_MID is not set +CONFIG_GPIO_ML_IOH=m + +## +## file: drivers/gpu/drm/Kconfig +## +CONFIG_DRM=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +# CONFIG_DRM_I810 is not set +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m + +## +## file: drivers/gpu/drm/amd/amdgpu/Kconfig +## +# CONFIG_DRM_AMDGPU_CIK is not set +CONFIG_DRM_AMDGPU_USERPTR=y + +## +## file: drivers/gpu/drm/amd/amdkfd/Kconfig +## +CONFIG_HSA_AMD=m + +## +## file: drivers/gpu/drm/ast/Kconfig +## +CONFIG_DRM_AST=m + +## +## file: drivers/gpu/drm/gma500/Kconfig +## +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_MEDFIELD=y + +## +## file: drivers/gpu/drm/i2c/Kconfig +## +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m + +## +## file: drivers/gpu/drm/i915/Kconfig +## +CONFIG_DRM_I915=m +# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set + +## +## file: drivers/gpu/drm/mgag200/Kconfig +## +CONFIG_DRM_MGAG200=m + +## +## file: drivers/gpu/drm/nouveau/Kconfig +## +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +## +## file: drivers/gpu/drm/vmwgfx/Kconfig +## +CONFIG_DRM_VMWGFX=m +CONFIG_DRM_VMWGFX_FBCON=y + +## +## file: drivers/gpu/vga/Kconfig +## +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_SWITCHEROO=y + +## +## file: drivers/hid/Kconfig +## +CONFIG_HID_APPLEIR=m +CONFIG_HID_HYPERV_MOUSE=m + +## +## file: drivers/hid/i2c-hid/Kconfig +## +CONFIG_I2C_HID=m + +## +## file: drivers/hid/intel-ish-hid/Kconfig +## +CONFIG_INTEL_ISH_HID=m + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=m + +## +## file: drivers/hv/Kconfig +## +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_BALLOON=m + +## +## file: drivers/hwmon/Kconfig +## +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DELL_SMM=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_I5500=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MENF21BMC_HWMON=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_ACPI_POWER=m + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISMT=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_SCMI=m +#. Sony Vaio Duo 13". +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_KEMPLD=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_SCx200_ACB=m + +## +## file: drivers/idle/Kconfig +## +CONFIG_INTEL_IDLE=y + +## +## file: drivers/iio/accel/Kconfig +## +CONFIG_BMC150_ACCEL=m +CONFIG_KXCJK1013=m +CONFIG_MMA9551=m +CONFIG_MMA9553=m + +## +## file: drivers/iio/gyro/Kconfig +## +CONFIG_BMG160=m + +## +## file: drivers/iio/imu/Kconfig +## +CONFIG_KMX61=m + +## +## file: drivers/iio/imu/inv_mpu6050/Kconfig +## +CONFIG_INV_MPU6050_I2C=m + +## +## file: drivers/iio/light/Kconfig +## +CONFIG_JSA1212=m +#. Cr-48, Acer AC700 +CONFIG_SENSORS_TSL2563=m + +## +## file: drivers/iio/magnetometer/Kconfig +## +CONFIG_AK8975=m + +## +## file: drivers/iio/pressure/Kconfig +## +CONFIG_BMP280=m + +## +## file: drivers/iio/proximity/Kconfig +## +CONFIG_SX9500=m + +## +## file: drivers/infiniband/hw/usnic/Kconfig +## +CONFIG_INFINIBAND_USNIC=m + +## +## file: drivers/input/gameport/Kconfig +## +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_IDEAPAD_SLIDEBAR=m +CONFIG_INPUT_SOC_BUTTON_ARRAY=m + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_VMMOUSE=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_ELAN_I2C=m +CONFIG_MOUSE_ELAN_I2C_I2C=y +CONFIG_MOUSE_ELAN_I2C_SMBUS=y +CONFIG_MOUSE_VSXXXAA=m + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_HYPERV_KEYBOARD=m + +## +## file: drivers/input/touchscreen/Kconfig +## +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_TSC_SERIO=m + +## +## file: drivers/iommu/Kconfig +## +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_SVM=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_IRQ_REMAP=y + +## +## file: drivers/isdn/Kconfig +## +CONFIG_ISDN=y +CONFIG_ISDN_CAPI=m + +## +## file: drivers/isdn/capi/Kconfig +## +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPIDRV=m + +## +## file: drivers/isdn/hardware/avm/Kconfig +## +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +## +## file: drivers/isdn/hardware/eicon/Kconfig +## +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +## +## file: drivers/leds/Kconfig +## +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_MENF21BMC=m + +## +## file: drivers/media/dvb-frontends/Kconfig +## +CONFIG_DVB_RTL2832_SDR=m + +## +## file: drivers/media/platform/Kconfig +## +CONFIG_VIDEO_VIA_CAMERA=m + +## +## file: drivers/media/radio/Kconfig +## +CONFIG_USB_DSBR=m +CONFIG_RADIO_MAXIRADIO=m + +## +## file: drivers/media/rc/Kconfig +## +CONFIG_IR_ITE_CIR=m +CONFIG_IR_FINTEK=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_WINBOND_CIR=m + +## +## file: drivers/media/tuners/Kconfig +## +CONFIG_MEDIA_TUNER_MSI001=m + +## +## file: drivers/media/usb/as102/Kconfig +## +CONFIG_DVB_AS102=m + +## +## file: drivers/media/usb/go7007/Kconfig +## +# CONFIG_VIDEO_GO7007 is not set + +## +## file: drivers/media/usb/tm6000/Kconfig +## +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +## +## file: drivers/mfd/Kconfig +## +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +CONFIG_LPC_ICH=m +CONFIG_MFD_INTEL_LPSS_ACPI=m +CONFIG_MFD_INTEL_LPSS_PCI=m +CONFIG_MFD_KEMPLD=m +CONFIG_MFD_MENF21BMC=m + +## +## file: drivers/misc/Kconfig +## +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_CS5535_MFGPT=m +CONFIG_HP_ILO=m +CONFIG_VMWARE_BALLOON=m + +## +## file: drivers/misc/mei/Kconfig +## +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +# CONFIG_INTEL_MEI_TXE is not set + +## +## file: drivers/misc/vmw_vmci/Kconfig +## +CONFIG_VMWARE_VMCI=m + +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + +## +## file: drivers/mmc/host/Kconfig +## +CONFIG_MMC_SDHCI_ACPI=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +## +## file: drivers/mtd/devices/Kconfig +## +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_SBC_GXX=m +# CONFIG_MTD_AMD76XROM is not set +# CONFIG_MTD_ICHXROM is not set +# CONFIG_MTD_SCB2_FLASH is not set +CONFIG_MTD_NETtel=m +# CONFIG_MTD_L440GX is not set +CONFIG_MTD_PCI=m + +## +## file: drivers/mtd/nand/Kconfig +## +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set + +## +## file: drivers/net/Kconfig +## +CONFIG_DUMMY=m +CONFIG_NET_FC=y +CONFIG_NET_SB1000=m +CONFIG_VMXNET3=m + +## +## file: drivers/net/arcnet/Kconfig +## +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM20020_CS=m + +## +## file: drivers/net/ethernet/Kconfig +## +# CONFIG_CX_ECAT is not set +CONFIG_FEALNX=m + +## +## file: drivers/net/ethernet/3com/Kconfig +## +CONFIG_NET_VENDOR_3COM=y +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_NET_VENDOR_8390=y +CONFIG_PCMCIA_AXNET=m +CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m + +## +## file: drivers/net/ethernet/adaptec/Kconfig +## +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m + +## +## file: drivers/net/ethernet/altera/Kconfig +## +# CONFIG_ALTERA_TSE is not set + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m +CONFIG_PCMCIA_NMCLAN=m + +## +## file: drivers/net/ethernet/broadcom/Kconfig +## +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m + +## +## file: drivers/net/ethernet/dec/tulip/Kconfig +## +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_PCMCIA_XIRCOM=m + +## +## file: drivers/net/ethernet/dlink/Kconfig +## +CONFIG_NET_VENDOR_DLINK=y +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set + +## +## file: drivers/net/ethernet/fujitsu/Kconfig +## +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_PCMCIA_FMVJ18X=m + +## +## file: drivers/net/ethernet/hp/Kconfig +## +CONFIG_NET_VENDOR_HP=y +CONFIG_HP100=m + +## +## file: drivers/net/ethernet/intel/Kconfig +## +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m + +## +## file: drivers/net/ethernet/nvidia/Kconfig +## +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_ATP is not set +CONFIG_8139CP=m +CONFIG_8139TOO=m + +## +## file: drivers/net/ethernet/sis/Kconfig +## +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_NET_VENDOR_SMSC=y +CONFIG_PCMCIA_SMC91C92=m +CONFIG_EPIC100=m + +## +## file: drivers/net/ethernet/sun/Kconfig +## +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m + +## +## file: drivers/net/ethernet/via/Kconfig +## +CONFIG_NET_VENDOR_VIA=y +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set + +## +## file: drivers/net/ethernet/xircom/Kconfig +## +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m + +## +## file: drivers/net/fddi/Kconfig +## +CONFIG_FDDI=y +CONFIG_SKFP=m + +## +## file: drivers/net/hippi/Kconfig +## +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set + +## +## file: drivers/net/hyperv/Kconfig +## +CONFIG_HYPERV_NET=m + +## +## file: drivers/net/irda/Kconfig +## +CONFIG_IRTTY_SIR=m +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m + +## +## file: drivers/net/plip/Kconfig +## +CONFIG_PLIP=m + +## +## file: drivers/net/wan/Kconfig +## +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +# CONFIG_SBNI is not set + +## +## file: drivers/net/wireless/Kconfig +## +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_WL3501=m + +## +## file: drivers/net/wireless/atmel/Kconfig +## +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m + +## +## file: drivers/net/wireless/broadcom/brcm80211/Kconfig +## +#. Sony Vaio laptops +CONFIG_BRCMFMAC_SDIO=y + +## +## file: drivers/net/wireless/cisco/Kconfig +## +CONFIG_AIRO_CS=m + +## +## file: drivers/net/wireless/intersil/orinoco/Kconfig +## +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m + +## +## file: drivers/net/wireless/marvell/mwifiex/Kconfig +## +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m + +## +## file: drivers/net/wireless/zydas/Kconfig +## +CONFIG_USB_ZD1201=m + +## +## file: drivers/nfc/Kconfig +## +CONFIG_NFC_MEI_PHY=m + +## +## file: drivers/nfc/pn544/Kconfig +## +CONFIG_NFC_PN544_MEI=m + +## +## file: drivers/nvdimm/Kconfig +## +CONFIG_LIBNVDIMM=m +CONFIG_BLK_DEV_PMEM=m +CONFIG_ND_BLK=m +CONFIG_BTT=y + +## +## file: drivers/pci/Kconfig +## +CONFIG_HT_IRQ=y +CONFIG_PCI_PRI=y +CONFIG_PCI_PASID=y + +## +## file: drivers/pci/host/Kconfig +## +CONFIG_VMD=m + +## +## file: drivers/pci/hotplug/Kconfig +## +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m + +## +## file: drivers/pcmcia/Kconfig +## +CONFIG_PCCARD=m +CONFIG_PCMCIA=m +CONFIG_CARDBUS=y +CONFIG_YENTA=m +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_TCIC=m +# CONFIG_PCMCIA_DEBUG is not set + +## +## file: drivers/pinctrl/intel/Kconfig +## +CONFIG_PINCTRL_BAYTRAIL=y +CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_BROXTON=y +CONFIG_PINCTRL_SUNRISEPOINT=y + +## +## file: drivers/platform/chrome/Kconfig +## +CONFIG_CHROME_PLATFORMS=y +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHROMEOS_PSTORE=m + +## +## file: drivers/platform/x86/Kconfig +## +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_ACERHDF=m +CONFIG_ALIENWARE_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_DELL_SMBIOS=m +CONFIG_DELL_LAPTOP=m +CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m +CONFIG_DELL_SMO8800=m +CONFIG_DELL_RBTN=m +CONFIG_FUJITSU_LAPTOP=m +CONFIG_FUJITSU_TABLET=m +CONFIG_AMILO_RFKILL=m +CONFIG_HP_ACCEL=m +CONFIG_HP_WIRELESS=m +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_IDEAPAD_LAPTOP=m +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_SENSORS_HDAPS=m +# CONFIG_INTEL_MENLOW is not set +CONFIG_EEEPC_LAPTOP=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_EEEPC_WMI=m +CONFIG_ASUS_WIRELESS=m +CONFIG_ACPI_WMI=m +CONFIG_MSI_WMI=m +CONFIG_TOPSTAR_LAPTOP=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_TOSHIBA_HAPS=m +CONFIG_ACPI_CMPC=m +CONFIG_INTEL_VBTN=m +CONFIG_INTEL_IPS=m +CONFIG_IBM_RTL=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m +CONFIG_APPLE_GMUX=m +CONFIG_INTEL_RST=m +CONFIG_INTEL_SMARTCONNECT=m +CONFIG_PVPANIC=m +CONFIG_INTEL_PMC_IPC=m +CONFIG_SURFACE_PRO3_BUTTON=m + +## +## file: drivers/pnp/Kconfig +## +CONFIG_PNP=y + +## +## file: drivers/power/supply/Kconfig +## +CONFIG_BATTERY_SBS=m + +## +## file: drivers/powercap/Kconfig +## +CONFIG_POWERCAP=y +CONFIG_INTEL_RAPL=m + +## +## file: drivers/ptp/Kconfig +## +CONFIG_PTP_1588_CLOCK_PCH=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_CMOS=y + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_FLASHPOINT is not set +CONFIG_VMWARE_PVSCSI=m +CONFIG_HYPERV_STORAGE=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_ISCI=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_DEBUG=m + +## +## file: drivers/scsi/aic7xxx/Kconfig.aic7xxx +## +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 + +## +## file: drivers/scsi/megaraid/Kconfig.megaraid +## +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m + +## +## file: drivers/scsi/pcmcia/Kconfig +## +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m + +## +## file: drivers/sfi/Kconfig +## +CONFIG_SFI=y + +## +## file: drivers/staging/comedi/Kconfig +## +CONFIG_COMEDI=m +# CONFIG_COMEDI_DEBUG is not set +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048 +CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480 +CONFIG_COMEDI_MISC_DRIVERS=y +CONFIG_COMEDI_BOND=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_SERIAL2002=m +CONFIG_COMEDI_SSV_DNP=m +# CONFIG_COMEDI_ISA_DRIVERS is not set +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_S526=m +CONFIG_COMEDI_PCI_DRIVERS=y +CONFIG_COMEDI_8255_PCI=m +CONFIG_COMEDI_ADDI_APCI_1032=m +CONFIG_COMEDI_ADDI_APCI_1500=m +CONFIG_COMEDI_ADDI_APCI_1516=m +CONFIG_COMEDI_ADDI_APCI_1564=m +CONFIG_COMEDI_ADDI_APCI_16XX=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7X3X=m +CONFIG_COMEDI_ADL_PCI8164=m +CONFIG_COMEDI_ADL_PCI9111=m +CONFIG_COMEDI_ADL_PCI9118=m +CONFIG_COMEDI_ADV_PCI1710=m +CONFIG_COMEDI_ADV_PCI1723=m +CONFIG_COMEDI_ADV_PCI1724=m +CONFIG_COMEDI_ADV_PCI_DIO=m +CONFIG_COMEDI_AMPLC_DIO200_PCI=m +CONFIG_COMEDI_AMPLC_PC236_PCI=m +CONFIG_COMEDI_AMPLC_PC263_PCI=m +CONFIG_COMEDI_AMPLC_PCI224=m +CONFIG_COMEDI_AMPLC_PCI230=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DAS08_PCI=m +CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DYNA_PCI10XX=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_MF6X4=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_JR3_PCI=m +CONFIG_COMEDI_KE_COUNTER=m +CONFIG_COMEDI_CB_PCIDAS64=m +CONFIG_COMEDI_CB_PCIDAS=m +CONFIG_COMEDI_CB_PCIDDA=m +CONFIG_COMEDI_CB_PCIMDAS=m +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_ME4000=m +CONFIG_COMEDI_ME_DAQ=m +CONFIG_COMEDI_NI_6527=m +CONFIG_COMEDI_NI_65XX=m +CONFIG_COMEDI_NI_660X=m +CONFIG_COMEDI_NI_670X=m +CONFIG_COMEDI_NI_LABPC_PCI=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_RTD520=m +CONFIG_COMEDI_S626=m +CONFIG_COMEDI_PCMCIA_DRIVERS=y +CONFIG_COMEDI_CB_DAS16_CS=m +CONFIG_COMEDI_DAS08_CS=m +CONFIG_COMEDI_NI_DAQ_700_CS=m +CONFIG_COMEDI_NI_DAQ_DIO24_CS=m +CONFIG_COMEDI_NI_LABPC_CS=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_QUATECH_DAQP_CS=m +CONFIG_COMEDI_USB_DRIVERS=y +CONFIG_COMEDI_DT9812=m +CONFIG_COMEDI_NI_USB6501=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMEDI_8255_SA=m +CONFIG_COMEDI_KCOMEDILIB=m + +## +## file: drivers/staging/iio/light/Kconfig +## +#. Samsung Series 5 550, Chromebook Pixel +CONFIG_SENSORS_ISL29018=m +#. Samsung Series 5 +CONFIG_TSL2583=m + +## +## file: drivers/staging/lustre/lnet/Kconfig +## +CONFIG_LNET=m +CONFIG_LNET_MAX_PAYLOAD=1048576 +# CONFIG_LNET_SELFTEST is not set +CONFIG_LNET_XPRT_IB=m + +## +## file: drivers/staging/lustre/lustre/Kconfig +## +CONFIG_LUSTRE_FS=m +CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192 +# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set + +## +## file: drivers/staging/media/Kconfig +## +CONFIG_STAGING_MEDIA=y + +## +## file: drivers/staging/media/bcm2048/Kconfig +## +# CONFIG_I2C_BCM2048 is not set + +## +## file: drivers/staging/media/lirc/Kconfig +## +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_BT829=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_ZILOG=m + +## +## file: drivers/staging/rtl8192e/Kconfig +## +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m + +## +## file: drivers/staging/rtl8192e/rtl8192e/Kconfig +## +CONFIG_RTL8192E=m + +## +## file: drivers/staging/rtl8192u/Kconfig +## +CONFIG_RTL8192U=m + +## +## file: drivers/staging/rts5208/Kconfig +## +CONFIG_RTS5208=m + +## +## file: drivers/staging/vt6656/Kconfig +## +CONFIG_VT6656=m + +## +## file: drivers/staging/wlan-ng/Kconfig +## +CONFIG_PRISM2_USB=m + +## +## file: drivers/thermal/Kconfig +## +CONFIG_THERMAL=m +# CONFIG_THERMAL_OF is not set +# CONFIG_CPU_THERMAL is not set +CONFIG_INTEL_POWERCLAMP=m +CONFIG_X86_PKG_TEMP_THERMAL=m +CONFIG_INTEL_SOC_DTS_THERMAL=m +CONFIG_INTEL_PCH_THERMAL=m + +## +## file: drivers/thermal/int340x_thermal/Kconfig +## +CONFIG_INT340X_THERMAL=m + +## +## file: drivers/thunderbolt/Kconfig +## +CONFIG_THUNDERBOLT=m + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_N_HDLC=m + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_JSM=m + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_FINTEK=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_LPSS is not set + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB=m +CONFIG_USB_USS720=m + +## +## file: drivers/usb/atm/Kconfig +## +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m + +## +## file: drivers/usb/gadget/Kconfig +## +CONFIG_USB_GADGET=m + +## +## file: drivers/usb/gadget/udc/Kconfig +## +CONFIG_USB_EG20T=m + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_HCD_SSB is not set +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_CS=m + +## +## file: drivers/usb/usbip/Kconfig +## +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set + +## +## file: drivers/vfio/Kconfig +## +CONFIG_VFIO=m + +## +## file: drivers/vfio/pci/Kconfig +## +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_VGA=y + +## +## file: drivers/video/console/Kconfig +## +CONFIG_VGA_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=y +CONFIG_FB_EFI=y +CONFIG_FB_N411=m +CONFIG_FB_HGA=m +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +# CONFIG_FB_INTEL is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_VOODOO1=m +CONFIG_FB_TRIDENT=m +CONFIG_FB_VIRTUAL=m +CONFIG_FB_HYPERV=m +#. Doesn't support handover; see #822575 +# CONFIG_FB_SIMPLE is not set + +## +## file: drivers/video/fbdev/geode/Kconfig +## +# CONFIG_FB_GEODE is not set + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_MENF21BMC_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_GEODE_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m +CONFIG_IT8712F_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_KEMPLD_WDT=m +CONFIG_HPWDT_NMI_DECODING=y +CONFIG_SC1200_WDT=m +CONFIG_NV_TCO=m +CONFIG_60XX_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_VIA_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_USBPCWATCHDOG=m + +## +## file: drivers/xen/Kconfig +## +CONFIG_XEN_ACPI_PROCESSOR=m +CONFIG_XEN_SYMS=y + +## +## file: fs/proc/Kconfig +## +CONFIG_PROC_VMCORE=y + +## +## file: fs/pstore/Kconfig +## +CONFIG_PSTORE=y + +## +## file: init/Kconfig +## +CONFIG_USELIB=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y + +## +## file: kernel/irq/Kconfig +## +CONFIG_SPARSE_IRQ=y + +## +## file: kernel/power/Kconfig +## +# CONFIG_PM_TEST_SUSPEND is not set +# CONFIG_PM_TRACE_RTC is not set + +## +## file: kernel/trace/Kconfig +## +CONFIG_MMIOTRACE=y + +## +## file: lib/Kconfig.debug +## +# CONFIG_FRAME_POINTER is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +CONFIG_MEMTEST=y + +## +## file: lib/xz/Kconfig +## +CONFIG_XZ_DEC_X86=y + +## +## file: mm/Kconfig +## +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 + +## +## file: mm/Kconfig.debug +## +# CONFIG_DEBUG_PAGEALLOC is not set + +## +## file: net/ax25/Kconfig +## +CONFIG_HAMRADIO=y +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +## +## file: net/decnet/Kconfig +## +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set + +## +## file: net/decnet/netfilter/Kconfig +## +CONFIG_DECNET_NF_GRABULATOR=m + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set + +## +## file: net/irda/Kconfig +## +CONFIG_IRDA=m +# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +## +## file: net/irda/ircomm/Kconfig +## +CONFIG_IRCOMM=m + +## +## file: net/irda/irlan/Kconfig +## +CONFIG_IRLAN=m + +## +## file: net/irda/irnet/Kconfig +## +CONFIG_IRNET=m + +## +## file: net/lapb/Kconfig +## +CONFIG_LAPB=m + +## +## file: net/nfc/hci/Kconfig +## +CONFIG_NFC_HCI=m + +## +## file: net/vmw_vsock/Kconfig +## +CONFIG_VMWARE_VMCI_VSOCKETS=m + +## +## file: sound/drivers/Kconfig +## +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m + +## +## file: sound/pci/Kconfig +## +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m + +## +## file: sound/pci/hda/Kconfig +## +CONFIG_SND_HDA_INTEL=m + +## +## file: sound/soc/Kconfig +## +CONFIG_SND_SOC=m + +## +## file: sound/soc/intel/Kconfig +## +CONFIG_SND_SOC_INTEL_HASWELL_MACH=m +# CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH is not set +CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m +CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m + diff --git a/config/m68k/README.build b/config/m68k/README.build new file mode 100644 index 00000000000..8941608efd7 --- /dev/null +++ b/config/m68k/README.build @@ -0,0 +1,26 @@ +HOWTO cross-build m68k linux-image + +Building linux-image packages takes a while, especially on the "slower +arches", ie m68k. Cross-compiling is an alternative, and it works very well +for m68k. + +You need to set up a cross-compiler. The toolchain-source package has some +limitations, I prefer using cross-tools, see this page for instructions: + + http://people.debian.org/~cts/debian-m68k/cross-compile/ + +Now you only have to tell the debian build system, that you do want to build +packages for m68k. It used to be sufficient to pass an option to debuild, +since recently you also have to set an environment variable, like this: + + DEB_HOST_ARCH=m68k debuild -B -am68k + +If you also want to build source packages, omit the -B. + +If you want to build images for just one of the currently nine subarches, +you can uncomment some lines in the flavours section in: + debian/arch/m68k/defines + +The first run of debuild will give you an error message that updating the +configs suceeded, the second run will build the images. + diff --git a/config/m68k/config b/config/m68k/config new file mode 100644 index 00000000000..6e53eb353fb --- /dev/null +++ b/config/m68k/config @@ -0,0 +1,893 @@ +## +## file: arch/m68k/Kconfig +## +# CONFIG_PM is not set + +## +## file: arch/m68k/Kconfig.bus +## +CONFIG_ZORRO=y +CONFIG_AMIGA_PCMCIA=y +CONFIG_ATARI_ROM_ISA=y + +## +## file: arch/m68k/Kconfig.cpu +## +CONFIG_M68020=y +CONFIG_M68030=y +CONFIG_M68040=y +CONFIG_M68060=y +CONFIG_M68KFPU_EMU=y +# CONFIG_ADVANCED is not set + +## +## file: arch/m68k/Kconfig.debug +## +CONFIG_EARLY_PRINTK=y + +## +## file: arch/m68k/Kconfig.devices +## +CONFIG_HEARTBEAT=y +CONFIG_PROC_HARDWARE=y +CONFIG_NATFEAT=y +CONFIG_NFBLOCK=y +CONFIG_NFCON=y +CONFIG_NFETH=y +CONFIG_ATARI_ETHERNAT=y +CONFIG_ATARI_ETHERNEC=y +CONFIG_ATARI_DSP56K=m +CONFIG_AMIGA_BUILTIN_SERIAL=y +CONFIG_SERIAL_CONSOLE=y + +## +## file: arch/m68k/Kconfig.machine +## +CONFIG_AMIGA=y +CONFIG_ATARI=y +CONFIG_MAC=y +CONFIG_APOLLO=y +CONFIG_VME=y +CONFIG_MVME147=y +CONFIG_MVME16x=y +CONFIG_BVME6000=y +# CONFIG_HP300 is not set +# CONFIG_SUN3X is not set +CONFIG_Q40=y +# CONFIG_SUN3 is not set + +## +## file: block/Kconfig +## +# CONFIG_BLK_DEV_INTEGRITY is not set + +## +## file: block/Kconfig.iosched +## +CONFIG_IOSCHED_DEADLINE=m + +## +## file: block/partitions/Kconfig +## +CONFIG_PARTITION_ADVANCED=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +CONFIG_LDM_DEBUG=y +CONFIG_SUN_PARTITION=y +# CONFIG_KARMA_PARTITION is not set +CONFIG_SYSV68_PARTITION=y + +## +## file: drivers/accessibility/Kconfig +## +# CONFIG_ACCESSIBILITY is not set + +## +## file: drivers/bcma/Kconfig +## +# CONFIG_BCMA is not set + +## +## file: drivers/block/Kconfig +## +CONFIG_BLK_DEV_FD=m +CONFIG_AMIGA_FLOPPY=m +CONFIG_ATARI_FLOPPY=m +CONFIG_BLK_DEV_SWIM=m +CONFIG_AMIGA_Z2RAM=y +CONFIG_CDROM_PKTCDVD=m +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_RBD is not set + +## +## file: drivers/block/drbd/Kconfig +## +# CONFIG_BLK_DEV_DRBD is not set + +## +## file: drivers/block/mtip32xx/Kconfig +## +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set + +## +## file: drivers/char/Kconfig +## +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +CONFIG_NVRAM=y + +## +## file: drivers/connector/Kconfig +## +CONFIG_CONNECTOR=m + +## +## file: drivers/crypto/Kconfig +## +# CONFIG_CRYPTO_HW is not set + +## +## file: drivers/firewire/Kconfig +## +# CONFIG_FIREWIRE is not set + +## +## file: drivers/gpu/drm/Kconfig +## +# CONFIG_DRM is not set + +## +## file: drivers/hwmon/Kconfig +## +# CONFIG_HWMON is not set + +## +## file: drivers/i2c/Kconfig +## +# CONFIG_I2C is not set + +## +## file: drivers/ide/Kconfig +## +CONFIG_IDE=m +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDECS=m +CONFIG_BLK_DEV_IDECD=m +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_GAYLE=m +CONFIG_BLK_DEV_BUDDHA=m +CONFIG_BLK_DEV_FALCON_IDE=m +CONFIG_BLK_DEV_MAC_IDE=m +CONFIG_BLK_DEV_Q40IDE=m + +## +## file: drivers/iio/Kconfig +## +# CONFIG_IIO is not set + +## +## file: drivers/infiniband/Kconfig +## +# CONFIG_INFINIBAND is not set + +## +## file: drivers/input/Kconfig +## +CONFIG_INPUT_MOUSEDEV=y + +## +## file: drivers/input/gameport/Kconfig +## +# CONFIG_GAMEPORT is not set + +## +## file: drivers/input/joystick/Kconfig +## +CONFIG_INPUT_JOYSTICK=y +# CONFIG_JOYSTICK_ANALOG is not set +# CONFIG_JOYSTICK_A3D is not set +# CONFIG_JOYSTICK_ADI is not set +# CONFIG_JOYSTICK_COBRA is not set +# CONFIG_JOYSTICK_GF2K is not set +# CONFIG_JOYSTICK_GRIP is not set +# CONFIG_JOYSTICK_GRIP_MP is not set +# CONFIG_JOYSTICK_GUILLEMOT is not set +# CONFIG_JOYSTICK_INTERACT is not set +# CONFIG_JOYSTICK_SIDEWINDER is not set +# CONFIG_JOYSTICK_TMDC is not set +# CONFIG_JOYSTICK_WARRIOR is not set +# CONFIG_JOYSTICK_MAGELLAN is not set +# CONFIG_JOYSTICK_SPACEORB is not set +# CONFIG_JOYSTICK_SPACEBALL is not set +# CONFIG_JOYSTICK_STINGER is not set +# CONFIG_JOYSTICK_TWIDJOY is not set +# CONFIG_JOYSTICK_ZHENHUA is not set +CONFIG_JOYSTICK_DB9=m +# CONFIG_JOYSTICK_GAMECON is not set +# CONFIG_JOYSTICK_TURBOGRAFX is not set +CONFIG_JOYSTICK_AMIGA=m +# CONFIG_JOYSTICK_JOYDUMP is not set + +## +## file: drivers/input/joystick/iforce/Kconfig +## +# CONFIG_JOYSTICK_IFORCE is not set +# CONFIG_JOYSTICK_IFORCE_232 is not set + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +CONFIG_KEYBOARD_AMIGA=y +CONFIG_KEYBOARD_ATARI=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set + +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_M68K_BEEP=m +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF50633_PMU is not set + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +# CONFIG_MOUSE_PS2_LIFEBOOK is not set +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_PS2_OLPC is not set +CONFIG_MOUSE_SERIAL=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_AMIGA=m +CONFIG_MOUSE_ATARI=m +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_Q40KBD=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_ALTERA_PS2 is not set + +## +## file: drivers/input/tablet/Kconfig +## +# CONFIG_INPUT_TABLET is not set + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_INPUT_TOUCHSCREEN is not set + +## +## file: drivers/iommu/Kconfig +## +# CONFIG_IOMMU_SUPPORT is not set + +## +## file: drivers/leds/Kconfig +## +# CONFIG_NEW_LEDS is not set + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_ADB=y +CONFIG_ADB_MACII=y +# CONFIG_ADB_MACIISI is not set +CONFIG_ADB_IOP=y # switched on for the benefit of IIfx, Q900, Q950 +CONFIG_ADB_PMU68K=y +CONFIG_ADB_CUDA=y +CONFIG_INPUT_ADBHID=y +CONFIG_MAC_EMUMOUSEBTN=m + +## +## file: drivers/media/Kconfig +## +# CONFIG_MEDIA_SUPPORT is not set + +## +## file: drivers/memstick/Kconfig +## +# CONFIG_MEMSTICK is not set + +## +## file: drivers/mfd/Kconfig +## +# CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_SM501 is not set + +## +## file: drivers/misc/Kconfig +## +# CONFIG_ENCLOSURE_SERVICES is not set + +## +## file: drivers/misc/c2port/Kconfig +## +# CONFIG_C2PORT is not set + +## +## file: drivers/misc/eeprom/Kconfig +## +# CONFIG_EEPROM_93CX6 is not set + +## +## file: drivers/mmc/Kconfig +## +# CONFIG_MMC is not set + +## +## file: drivers/mtd/Kconfig +## +# CONFIG_MTD is not set + +## +## file: drivers/net/appletalk/Kconfig +## +CONFIG_DEV_APPLETALK=m + +## +## file: drivers/net/arcnet/Kconfig +## +# CONFIG_ARCNET is not set + +## +## file: drivers/net/ethernet/Kconfig +## +# CONFIG_DNET is not set +# CONFIG_ETHOC is not set + +## +## file: drivers/net/ethernet/8390/Kconfig +## +CONFIG_HYDRA=m +CONFIG_MAC8390=y +CONFIG_NE2000=m +CONFIG_APNE=m +CONFIG_ZORRO8390=m + +## +## file: drivers/net/ethernet/amd/Kconfig +## +CONFIG_A2065=m +CONFIG_ARIADNE=m +CONFIG_ATARILANCE=m +CONFIG_MVME147_NET=m + +## +## file: drivers/net/ethernet/apple/Kconfig +## +CONFIG_MACMACE=y + +## +## file: drivers/net/ethernet/cirrus/Kconfig +## +CONFIG_MAC89x0=m + +## +## file: drivers/net/ethernet/i825xx/Kconfig +## +CONFIG_BVME6000_NET=m +CONFIG_MVME16x_NET=m + +## +## file: drivers/net/ethernet/micrel/Kconfig +## +# CONFIG_KS8851_MLL is not set + +## +## file: drivers/net/ethernet/natsemi/Kconfig +## +CONFIG_MACSONIC=m + +## +## file: drivers/net/ethernet/smsc/Kconfig +## +CONFIG_SMC91X=m + +## +## file: drivers/net/ethernet/wiznet/Kconfig +## +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set + +## +## file: drivers/net/plip/Kconfig +## +CONFIG_PLIP=m + +## +## file: drivers/net/wan/Kconfig +## +# CONFIG_WAN is not set + +## +## file: drivers/net/wireless/Kconfig +## +# CONFIG_WLAN is not set + +## +## file: drivers/parport/Kconfig +## +# CONFIG_PARPORT_PC is not set +CONFIG_PARPORT_AMIGA=m +CONFIG_PARPORT_MFC3=m +CONFIG_PARPORT_ATARI=m + +## +## file: drivers/pnp/Kconfig +## +# CONFIG_PNP is not set + +## +## file: drivers/power/supply/Kconfig +## +# CONFIG_POWER_SUPPLY is not set + +## +## file: drivers/ptp/Kconfig +## +# CONFIG_PTP_1588_CLOCK is not set + +## +## file: drivers/rtc/Kconfig +## +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +CONFIG_RTC_DRV_RP5C01=y +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_WM831X is not set +# CONFIG_RTC_DRV_WM8350 is not set +CONFIG_RTC_DRV_GENERIC=y + +## +## file: drivers/scsi/Kconfig +## +#. for MAC_SCSI and MVME147_SCSI that are not tristate +CONFIG_SCSI=y +CONFIG_SCSI_SPI_ATTRS=m +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_LIBFC is not set +CONFIG_A3000_SCSI=m +CONFIG_A2091_SCSI=m +CONFIG_GVP11_SCSI=m +CONFIG_SCSI_A4000T=m +CONFIG_SCSI_ZORRO7XX=m +CONFIG_ATARI_SCSI=m +CONFIG_MAC_SCSI=y +CONFIG_SCSI_MAC_ESP=m +CONFIG_MVME147_SCSI=y +CONFIG_MVME16x_SCSI=m +CONFIG_BVME6000_SCSI=m + +## +## file: drivers/scsi/ufs/Kconfig +## +# CONFIG_SCSI_UFSHCD is not set + +## +## file: drivers/spi/Kconfig +## +# CONFIG_SPI is not set + +## +## file: drivers/ssb/Kconfig +## +# CONFIG_SSB is not set + +## +## file: drivers/staging/Kconfig +## +# CONFIG_STAGING is not set + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_TTYS=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y + +## +## file: drivers/tty/serial/8250/Kconfig +## +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +## +## file: drivers/usb/Kconfig +## +# CONFIG_USB_SUPPORT is not set + +## +## file: drivers/video/backlight/Kconfig +## +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +## +## file: drivers/video/console/Kconfig +## +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_FOREIGN_ENDIAN=y +## choice: Choice endianness support +CONFIG_FB_BOTH_ENDIAN=y +## end choice +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set +CONFIG_FB_CIRRUS=y +CONFIG_FB_PM2=m +CONFIG_FB_AMIGA=y +CONFIG_FB_AMIGA_OCS=y +CONFIG_FB_AMIGA_ECS=y +CONFIG_FB_AMIGA_AGA=y +CONFIG_FB_FM2=y +CONFIG_FB_ATARI=y +CONFIG_FB_VALKYRIE=y +CONFIG_FB_MAC=y +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_ATY=y +# CONFIG_FB_ATY_BACKLIGHT is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set + +## +## file: drivers/video/logo/Kconfig +## +# CONFIG_LOGO is not set + +## +## file: drivers/w1/Kconfig +## +# CONFIG_W1 is not set + +## +## file: drivers/watchdog/Kconfig +## +# CONFIG_WATCHDOG is not set + +## +## file: drivers/zorro/Kconfig +## +CONFIG_ZORRO_NAMES=y + +## +## file: fs/adfs/Kconfig +## +# CONFIG_ADFS_FS is not set + +## +## file: fs/afs/Kconfig +## +# CONFIG_AFS_FS is not set + +## +## file: fs/befs/Kconfig +## +# CONFIG_BEFS_FS is not set + +## +## file: fs/bfs/Kconfig +## +# CONFIG_BFS_FS is not set + +## +## file: fs/Kconfig.binfmt +## +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +## +## file: fs/ceph/Kconfig +## +# CONFIG_CEPH_FS is not set + +## +## file: fs/dlm/Kconfig +## +# CONFIG_DLM is not set + +## +## file: fs/efs/Kconfig +## +# CONFIG_EFS_FS is not set + +## +## file: fs/exofs/Kconfig +## +# CONFIG_EXOFS_FS is not set + +## +## file: fs/f2fs/Kconfig +## +# CONFIG_F2FS_FS is not set + +## +## file: fs/freevxfs/Kconfig +## +# CONFIG_VXFS_FS is not set + +## +## file: fs/gfs2/Kconfig +## +# CONFIG_GFS2_FS is not set + +## +## file: fs/jfs/Kconfig +## +# CONFIG_JFS_FS is not set + +## +## file: fs/logfs/Kconfig +## +# CONFIG_LOGFS is not set + +## +## file: fs/ntfs/Kconfig +## +# CONFIG_NTFS_FS is not set + +## +## file: fs/ocfs2/Kconfig +## +# CONFIG_OCFS2_FS is not set + +## +## file: fs/omfs/Kconfig +## +# CONFIG_OMFS_FS is not set + +## +## file: fs/qnx4/Kconfig +## +# CONFIG_QNX4FS_FS is not set + +## +## file: fs/reiserfs/Kconfig +## +# CONFIG_REISERFS_FS_SECURITY is not set + +## +## file: fs/ubifs/Kconfig +## +# CONFIG_UBIFS_FS is not set + +## +## file: init/Kconfig +## +CONFIG_USELIB=y +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=16 +# CONFIG_SCHED_AUTOGROUP is not set +## choice: Compiler optimization level +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +## end choice +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_COMPAT_BRK=y +# CONFIG_MODULE_SIG is not set + +## +## file: kernel/time/Kconfig +## +## choice: Timer tick handling +CONFIG_HZ_PERIODIC=y +# CONFIG_NO_HZ_IDLE is not set +# CONFIG_NO_HZ_FULL is not set +## end choice +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set + +## +## file: lib/Kconfig.debug +## +# CONFIG_DEBUG_FS is not set +# CONFIG_FRAME_POINTER is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_TIMER_STATS is not set + +## +## file: mm/Kconfig +## +# CONFIG_COMPACTION is not set +# CONFIG_MIGRATION is not set +# CONFIG_KSM is not set + +## +## file: net/Kconfig +## +# CONFIG_WIRELESS is not set + +## +## file: net/atm/Kconfig +## +# CONFIG_ATM is not set + +## +## file: net/ax25/Kconfig +## +# CONFIG_HAMRADIO is not set + +## +## file: net/batman-adv/Kconfig +## +# CONFIG_BATMAN_ADV is not set + +## +## file: net/can/Kconfig +## +# CONFIG_CAN is not set + +## +## file: net/ceph/Kconfig +## +# CONFIG_CEPH_LIB is not set + +## +## file: net/dcb/Kconfig +## +# CONFIG_DCB is not set + +## +## file: net/ieee802154/Kconfig +## +# CONFIG_IEEE802154 is not set + +## +## file: net/ipv4/Kconfig +## +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_TCP_MD5SIG is not set + +## +## file: net/ipv6/Kconfig +## +CONFIG_IPV6=m + +## +## file: net/ipx/Kconfig +## +CONFIG_IPX=m + +## +## file: net/irda/Kconfig +## +# CONFIG_IRDA is not set + +## +## file: net/lapb/Kconfig +## +# CONFIG_LAPB is not set + +## +## file: net/llc/Kconfig +## +# CONFIG_LLC2 is not set + +## +## file: net/mac80211/Kconfig +## +# CONFIG_MAC80211 is not set + +## +## file: net/nfc/Kconfig +## +# CONFIG_NFC is not set + +## +## file: net/phonet/Kconfig +## +# CONFIG_PHONET is not set + +## +## file: net/rds/Kconfig +## +# CONFIG_RDS is not set + +## +## file: net/rfkill/Kconfig +## +# CONFIG_RFKILL is not set + +## +## file: net/rxrpc/Kconfig +## +# CONFIG_AF_RXRPC is not set + +## +## file: net/sctp/Kconfig +## +# CONFIG_IP_SCTP is not set + +## +## file: net/tipc/Kconfig +## +# CONFIG_TIPC is not set + +## +## file: net/wimax/Kconfig +## +# CONFIG_WIMAX is not set + +## +## file: net/wireless/Kconfig +## +# CONFIG_CFG80211 is not set + +## +## file: security/Kconfig +## +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set + +## +## file: sound/Kconfig +## +# CONFIG_SND is not set + +## +## file: sound/oss/dmasound/Kconfig +## +CONFIG_DMASOUND_ATARI=m +CONFIG_DMASOUND_PAULA=m +CONFIG_DMASOUND_Q40=m + diff --git a/config/m68k/defines b/config/m68k/defines new file mode 100644 index 00000000000..dcaef978850 --- /dev/null +++ b/config/m68k/defines @@ -0,0 +1,17 @@ +[base] +cflags: -ffreestanding +flavours: + m68k +kernel-arch: m68k + +[build] +image-file: vmlinux.gz +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +suggests: vmelilo, fdutils +install-stem: vmlinuz + +[m68k_description] +hardware: Motorola MC68020+ family diff --git a/config/mips/config b/config/mips/config new file mode 100644 index 00000000000..5942c9ab9ed --- /dev/null +++ b/config/mips/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +## end choice + diff --git a/config/mips/defines b/config/mips/defines new file mode 100644 index 00000000000..720a05112b3 --- /dev/null +++ b/config/mips/defines @@ -0,0 +1,39 @@ +[base] +flavours: + 4kc-malta + 5kc-malta + octeon +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed should not wait for slow builds +signed-modules: false + +[image] +install-stem: vmlinux + +[4kc-malta_description] +hardware: MIPS Malta +hardware-long: MIPS Malta boards + +[4kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips32r2 + +[5kc-malta_description] +hardware: MIPS Malta (64-bit) +hardware-long: MIPS Malta boards (64-bit) + +[5kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r2 + +[octeon_description] +hardware: Octeon +hardware-long: Cavium Networks Octeon + +[octeon_image] +configs: kernelarch-mips/config.octeon diff --git a/config/mips64/config b/config/mips64/config new file mode 100644 index 00000000000..5942c9ab9ed --- /dev/null +++ b/config/mips64/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +## end choice + diff --git a/config/mips64/defines b/config/mips64/defines new file mode 100644 index 00000000000..d27c3a51fb1 --- /dev/null +++ b/config/mips64/defines @@ -0,0 +1,29 @@ +[base] +flavours: + 5kc-malta + octeon +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[5kc-malta_description] +hardware: MIPS Malta +hardware-long: MIPS Malta boards + +[5kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r2 + +[octeon_description] +hardware: Octeon +hardware-long: Cavium Networks Octeon + +[octeon_image] +configs: kernelarch-mips/config.octeon diff --git a/config/mips64el/config b/config/mips64el/config new file mode 100644 index 00000000000..4807b611e34 --- /dev/null +++ b/config/mips64el/config @@ -0,0 +1,12 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice +## choice: CPU type +# CONFIG_CPU_MIPS64_R1 is not set +CONFIG_CPU_MIPS64_R2=y +## end choice + diff --git a/config/mips64el/defines b/config/mips64el/defines new file mode 100644 index 00000000000..ec3b0eb484c --- /dev/null +++ b/config/mips64el/defines @@ -0,0 +1,37 @@ +[base] +flavours: + 5kc-malta + loongson-3 + octeon +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[5kc-malta_description] +hardware: MIPS Malta +hardware-long: MIPS Malta boards + +[5kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r2 + +[loongson-3_description] +hardware: Loongson 3A/3B +hardware-long: Loongson 3A or 3B based systems (e.g. from Loongson or Lemote) + +[loongson-3_image] +configs: kernelarch-mips/config.loongson-3 + +[octeon_description] +hardware: Octeon +hardware-long: Cavium Networks Octeon + +[octeon_image] +configs: kernelarch-mips/config.octeon diff --git a/config/mips64r6/config b/config/mips64r6/config new file mode 100644 index 00000000000..5942c9ab9ed --- /dev/null +++ b/config/mips64r6/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +## end choice + diff --git a/config/mips64r6/defines b/config/mips64r6/defines new file mode 100644 index 00000000000..dc7f22c6b69 --- /dev/null +++ b/config/mips64r6/defines @@ -0,0 +1,22 @@ +[base] +flavours: + mips64r6 +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[mips64r6_description] +hardware: MIPS R6 (64 bit, big endian) +hardware-long: MIPS R6 (64 bit, big endian) + +[mips64r6_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r6 + diff --git a/config/mips64r6el/config b/config/mips64r6el/config new file mode 100644 index 00000000000..7f124deb643 --- /dev/null +++ b/config/mips64r6el/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice + diff --git a/config/mips64r6el/defines b/config/mips64r6el/defines new file mode 100644 index 00000000000..b60be330b27 --- /dev/null +++ b/config/mips64r6el/defines @@ -0,0 +1,22 @@ +[base] +flavours: + mips64r6el +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[mips64r6el_description] +hardware: MIPS R6 (64 bit, little endian) +hardware-long: MIPS R6 (64 bit, little endian) + +[mips64r6el_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r6 + diff --git a/config/mipsel/config b/config/mipsel/config new file mode 100644 index 00000000000..7f124deb643 --- /dev/null +++ b/config/mipsel/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice + diff --git a/config/mipsel/defines b/config/mipsel/defines new file mode 100644 index 00000000000..b122b231263 --- /dev/null +++ b/config/mipsel/defines @@ -0,0 +1,47 @@ +[base] +flavours: + 4kc-malta + 5kc-malta + loongson-3 + octeon +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed should not wait for slow builds +signed-modules: false + +[image] +install-stem: vmlinux + +[4kc-malta_description] +hardware: MIPS Malta +hardware-long: MIPS Malta boards + +[4kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips32r2 + +[5kc-malta_description] +hardware: MIPS Malta (64-bit) +hardware-long: MIPS Malta boards (64-bit) + +[5kc-malta_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r2 + +[loongson-3_description] +hardware: Loongson 3A/3B +hardware-long: Loongson 3A or 3B based systems (e.g. from Loongson or Lemote) + +[loongson-3_image] +configs: kernelarch-mips/config.loongson-3 + +[octeon_description] +hardware: Octeon +hardware-long: Cavium Networks Octeon + +[octeon_image] +configs: kernelarch-mips/config.octeon diff --git a/config/mipsn32/defines b/config/mipsn32/defines new file mode 100644 index 00000000000..fa9b8af89ef --- /dev/null +++ b/config/mipsn32/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: mips +featuresets: +# empty; mipsn32 must be part of a multiarch installation with a mips64 kernel diff --git a/config/mipsn32el/defines b/config/mipsn32el/defines new file mode 100644 index 00000000000..57d6f492240 --- /dev/null +++ b/config/mipsn32el/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: mips +featuresets: +# empty; mipsn32el must be part of a multiarch installation with a mips64el kernel diff --git a/config/mipsn32r6/defines b/config/mipsn32r6/defines new file mode 100644 index 00000000000..2ba5f42bef1 --- /dev/null +++ b/config/mipsn32r6/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: mips +featuresets: +# empty; mipsn32r6 must be part of a multiarch installation with a mips64r6 kernel diff --git a/config/mipsn32r6el/defines b/config/mipsn32r6el/defines new file mode 100644 index 00000000000..f4c8a96d864 --- /dev/null +++ b/config/mipsn32r6el/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: mips +featuresets: +# empty; mipsn32r6el must be part of a multiarch installation with a mips64r6el kernel diff --git a/config/mipsr6/config b/config/mipsr6/config new file mode 100644 index 00000000000..5942c9ab9ed --- /dev/null +++ b/config/mipsr6/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +## end choice + diff --git a/config/mipsr6/defines b/config/mipsr6/defines new file mode 100644 index 00000000000..b945bdd3dbe --- /dev/null +++ b/config/mipsr6/defines @@ -0,0 +1,32 @@ +[base] +flavours: + mips32r6 + mips64r6 +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[mips32r6_description] +hardware: MIPS R6 (32 bit, big endian) +hardware-long: MIPS R6 (32 bit, big endian) + +[mips32r6_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips32r6 + +[mips64r6_description] +hardware: MIPS R6 (64 bit, big endian) +hardware-long: MIPS R6 (64 bit, big endian) + +[mips64r6_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r6 + diff --git a/config/mipsr6el/config b/config/mipsr6el/config new file mode 100644 index 00000000000..7f124deb643 --- /dev/null +++ b/config/mipsr6el/config @@ -0,0 +1,8 @@ +## +## file: arch/mips/Kconfig +## +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice + diff --git a/config/mipsr6el/defines b/config/mipsr6el/defines new file mode 100644 index 00000000000..f8e4aa49c9f --- /dev/null +++ b/config/mipsr6el/defines @@ -0,0 +1,32 @@ +[base] +flavours: + mips32r6el + mips64r6el +kernel-arch: mips + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinux + +[mips32r6el_description] +hardware: MIPS R6 (32 bit, little endian) +hardware-long: MIPS R6 (32 bit, little endian) + +[mips32r6el_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips32r6 + +[mips64r6el_description] +hardware: MIPS R6 (64 bit, little endian) +hardware-long: MIPS R6 (64 bit, little endian) + +[mips64r6el_image] +configs: + kernelarch-mips/config.malta + kernelarch-mips/config.mips64r6 + diff --git a/config/or1k/defines b/config/or1k/defines new file mode 100644 index 00000000000..c339d9cc265 --- /dev/null +++ b/config/or1k/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: openrisc +featuresets: +# empty; we don't have initramfs working yet diff --git a/config/powerpc/config.powerpc b/config/powerpc/config.powerpc new file mode 100644 index 00000000000..63a07fb2e8f --- /dev/null +++ b/config/powerpc/config.powerpc @@ -0,0 +1,113 @@ +## +## file: arch/powerpc/Kconfig +## +CONFIG_HIGHMEM=y +# CONFIG_ISA is not set + +## +## file: arch/powerpc/platforms/512x/Kconfig +## +# CONFIG_MPC5121_ADS is not set + +## +## file: arch/powerpc/platforms/52xx/Kconfig +## +CONFIG_PPC_MPC52xx=y +# CONFIG_PPC_MPC5200_SIMPLE is not set +CONFIG_PPC_EFIKA=y +# CONFIG_PPC_LITE5200 is not set +CONFIG_PPC_MPC5200_BUGFIX=y + +## +## file: arch/powerpc/platforms/chrp/Kconfig +## +CONFIG_PPC_CHRP=y + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +# CONFIG_PPC64 is not set +## choice: Processor Type +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_8xx is not set +# CONFIG_40x is not set +# CONFIG_44x is not set +# CONFIG_E200 is not set +## end choice +CONFIG_ALTIVEC=y +# CONFIG_SMP is not set + +## +## file: drivers/ata/Kconfig +## +CONFIG_PATA_MPC52xx=m + +## +## file: drivers/block/Kconfig +## +CONFIG_MAC_FLOPPY=y + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y + +## +## file: drivers/dma/bestcomm/Kconfig +## +CONFIG_PPC_BESTCOMM=m + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_SENSORS_AMS=m +CONFIG_SENSORS_AMS_PMU=y +CONFIG_SENSORS_AMS_I2C=y + +## +## file: drivers/net/ethernet/freescale/Kconfig +## +CONFIG_FEC_MPC52xx=m +CONFIG_FEC_MPC52xx_MDIO=y + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_MPC52xx_PSC=m + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_MPC52xx=y +CONFIG_SERIAL_MPC52xx_CONSOLE=y +CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB_CONTROL=y +CONFIG_FB_PLATINUM=y +CONFIG_FB_VALKYRIE=y +CONFIG_FB_CT65550=y +CONFIG_FB_IMSTT=y +CONFIG_FB_MATROX=y +CONFIG_FB_ATY128=y +CONFIG_FB_ATY=y +CONFIG_FB_SIS=y +CONFIG_FB_3DFX=y +CONFIG_FB_VOODOO1=y + +## +## file: init/Kconfig +## +CONFIG_SYSFS_SYSCALL=y + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +## end choice + diff --git a/config/powerpc/config.powerpc-smp b/config/powerpc/config.powerpc-smp new file mode 100644 index 00000000000..494c00d292b --- /dev/null +++ b/config/powerpc/config.powerpc-smp @@ -0,0 +1,5 @@ +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +CONFIG_SMP=y + diff --git a/config/powerpc/defines b/config/powerpc/defines new file mode 100644 index 00000000000..24b8b528fac --- /dev/null +++ b/config/powerpc/defines @@ -0,0 +1,30 @@ +[base] +flavours: + powerpc + powerpc-smp + powerpc64 +kernel-arch: powerpc + +[build] +image-file: vmlinux +vdso: true + +[image] +configs: +suggests: mkvmlinuz +install-stem: vmlinux + +[powerpc_description] +hardware: uniprocessor 32-bit PowerPC + +[powerpc-smp_description] +hardware: multiprocessor 32-bit PowerPC + +[powerpc-smp_image] +configs: powerpc/config.powerpc powerpc/config.powerpc-smp + +[powerpc64_description] +hardware: 64-bit PowerPC + +[powerpc64_image] +configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be diff --git a/config/powerpcspe/config b/config/powerpcspe/config new file mode 100644 index 00000000000..d962d9d374f --- /dev/null +++ b/config/powerpcspe/config @@ -0,0 +1,32 @@ +## +## file: arch/powerpc/Kconfig +## +CONFIG_HIGHMEM=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=ttyS0,115200" + +## +## file: arch/powerpc/platforms/85xx/Kconfig +## +CONFIG_MPC8540_ADS=y +CONFIG_MPC8560_ADS=y +CONFIG_MPC85xx_CDS=y +CONFIG_MPC85xx_MDS=y +CONFIG_MPC8536_DS=y +CONFIG_MPC85xx_DS=y +CONFIG_MPC85xx_RDB=y + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +## choice: Processor Type +CONFIG_PPC_85xx=y +## end choice +CONFIG_PHYS_64BIT=y +CONFIG_SMP=y + +## +## file: drivers/gpio/Kconfig +## +CONFIG_GPIOLIB=y + diff --git a/config/powerpcspe/defines b/config/powerpcspe/defines new file mode 100644 index 00000000000..e978279a53c --- /dev/null +++ b/config/powerpcspe/defines @@ -0,0 +1,17 @@ +[base] +flavours: + powerpcspe +kernel-arch: powerpc + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false +vdso: true + +[image] +suggests: mkvmlinuz +install-stem: vmlinux + +[description] +hardware: 32-bit PowerPC with SPE (instead of AltiVec) with SMP support diff --git a/config/ppc64/defines b/config/ppc64/defines new file mode 100644 index 00000000000..86b6b2057ce --- /dev/null +++ b/config/ppc64/defines @@ -0,0 +1,21 @@ +[base] +flavours: + powerpc64 +kernel-arch: powerpc + +[build] +image-file: vmlinux +# linux-signed only works for architectures in the main archive +signed-modules: false +vdso: true + +[image] +configs: +suggests: mkvmlinuz +install-stem: vmlinux + +[powerpc64_description] +hardware: 64-bit PowerPC + +[powerpc64_image] +configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be diff --git a/config/ppc64el/defines b/config/ppc64el/defines new file mode 100644 index 00000000000..987ab7df19a --- /dev/null +++ b/config/ppc64el/defines @@ -0,0 +1,19 @@ +[base] +flavours: + powerpc64le +kernel-arch: powerpc + +[build] +image-file: vmlinux +vdso: true + +[image] +configs: +suggests: mkvmlinuz +install-stem: vmlinux + +[powerpc64le_description] +hardware: Little-endian 64-bit PowerPC + +[powerpc64le_image] +configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-le diff --git a/config/s390/defines b/config/s390/defines new file mode 100644 index 00000000000..5b14fa7a4ec --- /dev/null +++ b/config/s390/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: s390 +featuresets: +# empty; s390 must be part of a multiarch installation with an s390x kernel diff --git a/config/s390x/config b/config/s390x/config new file mode 100644 index 00000000000..cff53f99732 --- /dev/null +++ b/config/s390x/config @@ -0,0 +1,212 @@ +## +## file: arch/s390/Kconfig +## +## choice: Processor type +CONFIG_MARCH_Z900=y +# CONFIG_MARCH_Z990 is not set +# CONFIG_MARCH_Z9_109 is not set +# CONFIG_MARCH_Z10 is not set +## end choice +CONFIG_COMPAT=y +CONFIG_SMP=y +CONFIG_NR_CPUS=32 +CONFIG_HOTPLUG_CPU=y +CONFIG_SCHED_TOPOLOGY=y +CONFIG_PACK_STACK=y +# CONFIG_CHECK_STACK is not set +CONFIG_QDIO=y +CONFIG_PCI=y +CONFIG_PCI_NR_FUNCTIONS=64 +CONFIG_CHSC_SCH=m +CONFIG_SCM_BUS=y +CONFIG_EADM_SCH=m +CONFIG_SECCOMP=y +CONFIG_PFAULT=y +# CONFIG_SHARED_KERNEL is not set +CONFIG_CMM=y +CONFIG_CMM_IUCV=y +CONFIG_APPLDATA_BASE=y +CONFIG_APPLDATA_MEM=m +CONFIG_APPLDATA_OS=m +CONFIG_APPLDATA_NET_SUM=m +CONFIG_S390_HYPFS_FS=y +CONFIG_S390_GUEST=y + +## +## file: arch/s390/Kconfig.debug +## +# CONFIG_S390_PTDUMP is not set + +## +## file: arch/s390/kvm/Kconfig +## +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +# CONFIG_KVM_S390_UCONTROL is not set + +## +## file: block/partitions/Kconfig +## +CONFIG_IBM_PARTITION=y +CONFIG_BSD_DISKLABEL=y + +## +## file: drivers/block/Kconfig +## +# CONFIG_CDROM_PKTCDVD is not set + +## +## file: drivers/crypto/Kconfig +## +CONFIG_ZCRYPT=m +CONFIG_CRYPTO_SHA1_S390=m +CONFIG_CRYPTO_SHA256_S390=m +CONFIG_CRYPTO_SHA512_S390=m +CONFIG_CRYPTO_DES_S390=m +CONFIG_CRYPTO_AES_S390=m +CONFIG_S390_PRNG=m + +## +## file: drivers/input/touchscreen/Kconfig +## +# CONFIG_INPUT_TOUCHSCREEN is not set + +## +## file: drivers/memstick/Kconfig +## +# CONFIG_MEMSTICK is not set + +## +## file: drivers/net/appletalk/Kconfig +## +# CONFIG_ATALK is not set + +## +## file: drivers/net/ppp/Kconfig +## +# CONFIG_PPP is not set + +## +## file: drivers/net/slip/Kconfig +## +# CONFIG_SLIP is not set + +## +## file: drivers/net/wan/Kconfig +## +# CONFIG_WAN is not set + +## +## file: drivers/pci/hotplug/Kconfig +## +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_S390=y + +## +## file: drivers/s390/block/Kconfig +## +CONFIG_BLK_DEV_XPRAM=m +CONFIG_DCSSBLK=m +CONFIG_DASD=m +# CONFIG_DASD_PROFILE is not set +CONFIG_DASD_ECKD=m +CONFIG_DASD_FBA=m +CONFIG_DASD_DIAG=m +# CONFIG_DASD_EER is not set +CONFIG_SCM_BLOCK=m +CONFIG_SCM_BLOCK_CLUSTER_WRITE=y + +## +## file: drivers/s390/char/Kconfig +## +CONFIG_TN3270=y +CONFIG_TN3270_TTY=y +CONFIG_TN3270_FS=m +CONFIG_TN3270_CONSOLE=y +CONFIG_TN3215=y +CONFIG_TN3215_CONSOLE=y +CONFIG_SCLP_TTY=y +CONFIG_SCLP_CONSOLE=y +CONFIG_SCLP_VT220_TTY=y +CONFIG_SCLP_VT220_CONSOLE=y +CONFIG_SCLP_ASYNC=m +CONFIG_S390_TAPE=m +CONFIG_S390_TAPE_34XX=m +CONFIG_S390_TAPE_3590=m +CONFIG_VMLOGRDR=m +CONFIG_VMCP=y +CONFIG_MONREADER=m +CONFIG_MONWRITER=m +CONFIG_S390_VMUR=m + +## +## file: drivers/s390/net/Kconfig +## +CONFIG_LCS=m +CONFIG_CTCM=m +CONFIG_NETIUCV=m +CONFIG_SMSGIUCV=y +CONFIG_QETH=m +CONFIG_QETH_L2=m +CONFIG_QETH_L3=m + +## +## file: drivers/scsi/Kconfig +## +CONFIG_ZFCP=m + +## +## file: drivers/tty/hvc/Kconfig +## +CONFIG_HVC_IUCV=y + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_DIAG288_WATCHDOG=m + +## +## file: init/Kconfig +## +# CONFIG_PCI_QUIRKS is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +## end choice + +## +## file: net/atm/Kconfig +## +# CONFIG_ATM is not set + +## +## file: net/decnet/Kconfig +## +# CONFIG_DECNET is not set + +## +## file: net/ipx/Kconfig +## +# CONFIG_IPX is not set + +## +## file: net/iucv/Kconfig +## +CONFIG_IUCV=y +CONFIG_AFIUCV=m + +## +## file: net/lapb/Kconfig +## +# CONFIG_LAPB is not set + +## +## file: net/llc/Kconfig +## +# CONFIG_LLC2 is not set + diff --git a/config/s390x/defines b/config/s390x/defines new file mode 100644 index 00000000000..7131bd0d1db --- /dev/null +++ b/config/s390x/defines @@ -0,0 +1,21 @@ +[base] +flavours: + s390x +kernel-arch: s390 + +[build] +image-file: arch/s390/boot/image +vdso: true + +[image] +bootloaders: s390-tools +install-stem: vmlinuz + +[relations] +headers%gcc-5: linux-compiler-gcc-5-s390 + +[s390x_build] +debug-info: true + +[s390x_description] +hardware: IBM zSeries diff --git a/config/sh3/defines b/config/sh3/defines new file mode 100644 index 00000000000..71cbe648c4d --- /dev/null +++ b/config/sh3/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: sh +featuresets: +# empty; just building headers yet diff --git a/config/sh4/config b/config/sh4/config new file mode 100644 index 00000000000..25694da8132 --- /dev/null +++ b/config/sh4/config @@ -0,0 +1,66 @@ +## +## file: arch/Kconfig +## +## choice: Stack Protector buffer overflow detection +CONFIG_CC_STACKPROTECTOR_REGULAR=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +## end choice + +## +## file: arch/sh/Kconfig +## +CONFIG_KEXEC=y +CONFIG_SECCOMP=y + +## +## file: arch/sh/Kconfig.cpu +## +## choice: Endianness selection +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice +CONFIG_SH_FPU=y +CONFIG_SH_STORE_QUEUES=y + +## +## file: arch/sh/drivers/Kconfig +## +CONFIG_HEARTBEAT=y + +## +## file: arch/sh/mm/Kconfig +## +## choice: Cache mode +CONFIG_CACHE_WRITEBACK=y +## end choice + +## +## file: drivers/cpufreq/Kconfig +## +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_SH_CPU_FREQ=y + +## +## file: drivers/pci/pcie/Kconfig +## +# CONFIG_PCIEPORTBUS is not set + +## +## file: kernel/Kconfig.hz +## +## choice: Timer frequency +CONFIG_HZ_250=y +## end choice + +## +## file: kernel/irq/Kconfig +## +CONFIG_SPARSE_IRQ=y + +## +## file: kernel/Kconfig.preempt +## +## choice: Preemption Model +CONFIG_PREEMPT_NONE=y +## end choice + diff --git a/config/sh4/config.sh7751r b/config/sh4/config.sh7751r new file mode 100644 index 00000000000..c17f6812aa0 --- /dev/null +++ b/config/sh4/config.sh7751r @@ -0,0 +1,174 @@ +## +## file: arch/sh/Kconfig +## +## choice: Processor sub-type selection +CONFIG_CPU_SUBTYPE_SH7751R=y +## end choice +CONFIG_SH_PCLK_FREQ=60000000 +CONFIG_PCI=y + +## +## file: arch/sh/boards/Kconfig +## +CONFIG_SH_RTS7751R2D=y + +## +## file: arch/sh/boards/mach-r2d/Kconfig +## +CONFIG_RTS7751R2D_PLUS=y + +## +## file: arch/sh/Kconfig.cpu +## +## choice: Endianness selection +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice +CONFIG_SH_FPU=y + +## +## file: arch/sh/mm/Kconfig +## +CONFIG_MMU=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_MEMORY_START=0x0c000000 +CONFIG_MEMORY_SIZE=0x04000000 +CONFIG_VSYSCALL=y +## choice: Kernel page size +CONFIG_PAGE_SIZE_4KB=y +## end choice + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y +CONFIG_ATA_SFF=y +CONFIG_PATA_PLATFORM=y + +## +## file: drivers/clocksource/Kconfig +## +CONFIG_SH_TIMER_TMU=y + +## +## file: drivers/hid/Kconfig +## +CONFIG_HID=y + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=y + +## +## file: drivers/input/Kconfig +## +CONFIG_INPUT=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_SM501=y + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_AMDSTD=y + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_PHYSMAP=y + +## +## file: drivers/net/Kconfig +## +CONFIG_NETDEVICES=y + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_8139CP=y + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_R9701=y +# CONFIG_RTC_DRV_SH is not set +# CONFIG_RTC_DRV_GENERIC is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI=y +CONFIG_SPI_BITBANG=y +CONFIG_SPI_SH_SCI=y + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=6 +CONFIG_SERIAL_SH_SCI_CONSOLE=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB_SUPPORT=y +CONFIG_USB=y + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_OHCI_HCD=y + +## +## file: drivers/video/console/Kconfig +## +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_SM501=y + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_FLATMEM_MANUAL=y +## end choice + diff --git a/config/sh4/config.sh7785lcr b/config/sh4/config.sh7785lcr new file mode 100644 index 00000000000..c4fa1f5811e --- /dev/null +++ b/config/sh4/config.sh7785lcr @@ -0,0 +1,228 @@ +## +## file: arch/sh/Kconfig +## +## choice: Processor sub-type selection +CONFIG_CPU_SUBTYPE_SH7785=y +## end choice +CONFIG_SH_PCLK_FREQ=50000000 +CONFIG_PCI=y + +## +## file: arch/sh/boards/Kconfig +## +CONFIG_SH_SH7785LCR=y + +## +## file: arch/sh/Kconfig.cpu +## +## choice: Endianness selection +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice +CONFIG_SH_FPU=y +CONFIG_SH_STORE_QUEUES=y + +## +## file: arch/sh/mm/Kconfig +## +CONFIG_MMU=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_MEMORY_START=0x48000000 +CONFIG_MEMORY_SIZE=0x18000000 +CONFIG_VSYSCALL=y +## choice: Kernel page size +CONFIG_PAGE_SIZE_4KB=y +## end choice +## choice: HugeTLB page size +CONFIG_HUGETLB_PAGE_SIZE_64K=y +## end choice + +## +## file: drivers/ata/Kconfig +## +CONFIG_ATA=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SIL=y + +## +## file: drivers/clocksource/Kconfig +## +CONFIG_SH_TIMER_TMU=y + +## +## file: drivers/dma/Kconfig +## +CONFIG_DMADEVICES=y + +## +## file: drivers/hid/Kconfig +## +CONFIG_HID=y + +## +## file: drivers/hid/usbhid/Kconfig +## +CONFIG_USB_HID=y + +## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_HELPER_AUTO=y + +## +## file: drivers/i2c/algos/Kconfig +## +CONFIG_I2C_ALGOPCA=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_PCA_PLATFORM=y + +## +## file: drivers/input/Kconfig +## +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_EVDEV=y + +## +## file: drivers/input/keyboard/Kconfig +## +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y + +## +## file: drivers/input/mouse/Kconfig +## +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y + +## +## file: drivers/input/serio/Kconfig +## +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y + +## +## file: drivers/mfd/Kconfig +## +CONFIG_MFD_SM501=y + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y + +## +## file: drivers/mtd/chips/Kconfig +## +CONFIG_MTD_CFI=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_AMDSTD=y + +## +## file: drivers/mtd/maps/Kconfig +## +CONFIG_MTD_PHYSMAP=y + +## +## file: drivers/net/Kconfig +## +CONFIG_NETDEVICES=y + +## +## file: drivers/net/ethernet/realtek/Kconfig +## +CONFIG_R8169=y + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_RS5C372=y +# CONFIG_RTC_DRV_SH is not set +# CONFIG_RTC_DRV_GENERIC is not set + +## +## file: drivers/scsi/Kconfig +## +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y + +## +## file: drivers/tty/Kconfig +## +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y + +## +## file: drivers/tty/serial/Kconfig +## +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=6 +CONFIG_SERIAL_SH_SCI_CONSOLE=y + +## +## file: drivers/usb/Kconfig +## +CONFIG_USB_SUPPORT=y +CONFIG_USB=y + +## +## file: drivers/usb/host/Kconfig +## +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_R8A66597_HCD=y + +## +## file: drivers/usb/storage/Kconfig +## +CONFIG_USB_STORAGE=y + +## +## file: drivers/video/console/Kconfig +## +CONFIG_FRAMEBUFFER_CONSOLE=y + +## +## file: drivers/video/fbdev/Kconfig +## +CONFIG_FB=y +CONFIG_FB_SM501=y + +## +## file: drivers/watchdog/Kconfig +## +CONFIG_WATCHDOG=y +CONFIG_SH_WDT=y +# CONFIG_USBPCWATCHDOG is not set + +## +## file: mm/Kconfig +## +## choice: Memory model +CONFIG_SPARSEMEM_MANUAL=y +## end choice +CONFIG_MIGRATION=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 + diff --git a/config/sh4/defines b/config/sh4/defines new file mode 100644 index 00000000000..75b001120d0 --- /dev/null +++ b/config/sh4/defines @@ -0,0 +1,27 @@ +[base] +flavours: + sh7751r + sh7785lcr +kernel-arch: sh + +[build] +image-file: arch/sh/boot/zImage +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +install-stem: vmlinuz + +[sh7751r_description] +hardware: sh7751r +hardware-long: Renesas SH7751R R2D plus board + +[sh7785lcr_description] +hardware: sh7785lcr +hardware-long: Renesas SH7785 reference board + +[sh7785lcr_image] +recommends: u-boot-tools +# Kernel partition size: 4MB +check-size: 4194304 + diff --git a/config/sparc/defines b/config/sparc/defines new file mode 100644 index 00000000000..c7e0119c292 --- /dev/null +++ b/config/sparc/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: sparc +featuresets: +# empty; sparc must be part of a multiarch installation with a sparc64 kernel diff --git a/config/sparc64/defines b/config/sparc64/defines new file mode 100644 index 00000000000..cd4d9df6a5c --- /dev/null +++ b/config/sparc64/defines @@ -0,0 +1,27 @@ +[base] +flavours: + sparc64 + sparc64-smp +kernel-arch: sparc + +[build] +image-file: arch/sparc/boot/zImage +# linux-signed only works for architectures in the main archive +signed-modules: false + +[image] +configs: +suggests: silo, fdutils +install-stem: vmlinuz + +[sparc64_description] +hardware: uniprocessor 64-bit UltraSPARC + +[sparc64_image] +configs: kernelarch-sparc/config-up + +[sparc64-smp_description] +hardware: multiprocessor 64-bit UltraSPARC + +[sparc64-smp_image] +configs: kernelarch-sparc/config-smp diff --git a/config/tilegx/defines b/config/tilegx/defines new file mode 100644 index 00000000000..fa3a88b8642 --- /dev/null +++ b/config/tilegx/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: tile +featuresets: +# empty; just building headers yet diff --git a/config/x32/defines b/config/x32/defines new file mode 100644 index 00000000000..0a19846d483 --- /dev/null +++ b/config/x32/defines @@ -0,0 +1,4 @@ +[base] +kernel-arch: x86 +featuresets: +# empty; x32 must be part of a multiarch installation with an amd64 kernel diff --git a/control b/control new file mode 100644 index 00000000000..8cd9b7d65ca --- /dev/null +++ b/control @@ -0,0 +1,7089 @@ +Source: linux +Section: kernel +Priority: optional +Maintainer: Debian Kernel Team +Uploaders: Bastian Blank , maximilian attems , Ben Hutchings , Salvatore Bonaccorso +Standards-Version: 3.9.8 +Build-Depends: debhelper (>= 10.1~), python3:any, quilt, cpio , xz-utils , kernel-wedge (>= 2.93~) , kmod , bc , libssl-dev:native , libssl-dev [linux-any] , openssl (>= 1.1.0-1~) | openssl:native , asciidoc-base | asciidoc , xmlto , bison , flex (>= 2.6.1-1.1~) | flex:native , gcc-multilib [amd64 ppc64 s390x sparc64] , libaudit-dev , libbabeltrace-dev (>= 1.5.0) , libbabeltrace-ctf-dev (>= 1.5.0) , libdw-dev , libelf-dev , libiberty-dev , libnewt-dev , libnuma-dev [amd64 arm64 hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc powerpcspe ppc64 ppc64el sparc x32] , libperl-dev , libunwind8-dev [amd64 armel armhf arm64 i386] , python-dev , autoconf , automake , libtool , libglib2.0-dev , libudev-dev , libwrap0-dev , rsync , libpci-dev , dh-python , gcc-6 [alpha amd64 arm64 armel armhf hppa i386 m68k mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64] , gcc-6-alpha-linux-gnu:native [alpha] , gcc-6-x86-64-linux-gnu:native [amd64] , gcc-6-aarch64-linux-gnu:native [arm64] , gcc-6-arm-linux-gnueabi:native [armel] , gcc-6-arm-linux-gnueabihf:native [armhf] , binutils-hppa64-linux-gnu [hppa] , gcc-6-hppa64-linux-gnu [hppa] , gcc-6-hppa-linux-gnu:native [hppa] , binutils-hppa64-linux-gnu:native [hppa] , gcc-6-hppa64-linux-gnu:native [hppa] , gcc-6-i686-linux-gnu:native [i386] , gcc-6-m68k-linux-gnu:native [m68k] , gcc-6-mips-linux-gnu:native [mips] , gcc-6-mipsel-linux-gnu:native [mipsel] , gcc-6-mips64-linux-gnuabi64:native [mips64] , gcc-6-mips64el-linux-gnuabi64:native [mips64el] , gcc-6-powerpc-linux-gnu:native [powerpc] , gcc-6-powerpc-linux-gnuspe:native [powerpcspe] , gcc-6-powerpc64-linux-gnu:native [ppc64] , gcc-6-powerpc64le-linux-gnu:native [ppc64el] , gcc-6-s390x-linux-gnu:native [s390x] , gcc-6-sh4-linux-gnu:native [sh4] , gcc-6-sparc64-linux-gnu:native [sparc64] +Build-Depends-Indep: patchutils , python-sphinx , python-sphinx-rtd-theme , xmlto +Homepage: https://www.kernel.org/ +Vcs-Browser: https://anonscm.debian.org/cgit/kernel/linux.git +Vcs-Git: https://anonscm.debian.org/git/kernel/linux.git + +Package: linux-source-4.9 +Architecture: all +Section: kernel +Depends: binutils, xz-utils, ${misc:Depends} +Recommends: libc6-dev | libc-dev, gcc, make, bc +Suggests: libncurses-dev | ncurses-dev, libqt4-dev, pkg-config +Description: Linux kernel source for version 4.9 with Debian patches + This package provides source code for the Linux kernel version 4.9. This + source closely tracks official Linux kernel releases. Debian's + modifications to that source consist of security fixes, bug fixes, and + features that have already been (or are believed to be) accepted by the + upstream maintainers. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-support-4.9.0-1 +Architecture: all +Section: devel +Depends: ${python3:Depends}, ${misc:Depends} +Description: Support files for Linux 4.9 + This package provides support files for the Linux kernel build, e.g. + scripts to handle ABI information and for generation of build system meta + data. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-doc-4.9 +Architecture: all +Section: doc +Depends: ${misc:Depends} +Description: Linux kernel specific documentation for version 4.9 + This package provides the various README files and HTML documentation for + the Linux kernel version 4.9. Plenty of information, including the + descriptions of various kernel subsystems, filesystems, driver-specific + notes and the like. Consult the file + /usr/share/doc/linux-doc-4.9/Documentation/00-INDEX for the detailed + description of the contents. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-manual-4.9 +Architecture: all +Section: doc +Provides: linux-manual +Depends: ${misc:Depends} +Replaces: linux-manual +Conflicts: linux-manual +Description: Linux kernel API manual pages for version 4.9 + This package provides the Kernel Hacker's Guide in the form of manual + pages, describing the kernel API functions. They are installed into + section 9 of the manual. + . + As the files containing manual pages for different kernel versions are + installed in the same location, only one linux-manual package may be + installed at a time. The linux-doc package containing the documentation + in other formats is free from such restriction. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-kbuild-4.9 +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Kbuild infrastructure for Linux 4.9 + This package provides the kbuild infrastructure for the headers packages + for Linux kernel version 4.9. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-cpupower +Architecture: linux-any +Section: admin +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: CPU frequency and voltage scaling tools for Linux + This package contains the 'power/cpupower' tools for Linux. + . + This set of userspace tools allow inspection and control of cpufreq and + cpuidle tunables for hardware that support these features. The "cpupower" + command replaces "cpufreq-info" and "cpufreq-set" in cpufrequtils. +Build-Profiles: + +Package: libcpupower1 +Architecture: linux-any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: CPU frequency and voltage scaling tools for Linux (libraries) + This package contains the shared library. +Build-Profiles: + +Package: libcpupower-dev +Architecture: linux-any +Section: libdevel +Provides: libcpufreq-dev +Depends: ${shlibs:Depends}, ${misc:Depends}, libcpupower1 (= ${binary:Version}) +Replaces: libcpufreq-dev +Conflicts: libcpufreq-dev +Description: CPU frequency and voltage scaling tools for Linux (development files) + This package contains the 'power/cpupower' headers and library shared + objects. +Build-Profiles: + +Package: linux-perf-4.9 +Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el s390 s390x sh4 sparc sparc64 +Section: devel +Provides: linux-tools-4.9 +Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends} +Recommends: linux-base +Suggests: linux-doc-4.9 +Replaces: linux-tools-4.9 +Conflicts: linux-tools-4.9 +Description: Performance analysis tools for Linux 4.9 + This package contains the 'perf' performance analysis tools for Linux + kernel version 4.9. + . + The linux-base package contains a 'perf' command which will invoke the + appropriate version for the running kernel. +Build-Profiles: + +Package: libusbip-dev +Architecture: linux-any +Section: libdevel +Depends: ${misc:Depends} +Description: USB device sharing system over IP network (development files) + USB/IP is a system for sharing USB devices over the network. + . + This package provides headers for the libusbip library and the library + itself for static linking. +Build-Profiles: + +Package: usbip +Architecture: linux-any +Section: admin +Depends: usbutils, ${shlibs:Depends}, ${misc:Depends} +Description: USB device sharing system over IP network + USB/IP is a system for sharing USB devices over the network. + . + To share USB devices between computers with their full functionality, + USB/IP encapsulates "USB requests" into IP packets and transmits them + between computers. + . + Original USB device drivers and applications can be used for remote USB + devices without any modification of them. A computer can use remote USB + devices as if they were directly attached. + . + Currently USB/IP provides no access control or encryption. It should only + be used in trusted environments. + . + This package provides the server component 'usbipd' and the client tool + 'usbip'. +Build-Profiles: + +Package: hyperv-daemons +Architecture: amd64 i386 x32 +Section: admin +Depends: lsb-base, ${shlibs:Depends}, ${misc:Depends} +Description: Support daemons for Linux running on Hyper-V + Suite of daemons for Linux guests running on Hyper-V, consisting of + hv_fcopy_daemon, hv_kvp_daemon and hv_vss_daemon. + . + hv_fcopy_daemon provides the file copy service, allowing the host to copy + files into the guest. + . + hv_kvp_daemon provides the key-value pair (KVP) service, allowing the host + to get and set the IP networking configuration of the guest. (This + requires helper scripts which are not currently included.) + . + hv_vss_daemon provides the volume shadow copy service (VSS), allowing the + host to freeze the guest filesystems while taking a snapshot. +Build-Profiles: + +Package: linux-headers-4.9.0-1-common +Architecture: all +Depends: ${misc:Depends} +Description: Common header files for Linux 4.9.0-1 + This package provides the common kernel header files for Linux kernel + version 4.9.0-1, generally used for building out-of-tree kernel modules. + To obtain a complete set of headers you also need to install the + linux-headers-4.9.0-1-(flavour) package, matching the flavour of the + kernel you intend the build for. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-headers-4.9.0-1-common-rt +Architecture: all +Depends: ${misc:Depends} +Description: Common header files for Linux 4.9.0-1-rt + This package provides the common kernel header files for Linux kernel + version 4.9.0-1 with the PREEMPT_RT featureset, generally used for + building out-of-tree kernel modules. To obtain a complete set of headers + you also need to install the linux-headers-4.9.0-1-(flavour) package, + matching the flavour of the kernel you intend the build for. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-libc-dev +Architecture: alpha amd64 arm64 armel armhf hppa i386 m68k mips mips64 mips64el mipsel mipsn32 mipsn32el or1k powerpc powerpcspe ppc64 ppc64el s390 s390x sh3 sh4 sparc sparc64 tilegx x32 +Section: devel +Provides: linux-kernel-headers +Depends: ${misc:Depends} +Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These + headers are used by the installed headers for GNU libc and other system + libraries. +Multi-Arch: same + +Package: linux-headers-4.9.0-1-all +Architecture: alpha amd64 arm64 armel armhf hppa i386 m68k mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 +Depends: linux-headers-4.9.0-1-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends} +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-alpha +Architecture: alpha +Depends: ${misc:Depends}, linux-headers-4.9.0-1-alpha-generic (= ${binary:Version}), linux-headers-4.9.0-1-alpha-smp (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: kernel-image +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nic-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, nic-shared-modules-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nic-wireless-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: nic-wireless-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, nic-shared-modules-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di, pcmcia-modules-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. Includes + crypto modules only needed for wireless (WEP, WPA). +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: serial-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: optional +Provides: serial-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, pcmcia-modules-4.9.0-1-alpha-generic-di +Description: Serial drivers + This package contains serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, serial-modules-4.9.0-1-alpha-generic-di, zlib-modules-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: pata-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, ata-modules-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di, isofs-modules-4.9.0-1-alpha-generic-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di, cdrom-core-modules-4.9.0-1-alpha-generic-di, ata-modules-4.9.0-1-alpha-generic-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: loop-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di, zlib-modules-4.9.0-1-alpha-generic-di, md-modules-4.9.0-1-alpha-generic-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: fat-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: md-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, md-modules-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: usb-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-modules-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: fb-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: fb-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Frame buffer support + This package contains Frame buffer drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: input-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: event-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, event-modules-4.9.0-1-alpha-generic-di, input-modules-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nic-pcmcia-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: nic-pcmcia-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, nic-shared-modules-4.9.0-1-alpha-generic-di, nic-wireless-modules-4.9.0-1-alpha-generic-di, pcmcia-modules-4.9.0-1-alpha-generic-di +Description: Common PCMCIA NIC drivers + This package contains common PCMCIA NIC drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: pcmcia-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: pcmcia-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Common PCMCIA drivers + This package contains common PCMCIA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, nic-shared-modules-4.9.0-1-alpha-generic-di, nic-wireless-modules-4.9.0-1-alpha-generic-di, usb-modules-4.9.0-1-alpha-generic-di, crc-modules-4.9.0-1-alpha-generic-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: sata-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di, ata-modules-4.9.0-1-alpha-generic-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: crc-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, md-modules-4.9.0-1-alpha-generic-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: ata-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di, scsi-core-modules-4.9.0-1-alpha-generic-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: srm-modules-4.9.0-1-alpha-generic-di +Architecture: alpha +Section: debian-installer +Priority: standard +Provides: srm-modules +Depends: kernel-image-4.9.0-1-alpha-generic-di +Description: SRM modules + This package contains the srm_env module which provides access to the SRM + environment. +Build-Profiles: +Kernel-Version: 4.9.0-1-alpha-generic +Package-Type: udeb + +Package: linux-image-4.9.0-1-alpha-generic +Architecture: alpha +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [alpha] | linux-initramfs-tool [alpha] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, aboot [alpha], fdutils [alpha] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Alpha + The Linux kernel 4.9 and modules for use on DEC Alpha systems with + extended kernel start address (Wildfire, Titan, Marvel). +Build-Profiles: + +Package: linux-headers-4.9.0-1-alpha-generic +Architecture: alpha +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-alpha-generic + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-alpha-generic, generally used for building + out-of-tree kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-alpha-generic, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-alpha-generic package. +Build-Profiles: + +Package: linux-image-4.9.0-1-alpha-generic-dbgsym +Architecture: alpha +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-alpha-generic +Build-Profiles: + +Package: linux-image-4.9.0-1-alpha-smp +Architecture: alpha +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [alpha] | linux-initramfs-tool [alpha] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, aboot [alpha], fdutils [alpha] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Alpha SMP + The Linux kernel 4.9 and modules for use on DEC Alpha SMP systems with + extended kernel start address (Wildfire, Titan, Marvel). +Build-Profiles: + +Package: linux-headers-4.9.0-1-alpha-smp +Architecture: alpha +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-alpha-smp + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-alpha-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-alpha-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-alpha-smp package. +Build-Profiles: + +Package: linux-image-4.9.0-1-alpha-smp-dbgsym +Architecture: alpha +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-alpha-smp +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-amd64 +Architecture: amd64 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-amd64 (= ${binary:Version}), linux-headers-4.9.0-1-rt-amd64 (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-amd64-unsigned +Architecture: amd64 +Provides: linux-image-4.9.0-1-amd64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [amd64] | linux-initramfs-tool [amd64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64] +Replaces: linux-image-4.9.0-1-amd64 +Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-amd64 +Description: Linux 4.9 for 64-bit PCs + The Linux kernel 4.9 and modules for use on PCs with AMD64, Intel 64 or + VIA Nano processors. + . + This kernel also runs on a Xen hypervisor. It supports both privileged + (dom0) and unprivileged (domU) operation. +Build-Profiles: + +Package: linux-headers-4.9.0-1-amd64 +Architecture: amd64 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-amd64 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-amd64, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-amd64, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-amd64 + package. +Build-Profiles: + +Package: linux-image-4.9.0-1-amd64-dbgsym +Architecture: amd64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-amd64 +Build-Profiles: + +Package: linux-image-4.9.0-1-rt-amd64-unsigned +Architecture: amd64 +Provides: linux-image-4.9.0-1-rt-amd64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [amd64] | linux-initramfs-tool [amd64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64] +Replaces: linux-image-4.9.0-1-rt-amd64 +Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-rt-amd64 +Description: Linux 4.9 for 64-bit PCs, PREEMPT_RT + The Linux kernel 4.9 and modules for use on PCs with AMD64, Intel 64 or + VIA Nano processors. + . + This kernel includes the PREEMPT_RT realtime patch set. +Build-Profiles: + +Package: linux-headers-4.9.0-1-rt-amd64 +Architecture: amd64 +Depends: linux-headers-4.9.0-1-common-rt (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-rt-amd64 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-rt-amd64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-rt-amd64, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-rt-amd64 package. +Build-Profiles: + +Package: linux-image-4.9.0-1-rt-amd64-dbgsym +Architecture: amd64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-rt-amd64 +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-arm64 +Architecture: arm64 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-arm64 (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-arm64-unsigned +Architecture: arm64 +Provides: linux-image-4.9.0-1-arm64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [arm64] | linux-initramfs-tool [arm64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Replaces: linux-image-4.9.0-1-arm64 +Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-arm64 +Description: Linux 4.9 for 64-bit ARMv8 machines + The Linux kernel 4.9 and modules for use on 64-bit ARMv8 machines. +Build-Profiles: + +Package: linux-headers-4.9.0-1-arm64 +Architecture: arm64 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-arm64 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-arm64, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-arm64, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-arm64 + package. +Build-Profiles: + +Package: linux-image-4.9.0-1-arm64-dbgsym +Architecture: arm64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-arm64 +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-armel +Architecture: armel +Depends: ${misc:Depends}, linux-headers-4.9.0-1-marvell (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: kernel-image, rtc-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: nic-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-marvell-di, nic-shared-modules-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-marvell-di, zlib-modules-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-marvell-di, scsi-core-modules-4.9.0-1-marvell-di, isofs-modules-4.9.0-1-marvell-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: loop-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: ipv6-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: ipv6-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: IPv6 driver + This package contains the IPv6 driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di, zlib-modules-4.9.0-1-marvell-di, md-modules-4.9.0-1-marvell-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: jffs2-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: jffs2-modules +Depends: kernel-image-4.9.0-1-marvell-di, zlib-modules-4.9.0-1-marvell-di +Description: JFFS2 filesystem support + This package contains the JFFS2 filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: fat-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: minix-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: md-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-marvell-di, md-modules-4.9.0-1-marvell-di, scsi-core-modules-4.9.0-1-marvell-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: usb-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-marvell-di, scsi-core-modules-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: fb-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: fb-modules +Depends: kernel-image-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di +Description: Frame buffer support + This package contains Frame buffer drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: input-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: event-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-marvell-di, event-modules-4.9.0-1-marvell-di, input-modules-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-marvell-di, nic-shared-modules-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: sata-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-marvell-di, scsi-core-modules-4.9.0-1-marvell-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: crc-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-marvell-di, md-modules-4.9.0-1-marvell-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: mmc-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: mmc-modules +Depends: kernel-image-4.9.0-1-marvell-di, usb-modules-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: MMC/SD card modules + This package contains modules needed to support MMC (multimedia) and SD + cards. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: uinput-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: uinput-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: uinput support + This package contains the uinput module. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: leds-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: leds-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: LED modules + This package contains LED modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: udf-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-marvell-di, crc-modules-4.9.0-1-marvell-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: mtd-modules-4.9.0-1-marvell-di +Architecture: armel +Section: debian-installer +Priority: extra +Provides: mtd-modules +Depends: kernel-image-4.9.0-1-marvell-di +Description: MTD modules + This package contains MTD modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-marvell +Package-Type: udeb + +Package: linux-image-4.9.0-1-marvell +Architecture: armel +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [armel] | linux-initramfs-tool [armel] +Recommends: firmware-linux-free, ${kernel:Recommends}, u-boot-tools [armel] +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: flash-kernel (<< 3.57~) [armel], initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Marvell Kirkwood/Orion + The Linux kernel 4.9 and modules for use on Marvell Kirkwood based systems + (SheevaPlug, QNAP TS-119/TS-219, etc) and Orion 5181, 5182 and 5281 based + systems (QNAP TS-109/TS-209, etc). +Build-Profiles: + +Package: linux-headers-4.9.0-1-marvell +Architecture: armel +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-marvell + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-marvell, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-marvell, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-marvell package. +Build-Profiles: + +Package: linux-image-4.9.0-1-marvell-dbgsym +Architecture: armel +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-marvell +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-armhf +Architecture: armhf +Depends: ${misc:Depends}, linux-headers-4.9.0-1-armmp (= ${binary:Version}), linux-headers-4.9.0-1-armmp-lpae (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-armmp-unsigned +Architecture: armhf +Provides: linux-image-4.9.0-1-armmp +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [armhf] | linux-initramfs-tool [armhf] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Replaces: linux-image-4.9.0-1-armmp +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-armmp +Description: Linux 4.9 for ARMv7 multiplatform compatible SoCs + The Linux kernel 4.9 and modules for use on ARMv7 multiplatform kernel. + See https://wiki.debian.org/DebianKernel/ARMMP for details of supported + platforms. +Build-Profiles: + +Package: linux-headers-4.9.0-1-armmp +Architecture: armhf +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-armmp + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-armmp, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-armmp, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-armmp + package. +Build-Profiles: + +Package: linux-image-4.9.0-1-armmp-dbgsym +Architecture: armhf +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-armmp +Build-Profiles: + +Package: linux-image-4.9.0-1-armmp-lpae-unsigned +Architecture: armhf +Provides: linux-image-4.9.0-1-armmp-lpae +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [armhf] | linux-initramfs-tool [armhf] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Replaces: linux-image-4.9.0-1-armmp-lpae +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-armmp-lpae +Description: Linux 4.9 for ARMv7 multiplatform compatible SoCs supporting LPAE + The Linux kernel 4.9 and modules for use on ARMv7 multiplatform kernel + supporting LPAE. See https://wiki.debian.org/DebianKernel/ARMMP for + details of supported platforms.. +Build-Profiles: + +Package: linux-headers-4.9.0-1-armmp-lpae +Architecture: armhf +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-armmp-lpae + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-armmp-lpae, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-armmp-lpae, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-armmp-lpae package. +Build-Profiles: + +Package: linux-image-4.9.0-1-armmp-lpae-dbgsym +Architecture: armhf +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-armmp-lpae +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-hppa +Architecture: hppa +Depends: ${misc:Depends}, linux-headers-4.9.0-1-parisc (= ${binary:Version}), linux-headers-4.9.0-1-parisc64-smp (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: kernel-image +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: nic-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-parisc-di, nic-shared-modules-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: serial-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: serial-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Serial drivers + This package contains serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-parisc-di, usb-modules-4.9.0-1-parisc-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-parisc-di, serial-modules-4.9.0-1-parisc-di, zlib-modules-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: pata-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-parisc-di, ata-modules-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di, isofs-modules-4.9.0-1-parisc-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di, cdrom-core-modules-4.9.0-1-parisc-di, ata-modules-4.9.0-1-parisc-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: loop-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di, zlib-modules-4.9.0-1-parisc-di, md-modules-4.9.0-1-parisc-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: fat-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: md-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-parisc-di, md-modules-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: usb-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-modules-4.9.0-1-parisc-di, usb-modules-4.9.0-1-parisc-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: input-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-parisc-di, usb-modules-4.9.0-1-parisc-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: event-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-parisc-di, event-modules-4.9.0-1-parisc-di, input-modules-4.9.0-1-parisc-di, usb-modules-4.9.0-1-parisc-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-parisc-di, nic-shared-modules-4.9.0-1-parisc-di, usb-modules-4.9.0-1-parisc-di, crc-modules-4.9.0-1-parisc-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: sata-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di, ata-modules-4.9.0-1-parisc-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: crc-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-parisc-di, md-modules-4.9.0-1-parisc-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: ata-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-parisc-di, scsi-core-modules-4.9.0-1-parisc-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-parisc-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-parisc-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc +Package-Type: udeb + +Package: kernel-image-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: kernel-image, i2c-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: nic-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, nic-shared-modules-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: serial-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: serial-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Serial drivers + This package contains serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, usb-modules-4.9.0-1-parisc64-smp-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, serial-modules-4.9.0-1-parisc64-smp-di, zlib-modules-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: pata-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, ata-modules-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di, isofs-modules-4.9.0-1-parisc64-smp-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di, cdrom-core-modules-4.9.0-1-parisc64-smp-di, ata-modules-4.9.0-1-parisc64-smp-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: loop-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di, zlib-modules-4.9.0-1-parisc64-smp-di, md-modules-4.9.0-1-parisc64-smp-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: fat-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: md-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, md-modules-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: usb-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-modules-4.9.0-1-parisc64-smp-di, usb-modules-4.9.0-1-parisc64-smp-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: fb-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: fb-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Frame buffer support + This package contains Frame buffer drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: input-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, usb-modules-4.9.0-1-parisc64-smp-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: event-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, event-modules-4.9.0-1-parisc64-smp-di, input-modules-4.9.0-1-parisc64-smp-di, usb-modules-4.9.0-1-parisc64-smp-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, nic-shared-modules-4.9.0-1-parisc64-smp-di, usb-modules-4.9.0-1-parisc64-smp-di, crc-modules-4.9.0-1-parisc64-smp-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: sata-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di, ata-modules-4.9.0-1-parisc64-smp-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: crc-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, md-modules-4.9.0-1-parisc64-smp-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: ata-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di, scsi-core-modules-4.9.0-1-parisc64-smp-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-parisc64-smp-di +Architecture: hppa +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-parisc64-smp-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-parisc64-smp +Package-Type: udeb + +Package: linux-image-4.9.0-1-parisc +Architecture: hppa +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, palo [hppa] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for 32-bit PA-RISC + The Linux kernel 4.9 and modules for use on HP PA-RISC 32-bit systems with + max 4 GB RAM. +Build-Profiles: + +Package: linux-headers-4.9.0-1-parisc +Architecture: hppa +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6, binutils-hppa64-linux-gnu, gcc-6-hppa64-linux-gnu +Description: Header files for Linux 4.9.0-1-parisc + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-parisc, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-parisc, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-parisc package. +Build-Profiles: + +Package: linux-image-4.9.0-1-parisc-dbgsym +Architecture: hppa +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-parisc +Build-Profiles: + +Package: linux-image-4.9.0-1-parisc64-smp +Architecture: hppa +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [hppa] | linux-initramfs-tool [hppa] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, palo [hppa] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for multiprocessor 64-bit PA-RISC + The Linux kernel 4.9 and modules for use on HP PA-RISC 64-bit SMP systems + with support for more than 4 GB RAM. +Build-Profiles: + +Package: linux-headers-4.9.0-1-parisc64-smp +Architecture: hppa +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6, binutils-hppa64-linux-gnu, gcc-6-hppa64-linux-gnu +Description: Header files for Linux 4.9.0-1-parisc64-smp + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-parisc64-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-parisc64-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-parisc64-smp package. +Build-Profiles: + +Package: linux-image-4.9.0-1-parisc64-smp-dbgsym +Architecture: hppa +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-parisc64-smp +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-i386 +Architecture: i386 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-686 (= ${binary:Version}), linux-headers-4.9.0-1-686-pae (= ${binary:Version}), linux-headers-4.9.0-1-rt-686-pae (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-686-unsigned +Architecture: i386 +Provides: linux-image-4.9.0-1-686 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [i386] | linux-initramfs-tool [i386] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, grub-pc [i386] | extlinux [i386] +Replaces: linux-image-4.9.0-1-686 +Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-686 +Description: Linux 4.9 for older PCs + The Linux kernel 4.9 and modules for use on PCs with one or more + processors not supporting PAE. +Build-Profiles: + +Package: linux-headers-4.9.0-1-686 +Architecture: i386 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-686 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-686, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-686, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-686 package. +Build-Profiles: + +Package: linux-image-4.9.0-1-686-dbgsym +Architecture: i386 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-686 +Build-Profiles: + +Package: linux-image-4.9.0-1-686-pae-unsigned +Architecture: i386 +Provides: linux-image-4.9.0-1-686-pae +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [i386] | linux-initramfs-tool [i386] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, grub-pc [i386] | extlinux [i386] +Replaces: linux-image-4.9.0-1-686-pae +Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-686-pae +Description: Linux 4.9 for modern PCs + The Linux kernel 4.9 and modules for use on PCs with one or more + processors supporting PAE. + . + This kernel requires PAE (Physical Address Extension). This feature is + supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD + Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom; + Transmeta Efficeon; VIA C7; and some other processors. + . + This kernel also runs on a Xen hypervisor. It supports both privileged + (dom0) and unprivileged (domU) operation. +Build-Profiles: + +Package: linux-headers-4.9.0-1-686-pae +Architecture: i386 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-686-pae + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-686-pae, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-686-pae, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-686-pae package. +Build-Profiles: + +Package: linux-image-4.9.0-1-686-pae-dbgsym +Architecture: i386 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-686-pae +Build-Profiles: + +Package: linux-image-4.9.0-1-rt-686-pae-unsigned +Architecture: i386 +Provides: linux-image-4.9.0-1-rt-686-pae +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [i386] | linux-initramfs-tool [i386] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, grub-pc [i386] | extlinux [i386] +Replaces: linux-image-4.9.0-1-rt-686-pae +Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-rt-686-pae +Description: Linux 4.9 for modern PCs, PREEMPT_RT + The Linux kernel 4.9 and modules for use on PCs with one or more + processors supporting PAE. + . + This kernel requires PAE (Physical Address Extension). This feature is + supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD + Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom; + Transmeta Efficeon; VIA C7; and some other processors. + . + This kernel includes the PREEMPT_RT realtime patch set. +Build-Profiles: + +Package: linux-headers-4.9.0-1-rt-686-pae +Architecture: i386 +Depends: linux-headers-4.9.0-1-common-rt (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-rt-686-pae + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-rt-686-pae, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-rt-686-pae, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-rt-686-pae package. +Build-Profiles: + +Package: linux-image-4.9.0-1-rt-686-pae-dbgsym +Architecture: i386 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-rt-686-pae +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-m68k +Architecture: m68k +Depends: ${misc:Depends}, linux-headers-4.9.0-1-m68k (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: kernel-image +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-m68k-di, zlib-modules-4.9.0-1-m68k-di, crc-modules-4.9.0-1-m68k-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-m68k-di, isofs-modules-4.9.0-1-m68k-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-m68k-di, cdrom-core-modules-4.9.0-1-m68k-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-m68k-di, crc-modules-4.9.0-1-m68k-di, zlib-modules-4.9.0-1-m68k-di, md-modules-4.9.0-1-m68k-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-m68k-di, crc-modules-4.9.0-1-m68k-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: fat-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: md-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-m68k-di, crc-modules-4.9.0-1-m68k-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: crc-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: udf-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-m68k-di, crc-modules-4.9.0-1-m68k-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-m68k-di +Architecture: m68k +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-m68k-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-m68k +Package-Type: udeb + +Package: linux-image-4.9.0-1-m68k +Architecture: m68k +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [m68k] | linux-initramfs-tool [m68k] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, vmelilo [m68k], fdutils [m68k] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Motorola MC68020+ family + The Linux kernel 4.9 and modules for use on Motorola MC68020+ family. +Build-Profiles: + +Package: linux-headers-4.9.0-1-m68k +Architecture: m68k +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-m68k + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-m68k, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-m68k, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-m68k + package. +Build-Profiles: + +Package: linux-image-4.9.0-1-m68k-dbgsym +Architecture: m68k +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-m68k +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-mips +Architecture: mips +Depends: ${misc:Depends}, linux-headers-4.9.0-1-4kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-5kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-octeon (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: kernel-image, rtc-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: nic-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, nic-shared-modules-4.9.0-1-4kc-malta-di, i2c-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: nic-wireless-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: nic-wireless-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, nic-shared-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di, mmc-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. Includes + crypto modules only needed for wireless (WEP, WPA). +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, zlib-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: pata-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, ata-modules-4.9.0-1-4kc-malta-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di, isofs-modules-4.9.0-1-4kc-malta-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di, cdrom-core-modules-4.9.0-1-4kc-malta-di, ata-modules-4.9.0-1-4kc-malta-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: loop-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di, zlib-modules-4.9.0-1-4kc-malta-di, md-modules-4.9.0-1-4kc-malta-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: ntfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: ntfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: NTFS filesystem support + This package contains the NTFS file system module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: fat-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: hfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: hfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: affs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: affs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: minix-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: md-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, md-modules-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: usb-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: input-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di, i2c-modules-4.9.0-1-4kc-malta-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: event-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, event-modules-4.9.0-1-4kc-malta-di, input-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, nic-shared-modules-4.9.0-1-4kc-malta-di, nic-wireless-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: sata-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di, ata-modules-4.9.0-1-4kc-malta-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: i2c-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: i2c-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: i2c support modules + This package contains basic i2c support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: crc-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, md-modules-4.9.0-1-4kc-malta-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: ata-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: mmc-core-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: mmc-core-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: MMC/SD/SDIO core modules + This package contains core modules for MMC/SD/SDIO support. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: mmc-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: mmc-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, mmc-core-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: MMC/SD card modules + This package contains modules needed to support MMC (multimedia) and SD + cards. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, scsi-core-modules-4.9.0-1-4kc-malta-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: sound-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, i2c-modules-4.9.0-1-4kc-malta-di, usb-modules-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: udf-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di, crc-modules-4.9.0-1-4kc-malta-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-4kc-malta-di +Architecture: mips mipsel +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-4kc-malta-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-4kc-malta +Package-Type: udeb + +Package: kernel-image-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: kernel-image, rtc-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: nic-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-octeon-di, nic-shared-modules-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: nic-wireless-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-wireless-modules +Depends: kernel-image-4.9.0-1-octeon-di, nic-shared-modules-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. Includes + crypto modules only needed for wireless (WEP, WPA). +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-octeon-di, zlib-modules-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: pata-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di, isofs-modules-4.9.0-1-octeon-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di, cdrom-core-modules-4.9.0-1-octeon-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: loop-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di, zlib-modules-4.9.0-1-octeon-di, md-modules-4.9.0-1-octeon-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: ntfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: ntfs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: NTFS filesystem support + This package contains the NTFS file system module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: fat-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: hfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: hfs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: affs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: affs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: minix-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: md-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-octeon-di, md-modules-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: usb-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: input-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: event-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-octeon-di, nic-shared-modules-4.9.0-1-octeon-di, nic-wireless-modules-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: sata-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: crc-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-octeon-di, md-modules-4.9.0-1-octeon-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: rtc-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: rtc-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: RTC modules + This package contains RTC modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-octeon-di, scsi-core-modules-4.9.0-1-octeon-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: sound-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-octeon-di, usb-modules-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: udf-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-octeon-di, crc-modules-4.9.0-1-octeon-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-octeon-di +Architecture: mips mips64 mips64el mipsel +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-octeon-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-octeon +Package-Type: udeb + +Package: linux-image-4.9.0-1-4kc-malta +Architecture: mips mipsel +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [mips mipsel] | linux-initramfs-tool [mips mipsel] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for MIPS Malta + The Linux kernel 4.9 and modules for use on MIPS Malta boards. +Build-Profiles: + +Package: linux-headers-4.9.0-1-4kc-malta +Architecture: mips mipsel +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-4kc-malta + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-4kc-malta, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-4kc-malta, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-4kc-malta package. +Build-Profiles: + +Package: linux-image-4.9.0-1-4kc-malta-dbgsym +Architecture: mips mipsel +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-4kc-malta +Build-Profiles: + +Package: linux-image-4.9.0-1-5kc-malta +Architecture: mips mips64 mips64el mipsel +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [mips mipsel mips64 mips64el] | linux-initramfs-tool [mips mipsel mips64 mips64el] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for MIPS Malta (64-bit) + The Linux kernel 4.9 and modules for use on MIPS Malta boards (64-bit). +Build-Profiles: + +Package: linux-headers-4.9.0-1-5kc-malta +Architecture: mips mips64 mips64el mipsel +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-5kc-malta + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-5kc-malta, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-5kc-malta, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-5kc-malta package. +Build-Profiles: + +Package: linux-image-4.9.0-1-5kc-malta-dbgsym +Architecture: mips mips64 mips64el mipsel +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-5kc-malta +Build-Profiles: + +Package: linux-image-4.9.0-1-octeon +Architecture: mips mips64 mips64el mipsel +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [mips mipsel mips64 mips64el] | linux-initramfs-tool [mips mipsel mips64 mips64el] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Octeon + The Linux kernel 4.9 and modules for use on Cavium Networks Octeon. +Build-Profiles: + +Package: linux-headers-4.9.0-1-octeon +Architecture: mips mips64 mips64el mipsel +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-octeon + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-octeon, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-octeon, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-octeon package. +Build-Profiles: + +Package: linux-image-4.9.0-1-octeon-dbgsym +Architecture: mips mips64 mips64el mipsel +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-octeon +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-mipsel +Architecture: mipsel +Depends: ${misc:Depends}, linux-headers-4.9.0-1-4kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-5kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-loongson-3 (= ${binary:Version}), linux-headers-4.9.0-1-octeon (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: kernel-image, i2c-modules, rtc-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nic-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, nic-shared-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nic-wireless-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-wireless-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, nic-shared-modules-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. Includes + crypto modules only needed for wireless (WEP, WPA). +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, zlib-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: pata-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, ata-modules-4.9.0-1-loongson-3-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di, isofs-modules-4.9.0-1-loongson-3-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: firewire-core-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: firewire-core-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: Core FireWire drivers + This package contains core FireWire drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di, cdrom-core-modules-4.9.0-1-loongson-3-di, ata-modules-4.9.0-1-loongson-3-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: loop-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di, zlib-modules-4.9.0-1-loongson-3-di, md-modules-4.9.0-1-loongson-3-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: ntfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: ntfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: NTFS filesystem support + This package contains the NTFS file system module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: fat-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: hfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: hfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: affs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: affs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: minix-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: nfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: NFS filesystem support + This package contains the NFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: md-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, md-modules-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: usb-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: fb-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: fb-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Frame buffer support + This package contains Frame buffer drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: input-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: event-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, nic-shared-modules-4.9.0-1-loongson-3-di, nic-wireless-modules-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: sata-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di, ata-modules-4.9.0-1-loongson-3-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: crc-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, md-modules-4.9.0-1-loongson-3-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: ata-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: speakup-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: speakup-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: speakup modules + This package contains speakup modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, scsi-core-modules-4.9.0-1-loongson-3-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: sound-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, usb-modules-4.9.0-1-loongson-3-di, firewire-core-modules-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: udf-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-loongson-3-di, crc-modules-4.9.0-1-loongson-3-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-loongson-3-di +Architecture: mips64el mipsel +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-loongson-3-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-loongson-3 +Package-Type: udeb + +Package: linux-image-4.9.0-1-loongson-3 +Architecture: mips64el mipsel +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [mipsel mips64el] | linux-initramfs-tool [mipsel mips64el] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for Loongson 3A/3B + The Linux kernel 4.9 and modules for use on Loongson 3A or 3B based + systems (e.g. from Loongson or Lemote). +Build-Profiles: + +Package: linux-headers-4.9.0-1-loongson-3 +Architecture: mips64el mipsel +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-loongson-3 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-loongson-3, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-loongson-3, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-loongson-3 package. +Build-Profiles: + +Package: linux-image-4.9.0-1-loongson-3-dbgsym +Architecture: mips64el mipsel +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-loongson-3 +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-mips64 +Architecture: mips64 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-5kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-octeon (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: kernel-image, rtc-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: nic-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, nic-shared-modules-4.9.0-1-5kc-malta-di, i2c-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: nic-wireless-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: nic-wireless-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, nic-shared-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di, mmc-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. Includes + crypto modules only needed for wireless (WEP, WPA). +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, zlib-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: pata-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, ata-modules-4.9.0-1-5kc-malta-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di, isofs-modules-4.9.0-1-5kc-malta-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di, cdrom-core-modules-4.9.0-1-5kc-malta-di, ata-modules-4.9.0-1-5kc-malta-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: loop-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di, zlib-modules-4.9.0-1-5kc-malta-di, md-modules-4.9.0-1-5kc-malta-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: ntfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: ntfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: NTFS filesystem support + This package contains the NTFS file system module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: fat-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: hfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: hfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: affs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: affs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: minix-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: md-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, md-modules-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: usb-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: input-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di, i2c-modules-4.9.0-1-5kc-malta-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: event-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, event-modules-4.9.0-1-5kc-malta-di, input-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, nic-shared-modules-4.9.0-1-5kc-malta-di, nic-wireless-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: sata-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di, ata-modules-4.9.0-1-5kc-malta-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: i2c-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: i2c-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: i2c support modules + This package contains basic i2c support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: crc-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, md-modules-4.9.0-1-5kc-malta-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: ata-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: mmc-core-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: mmc-core-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: MMC/SD/SDIO core modules + This package contains core modules for MMC/SD/SDIO support. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: mmc-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: mmc-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, mmc-core-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: MMC/SD card modules + This package contains modules needed to support MMC (multimedia) and SD + cards. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, scsi-core-modules-4.9.0-1-5kc-malta-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: sound-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, i2c-modules-4.9.0-1-5kc-malta-di, usb-modules-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: udf-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di, crc-modules-4.9.0-1-5kc-malta-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-5kc-malta-di +Architecture: mips64 mips64el +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-5kc-malta-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-5kc-malta +Package-Type: udeb + +Package: linux-headers-4.9.0-1-all-mips64el +Architecture: mips64el +Depends: ${misc:Depends}, linux-headers-4.9.0-1-5kc-malta (= ${binary:Version}), linux-headers-4.9.0-1-loongson-3 (= ${binary:Version}), linux-headers-4.9.0-1-octeon (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-powerpc +Architecture: powerpc +Depends: ${misc:Depends}, linux-headers-4.9.0-1-powerpc (= ${binary:Version}), linux-headers-4.9.0-1-powerpc-smp (= ${binary:Version}), linux-headers-4.9.0-1-powerpc64 (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc-unsigned +Architecture: powerpc +Provides: linux-image-4.9.0-1-powerpc +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [powerpc] | linux-initramfs-tool [powerpc] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [powerpc] +Replaces: linux-image-4.9.0-1-powerpc +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-powerpc +Description: Linux 4.9 for uniprocessor 32-bit PowerPC + The Linux kernel 4.9 and modules for use on uniprocessor 32-bit PowerPC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-powerpc +Architecture: powerpc +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-powerpc + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-powerpc, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-powerpc, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-powerpc package. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc-dbgsym +Architecture: powerpc +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-powerpc +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc-smp-unsigned +Architecture: powerpc +Provides: linux-image-4.9.0-1-powerpc-smp +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [powerpc] | linux-initramfs-tool [powerpc] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [powerpc] +Replaces: linux-image-4.9.0-1-powerpc-smp +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-powerpc-smp +Description: Linux 4.9 for multiprocessor 32-bit PowerPC + The Linux kernel 4.9 and modules for use on multiprocessor 32-bit PowerPC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-powerpc-smp +Architecture: powerpc +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-powerpc-smp + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-powerpc-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-powerpc-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-powerpc-smp package. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc-smp-dbgsym +Architecture: powerpc +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-powerpc-smp +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc64-unsigned +Architecture: powerpc +Provides: linux-image-4.9.0-1-powerpc64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [powerpc] | linux-initramfs-tool [powerpc] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [powerpc] +Replaces: linux-image-4.9.0-1-powerpc64 +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-powerpc64 +Description: Linux 4.9 for 64-bit PowerPC + The Linux kernel 4.9 and modules for use on 64-bit PowerPC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-powerpc64 +Architecture: powerpc ppc64 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-powerpc64 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-powerpc64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-powerpc64, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-powerpc64 package. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc64-dbgsym +Architecture: powerpc ppc64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-powerpc64 +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-powerpcspe +Architecture: powerpcspe +Depends: ${misc:Depends}, linux-headers-4.9.0-1-powerpcspe (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpcspe +Architecture: powerpcspe +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [powerpcspe] | linux-initramfs-tool [powerpcspe] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [powerpcspe] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for 32-bit PowerPC with SPE (instead of AltiVec) with SMP support + The Linux kernel 4.9 and modules for use on 32-bit PowerPC with SPE + (instead of AltiVec) with SMP support. +Build-Profiles: + +Package: linux-headers-4.9.0-1-powerpcspe +Architecture: powerpcspe +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-powerpcspe + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-powerpcspe, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-powerpcspe, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-powerpcspe package. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpcspe-dbgsym +Architecture: powerpcspe +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-powerpcspe +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-ppc64 +Architecture: ppc64 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-powerpc64 (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: kernel-image +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: nic-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, nic-shared-modules-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: nic-shared-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: nic-shared-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: serial-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: optional +Provides: serial-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, pcmcia-modules-4.9.0-1-powerpc64-di +Description: Serial drivers + This package contains serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, usb-modules-4.9.0-1-powerpc64-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, serial-modules-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: pata-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, ata-modules-4.9.0-1-powerpc64-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di, isofs-modules-4.9.0-1-powerpc64-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: firewire-core-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: firewire-core-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: Core FireWire drivers + This package contains core FireWire drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di, cdrom-core-modules-4.9.0-1-powerpc64-di, ata-modules-4.9.0-1-powerpc64-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: loop-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di, md-modules-4.9.0-1-powerpc64-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: fat-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: hfs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: hfs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: affs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: affs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: md-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, md-modules-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: usb-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di, usb-modules-4.9.0-1-powerpc64-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: pcmcia-storage-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: pcmcia-storage-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, cdrom-core-modules-4.9.0-1-powerpc64-di, pcmcia-modules-4.9.0-1-powerpc64-di, ata-modules-4.9.0-1-powerpc64-di +Description: PCMCIA storage drivers + This package contains PCMCIA storage drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: input-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, usb-modules-4.9.0-1-powerpc64-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: event-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: event-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Event support + This package contains event drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: mouse-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: mouse-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, event-modules-4.9.0-1-powerpc64-di, input-modules-4.9.0-1-powerpc64-di, usb-modules-4.9.0-1-powerpc64-di +Description: Mouse support + This package contains mouse drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: nic-pcmcia-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: nic-pcmcia-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, nic-modules-4.9.0-1-powerpc64-di, nic-shared-modules-4.9.0-1-powerpc64-di, pcmcia-modules-4.9.0-1-powerpc64-di +Description: Common PCMCIA NIC drivers + This package contains common PCMCIA NIC drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: pcmcia-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: pcmcia-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Common PCMCIA drivers + This package contains common PCMCIA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: sata-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di, ata-modules-4.9.0-1-powerpc64-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: crc-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, md-modules-4.9.0-1-powerpc64-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: ata-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, scsi-core-modules-4.9.0-1-powerpc64-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: uinput-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: uinput-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: uinput support + This package contains the uinput module. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: udf-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-powerpc64-di, crc-modules-4.9.0-1-powerpc64-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: hypervisor-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: hypervisor-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: IBM 64bit hypervisor console modules + Contains drivers for the hypervisor console, used as console for linux + running in logical partitions of IBM hardware supporting it. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: fancontrol-modules-4.9.0-1-powerpc64-di +Architecture: ppc64 +Section: debian-installer +Priority: standard +Provides: fancontrol-modules +Depends: kernel-image-4.9.0-1-powerpc64-di +Description: Apple powermac fancontrol modules + Contains drivers for macintosh i2c bus as well as for the monitoring + devices connected to it. This allows to control the fans during + installation. +Build-Profiles: +Kernel-Version: 4.9.0-1-powerpc64 +Package-Type: udeb + +Package: linux-image-4.9.0-1-powerpc64 +Architecture: ppc64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [ppc64] | linux-initramfs-tool [ppc64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [ppc64] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for 64-bit PowerPC + The Linux kernel 4.9 and modules for use on 64-bit PowerPC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-ppc64el +Architecture: ppc64el +Depends: ${misc:Depends}, linux-headers-4.9.0-1-powerpc64le (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc64le-unsigned +Architecture: ppc64el +Provides: linux-image-4.9.0-1-powerpc64le +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [ppc64el] | linux-initramfs-tool [ppc64el] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, mkvmlinuz [ppc64el] +Replaces: linux-image-4.9.0-1-powerpc64le +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-powerpc64le +Description: Linux 4.9 for Little-endian 64-bit PowerPC + The Linux kernel 4.9 and modules for use on Little-endian 64-bit PowerPC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-powerpc64le +Architecture: ppc64el +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-powerpc64le + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-powerpc64le, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-powerpc64le, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-powerpc64le package. +Build-Profiles: + +Package: linux-image-4.9.0-1-powerpc64le-dbgsym +Architecture: ppc64el +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-powerpc64le +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-s390x +Architecture: s390x +Depends: ${misc:Depends}, linux-headers-4.9.0-1-s390x (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: linux-image-4.9.0-1-s390x-unsigned +Architecture: s390x +Provides: linux-image-4.9.0-1-s390x +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [s390x] | linux-initramfs-tool [s390x] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, s390-tools [s390x] +Replaces: linux-image-4.9.0-1-s390x +Breaks: initramfs-tools (<< 0.110~) +Conflicts: linux-image-4.9.0-1-s390x +Description: Linux 4.9 for IBM zSeries + The Linux kernel 4.9 and modules for use on IBM zSeries. +Build-Profiles: + +Package: linux-headers-4.9.0-1-s390x +Architecture: s390x +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-s390x + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-s390x, generally used for building out-of-tree kernel + modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-s390x, and can be used for building modules + that load into the kernel provided by the linux-image-4.9.0-1-s390x + package. +Build-Profiles: + +Package: linux-image-4.9.0-1-s390x-dbgsym +Architecture: s390x +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-s390x +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-sh4 +Architecture: sh4 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-sh7751r (= ${binary:Version}), linux-headers-4.9.0-1-sh7785lcr (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: kernel-image, event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: nic-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, i2c-modules-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, zlib-modules-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: pata-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, isofs-modules-4.9.0-1-sh7751r-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: firewire-core-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: firewire-core-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: Core FireWire drivers + This package contains core FireWire drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: loop-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di, zlib-modules-4.9.0-1-sh7751r-di, md-modules-4.9.0-1-sh7751r-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: fat-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: minix-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: md-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, md-modules-4.9.0-1-sh7751r-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: sata-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: i2c-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: i2c-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: i2c support modules + This package contains basic i2c support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: crc-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, md-modules-4.9.0-1-sh7751r-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: speakup-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: speakup-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: speakup modules + This package contains speakup modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: sound-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, i2c-modules-4.9.0-1-sh7751r-di, firewire-core-modules-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: udf-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-sh7751r-di, crc-modules-4.9.0-1-sh7751r-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-sh7751r-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-sh7751r-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7751r +Package-Type: udeb + +Package: kernel-image-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: kernel-image, event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: nic-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: usb-serial-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: optional +Provides: usb-serial-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: USB serial drivers + This package contains USB serial drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, zlib-modules-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: pata-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, isofs-modules-4.9.0-1-sh7785lcr-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: firewire-core-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: firewire-core-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: Core FireWire drivers + This package contains core FireWire drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: loop-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: loop-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di, zlib-modules-4.9.0-1-sh7785lcr-di, md-modules-4.9.0-1-sh7785lcr-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: fat-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: minix-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: minix-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: md-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, md-modules-4.9.0-1-sh7785lcr-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: nic-usb-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: nic-usb-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: sata-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: crc-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, md-modules-4.9.0-1-sh7785lcr-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: speakup-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: speakup-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: speakup modules + This package contains speakup modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: sound-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: sound-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, firewire-core-modules-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: sound support + This package contains sound modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: udf-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di, crc-modules-4.9.0-1-sh7785lcr-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-sh7785lcr-di +Architecture: sh4 +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-sh7785lcr-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sh7785lcr +Package-Type: udeb + +Package: linux-image-4.9.0-1-sh7751r +Architecture: sh4 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [sh4] | linux-initramfs-tool [sh4] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for sh7751r + The Linux kernel 4.9 and modules for use on Renesas SH7751R R2D plus + board. +Build-Profiles: + +Package: linux-headers-4.9.0-1-sh7751r +Architecture: sh4 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-sh7751r + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-sh7751r, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-sh7751r, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-sh7751r package. +Build-Profiles: + +Package: linux-image-4.9.0-1-sh7751r-dbgsym +Architecture: sh4 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-sh7751r +Build-Profiles: + +Package: linux-image-4.9.0-1-sh7785lcr +Architecture: sh4 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [sh4] | linux-initramfs-tool [sh4] +Recommends: firmware-linux-free, ${kernel:Recommends}, u-boot-tools [sh4] +Suggests: linux-doc-4.9, debian-kernel-handbook +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for sh7785lcr + The Linux kernel 4.9 and modules for use on Renesas SH7785 reference + board. +Build-Profiles: + +Package: linux-headers-4.9.0-1-sh7785lcr +Architecture: sh4 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-sh7785lcr + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-sh7785lcr, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-sh7785lcr, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-sh7785lcr package. +Build-Profiles: + +Package: linux-image-4.9.0-1-sh7785lcr-dbgsym +Architecture: sh4 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-sh7785lcr +Build-Profiles: + +Package: linux-headers-4.9.0-1-all-sparc64 +Architecture: sparc64 +Depends: ${misc:Depends}, linux-headers-4.9.0-1-sparc64 (= ${binary:Version}), linux-headers-4.9.0-1-sparc64-smp (= ${binary:Version}) +Description: All header files for Linux 4.9 (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version 4.9, generally used for building out-of-tree + kernel modules. +Build-Profiles: + +Package: kernel-image-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: kernel-image +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your + full Debian system. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: nic-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: nic-modules, nic-extra-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: Network card modules for Sparc kernels + This package contains the drivers for the Happy Meal/Big Mac 10/100BaseT, + Sun QuadEthernet and MyriCOM Gigabit Ethernet SBus devices for SPARC + systems, as well as various PCI NIC drivers (only on sparc64.) + . + Do not install this package on a real Debian system! You probably want a + kernel-image package instead. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: ppp-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: optional +Provides: ppp-modules +Depends: kernel-image-4.9.0-1-sparc64-di, zlib-modules-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: PPP drivers + This package contains PPP drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: pata-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: pata-modules +Depends: kernel-image-4.9.0-1-sparc64-di, ata-modules-4.9.0-1-sparc64-di +Description: PATA drivers + This package contains PATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: cdrom-core-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: cdrom-core-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di, isofs-modules-4.9.0-1-sparc64-di +Description: CDROM support + This package contains core CDROM support for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: scsi-core-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: scsi-core-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: scsi-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: scsi-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di, cdrom-core-modules-4.9.0-1-sparc64-di, ata-modules-4.9.0-1-sparc64-di +Description: SCSI drivers + This package contains SCSI drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: btrfs-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: btrfs-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di, zlib-modules-4.9.0-1-sparc64-di, md-modules-4.9.0-1-sparc64-di +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: ext4-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: ext4-modules, ext2-modules, ext3-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: isofs-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: isofs-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: jfs-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: jfs-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: xfs-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: xfs-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: fat-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: fat-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: md-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: md-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: multipath-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: multipath-modules +Depends: kernel-image-4.9.0-1-sparc64-di, md-modules-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di +Description: Multipath support + This package contains DM-Multipath modules for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: usb-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: usb-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: USB support + This package contains core USB drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: usb-storage-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: usb-storage-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di, usb-modules-4.9.0-1-sparc64-di +Description: USB storage support + This package contains the USB storage driver for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: input-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: input-modules +Depends: kernel-image-4.9.0-1-sparc64-di, usb-modules-4.9.0-1-sparc64-di +Description: Input devices support + This package contains input device drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: sata-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: standard +Provides: sata-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di, ata-modules-4.9.0-1-sparc64-di +Description: SATA drivers + This package contains SATA drivers for the kernel. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: crc-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: crc-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: CRC modules + This package contains CRC support modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: crypto-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: crypto-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: crypto modules + This package contains crypto modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: crypto-dm-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: crypto-dm-modules +Depends: kernel-image-4.9.0-1-sparc64-di, md-modules-4.9.0-1-sparc64-di +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: ata-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: ata-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: nbd-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: nbd-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: Network Block Device modules + This package contains the modules required for support of the Network + Block Device +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: squashfs-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: squashfs-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: squashfs modules + This package contains squashfs modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: virtio-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: virtio-modules +Depends: kernel-image-4.9.0-1-sparc64-di, scsi-core-modules-4.9.0-1-sparc64-di +Description: virtio modules + This package contains virtio modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: zlib-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: zlib-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: zlib modules + This package contains zlib modules. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: udf-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: udf-modules +Depends: kernel-image-4.9.0-1-sparc64-di, crc-modules-4.9.0-1-sparc64-di +Description: UDF modules + This package contains the UDF filesystem module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: fuse-modules-4.9.0-1-sparc64-di +Architecture: sparc64 +Section: debian-installer +Priority: extra +Provides: fuse-modules +Depends: kernel-image-4.9.0-1-sparc64-di +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. +Build-Profiles: +Kernel-Version: 4.9.0-1-sparc64 +Package-Type: udeb + +Package: linux-image-4.9.0-1-sparc64 +Architecture: sparc64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [sparc64] | linux-initramfs-tool [sparc64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, silo [sparc64], fdutils [sparc64] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for uniprocessor 64-bit UltraSPARC + The Linux kernel 4.9 and modules for use on uniprocessor 64-bit + UltraSPARC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-sparc64 +Architecture: sparc64 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-sparc64 + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-sparc64, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-sparc64, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-sparc64 package. +Build-Profiles: + +Package: linux-image-4.9.0-1-sparc64-dbgsym +Architecture: sparc64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-sparc64 +Build-Profiles: + +Package: linux-image-4.9.0-1-sparc64-smp +Architecture: sparc64 +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.110~) [sparc64] | linux-initramfs-tool [sparc64] +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-4.9, debian-kernel-handbook, silo [sparc64], fdutils [sparc64] +Breaks: initramfs-tools (<< 0.110~) +Description: Linux 4.9 for multiprocessor 64-bit UltraSPARC + The Linux kernel 4.9 and modules for use on multiprocessor 64-bit + UltraSPARC. +Build-Profiles: + +Package: linux-headers-4.9.0-1-sparc64-smp +Architecture: sparc64 +Depends: linux-headers-4.9.0-1-common (= ${binary:Version}), linux-kbuild-4.9, ${misc:Depends}, gcc-6 +Description: Header files for Linux 4.9.0-1-sparc64-smp + This package provides the architecture-specific kernel header files for + Linux kernel 4.9.0-1-sparc64-smp, generally used for building out-of-tree + kernel modules. These files are going to be installed into + /usr/src/linux-headers-4.9.0-1-sparc64-smp, and can be used for building + modules that load into the kernel provided by the + linux-image-4.9.0-1-sparc64-smp package. +Build-Profiles: + +Package: linux-image-4.9.0-1-sparc64-smp-dbgsym +Architecture: sparc64 +Section: debug +Priority: extra +Depends: ${misc:Depends} +Description: Debug symbols for linux-image-4.9.0-1-sparc64-smp +Build-Profiles: + +Package: linux-compiler-gcc-6-arm +Architecture: armel armhf +Depends: gcc-6, ${misc:Depends} +Description: Compiler for Linux on ARM (meta-package) + This package depends on gcc 6 of the appropriate architecture for Linux on + armel and armhf. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-compiler-gcc-6-s390 +Architecture: s390 s390x +Depends: gcc-6, ${misc:Depends} +Description: Compiler for Linux on IBM zSeries (meta-package) + This package depends on gcc 6 of the appropriate architecture for Linux on + s390 and s390x. +Build-Profiles: +Multi-Arch: foreign + +Package: linux-compiler-gcc-6-x86 +Architecture: amd64 i386 x32 +Depends: gcc-6, ${misc:Depends} +Description: Compiler for Linux on x86 (meta-package) + This package depends on gcc 6 of the appropriate architecture for Linux on + amd64, i386 and x32. +Build-Profiles: +Multi-Arch: foreign + diff --git a/control.md5sum b/control.md5sum new file mode 100644 index 00000000000..d5d56be5bb6 --- /dev/null +++ b/control.md5sum @@ -0,0 +1,107 @@ +ac2a35d9d932aa7c28663b354a8f8397 debian/bin/gencontrol.py +ade857313d06e5e7a49faa9601cd4413 debian/changelog +e492c730e8bc71cc52aa5315391e587e debian/templates/control.main.in +38004750aa03cea41d5d3aeafff16fcc debian/templates/image.preinst.in +afb508873a44a1f196c2a525fec4b415 debian/templates/image.prerm.in +0d7f6ea42f52d0a6013535a80111ee3e debian/templates/headers.postinst.in +112df3b63973cb54e0429165240a6fb3 debian/templates/control.tools.in +ae49ef5fe8221e8aa846a8dd8faaed0e debian/templates/control.image.in +a4a60fc48b3240e46bbac6a1ddcaad30 debian/templates/image.postrm.in +8ff553ff7232b003c35bdd074913bc8a debian/templates/control.image-unsigned.in +aaefe1e8777c46e773f8cc2515eb8d7c debian/templates/control.image-dbg.in +48756280c9c74fc2fdaeeb3f77a813c4 debian/templates/control.source.in +51797b6c275eb14e99009e78553904cc debian/templates/lintian-overrides.perf.in +63c0d01ea032d0acfa5e069d31daa938 debian/templates/control.libc-dev.in +6bf8fd71accd1530c46f3d6887d1ad4c debian/templates/image-dbg.lintian-override.in +46cc93799a6214c79efea8084bc9a329 debian/templates/control.headers.featureset.in +814dda166c7e3ef02e6e259e805ac66a debian/templates/tests-control.main.in +0327750d6696dee915a532aec73a0fd6 debian/templates/image.postinst.in +5fcd1fcb86826db36e024047512340c4 debian/templates/control.headers.in +c6cea196527a033d3d3bed7c8bc141f4 debian/templates/control.extra.in +fc3e8629682e63a1858b15d7f3df0ef9 debian/templates/control.docs.in +5f1df5cd150d7663b81f5c54a604a766 debian/templates/control.headers.arch.in +51856f6bfb0c0397d5c15df91f0016c6 debian/config/defines +4b05ad3b30b505286bc058bc4219ca60 debian/config/i386/defines +6f7d102847d8168a3c71c044ea7127ac debian/config/tilegx/defines +6efeb6f3f8ad4ecef3fff0d012fabad0 debian/config/mips64el/defines +8f2e4969633ff660d026f2b7e02e6336 debian/config/sh3/defines +ff1f9b857ee6f0c977d2f8541211a9f5 debian/config/mipsr6/defines +db0f05047b95d6169463808875b7b5d1 debian/config/armhf/defines +d9a9edd21d68823d128339ecdc2ceb28 debian/config/amd64/defines +f74b224857e0111bf2e14b124b3e2be2 debian/config/mipsr6el/defines +12c5f99fafdfd2d3696623ba86b2cc46 debian/config/mips/defines +3d514fbbc086aae2b520554dd995a705 debian/config/arm64/defines +e411d2dfe0018a7c40b6bf7efd45cd29 debian/config/mipsn32/defines +174058e52aced932bf02606d6cb5649c debian/config/mipsn32el/defines +366b94d652a66b437eabcd165bcc9610 debian/config/featureset-rt/defines +8d317c1872f3bd8da4feae25a7c61df3 debian/config/sparc/defines +e9ffe255afcab8138ebf4106c3707e44 debian/config/powerpc/defines +91a544ce36cc1717eee3e07211633e2c debian/config/ppc64/defines +f4b2921156e7b1a038862f848fdfe48f debian/config/x32/defines +c8677acd57ee1da9d592d7e1ce7ac3d7 debian/config/mips64/defines +788bca75e2379d4c6a5f937db95cf8dc debian/config/sparc64/defines +e893f7044a89425752b95b8c997938e9 debian/config/mipsel/defines +2d093d5d5d6dd1e2b27d717678cb9ece debian/config/sh4/defines +0162bb2f03eb0a881253e9abe9df16a3 debian/config/hppa/defines +92c952083bf0523c5cdffe9f2e7dd300 debian/config/powerpcspe/defines +2776c7338272b480295da18b47b08a7d debian/config/m68k/defines +dd1000f343c70ef7baadf8fec6a826fc debian/config/s390x/defines +882fb0fec3cbd0239817994223fa71e5 debian/config/mipsn32r6/defines +4069594eeb2a1856c6806812055249b2 debian/config/alpha/defines +73e2f095b2485f95bc164bf685684a47 debian/config/mipsn32r6el/defines +4987bf8df1bf042f19fdec4da87aa1d4 debian/config/ppc64el/defines +653b5e73747e3d93efa8ae8b193c1007 debian/config/armel/defines +98673c303524a87722b25c9e6b8cdd81 debian/config/mips64r6/defines +91671d7ce75310062f65a60d3b94489b debian/config/or1k/defines +8f8f7ed35c8dafdc5c6d4ded40bf5920 debian/config/mips64r6el/defines +9462622a41b618007bf9e8343f2fb3ce debian/config/s390/defines +f4c0f31783984e0a9a5b7091200b80fc debian/config/i386/none/defines +7146ff53fc4f9fbb49948225d8589b69 debian/config/i386/rt/defines +c0e5f329e129383e456f94d987cf3ab0 debian/config/amd64/none/defines +7dc981827930ed6844a731ed954b9b9d debian/config/amd64/rt/defines +d3c04182d8746e4871de922a63f03f97 debian/config/arm64/none/defines +a1f1e1c8213e10fb3a416d58fb61bc3c debian/installer/i386/kernel-versions +a38b614c64d74861e6c844adfd7fc935 debian/installer/ppc64el/kernel-versions +8b2032899d26c7029402cc5f3a68280d debian/installer/mips64el/kernel-versions +2c18144b7fbfd950ec1a305728e1e003 debian/installer/mipsr6/kernel-versions +3217c84b23f44f3fecb41d132f310ade debian/installer/armhf/kernel-versions +7ecaa8334419297fe6715afadae794c6 debian/installer/amd64/kernel-versions +b2f2f5b2d18a383b6b5e1961fbf8aeb1 debian/installer/mipsr6el/kernel-versions +00a8913a1998e0a7083495be7a9622f7 debian/installer/mips/kernel-versions +cc12b5c69d0930a4400e9ec072d9f915 debian/installer/arm64/kernel-versions +42aaaa53f3ecb95030e1a33654db6f8e debian/installer/powerpc/kernel-versions +0cb3424304d9602f321919da020eef8c debian/installer/ppc64/kernel-versions +18d013f76c11803b03d2ea610cc201c9 debian/installer/mips64/kernel-versions +61a070b81f93d4c9e955dc90587702f3 debian/installer/sparc64/kernel-versions +0e06b9acdcb4cd8dc06985dd49bdde05 debian/installer/mipsel/kernel-versions +49f36561dee0396410815d4e92beb01e debian/installer/sh4/kernel-versions +8aba4204e5bc4edcfd9790294b8808ec debian/installer/m68k/kernel-versions +f8348b90fe2b9e1e75bddda4dbb832c4 debian/installer/s390x/kernel-versions +1306c7e5b695c185d3193774b566e9e8 debian/installer/alpha/kernel-versions +8512485f3a856fe5225fa9c74ea32d5a debian/installer/hppa/kernel-versions +de8f39f8b1f1f8a34db1ca2920796b0d debian/installer/armel/kernel-versions +bb7aa9ad2c62b074f1c2258a02c5d76c debian/installer/mips64r6/kernel-versions +35e1ed0ef705c3d60069ac8f13af000d debian/installer/mips64r6el/kernel-versions +a7421d0f16ac8a0fb443591062293101 debian/installer/i386/package-list +8b7d23c8cd92a63434be9319b47d23e9 debian/installer/ppc64el/package-list +2bfc44ae55c0c1d5676946c71d1f07f4 debian/installer/mips64el/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mipsr6/package-list +d09d2db2d7b84bf6a421c8e5b709a346 debian/installer/armhf/package-list +85882269667af235595b7b4b744e9ecb debian/installer/amd64/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mipsr6el/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mips/package-list +9e2b11d9b288c0400e77b23245fd0ef0 debian/installer/arm64/package-list +8b7d23c8cd92a63434be9319b47d23e9 debian/installer/powerpc/package-list +8b7d23c8cd92a63434be9319b47d23e9 debian/installer/ppc64/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mips64/package-list +b9df39e550a637012ccd5b1ddaa4b74a debian/installer/sparc64/package-list +2bfc44ae55c0c1d5676946c71d1f07f4 debian/installer/mipsel/package-list +829a090aa9cb3a272daf6b77006c6519 debian/installer/sh4/package-list +d243c37c6930b5d5f646e8b55b317376 debian/installer/m68k/package-list +4c1bf26b971d89864682040568fa388e debian/installer/s390x/package-list +7f3b9396be74d9a40cfb6db48847a5dc debian/installer/alpha/package-list +42f64d483c9033b8af2bf2761a4a62fc debian/installer/hppa/package-list +2cbb54dee5b4512d847c67b20bb35caa debian/installer/armel/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mips64r6/package-list +0fc827f651bf58416e4e2231b01f6908 debian/installer/mips64r6el/package-list +8ab47b087ace888cf6dcc7016ce66116 debian/installer/package-list diff --git a/copyright b/copyright new file mode 100644 index 00000000000..c3ad49090c7 --- /dev/null +++ b/copyright @@ -0,0 +1,164 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Linux kernel +Source: http://ftp.kernel.org/pub/linux/kernel/ +Comment: + The 'perf' tool is dynamically linked with the Python interpreter, + which is itself dynamically linked with OpenSSL, which is not + GPL-compatible. However, since perf itself does not link with or use + OpenSSL, we believe that this indirect linking does not require + additional permissions beyond the GPL. + +Files: * +Copyright: 1991-2012 Linus Torvalds and many others +License: GPL-2 + +Files: debian/* +Copyright: 1996-2006 Manoj Srivastava + 2005-2012 Debian kernel team +License: GPL-2 + +Files: debian/rules.d/tools/hv/check-hyperv.c +Copyright: 2011 Lennart Poettering +License: LGPL-2.1 + +Files: drivers/crypto/vmx/*.pl +Copyright: 2006,2014 Andy Polyakov +License: CRYPTOGAMS + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + * Redistributions of source code must retain copyright notices, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + * Neither the name of the CRYPTOGAMS nor the names of its copyright + holder and contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + . + ALTERNATIVELY, provided that this notice is retained in full, this + product may be distributed under the terms of the GNU General Public + License (GPL), in which case the provisions of the GPL apply INSTEAD + OF those given above. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: fs/nls/mac-* +Copyright: 1991-2012 Unicode, Inc. +License: Unicode-data + All rights reserved. Distributed under the Terms of Use in + http://www.unicode.org/copyright.html. + . + Permission is hereby granted, free of charge, to any person obtaining a + copy of the Unicode data files and any associated documentation (the "Data + Files") or Unicode software and any associated documentation (the + "Software") to deal in the Data Files or Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, and/or sell copies of the Data Files or Software, and + to permit persons to whom the Data Files or Software are furnished to do + so, provided that (a) the above copyright notice(s) and this permission + notice appear with all copies of the Data Files or Software, (b) both the + above copyright notice(s) and this permission notice appear in associated + documentation, and (c) there is clear notice in each modified Data File or + in the Software as well as in the documentation associated with the Data + File(s) or Software that the data or software has been modified. + . + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THE DATA FILES OR SOFTWARE. + . + Except as contained in this notice, the name of a copyright holder shall + not be used in advertising or otherwise to promote the sale, use or other + dealings in these Data Files or Software without prior written + authorization of the copyright holder. + +Files: include/xen/interface/* +Copyright: 2002-2006 Keir Fraser + 2004 Tim Deegan + 2004 Andrew Warfield + 2005 Nguyen Anh Quynh + 2005-2006 IBM Corporation + 2005 Anthony Liguori + 2005 Rusty Russell + 2005-2006 XenSource Ltd. + 2006 Ian Campbell + 2006 Red Hat, Inc. + 2010 Ryan Wilson +License: Xen-interface + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +Files: scripts/extract-cert.c scripts/sign-file.c +Copyright: 2014-2015 Red Hat, Inc. + 2015 Intel Corporation +License: LGPL-2.1 + +License: GPL-2 + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the complete text of the GNU General Public License version + 2 can be found in `/usr/share/common-licenses/GPL-2'. + +License: LGPL-2.1 + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public License + along with this program; If not, see . + . + On Debian systems, the complete text of the GNU Lesser General Public + License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. diff --git a/hyperv-daemons.README.Debian b/hyperv-daemons.README.Debian new file mode 100644 index 00000000000..8fff2afd342 --- /dev/null +++ b/hyperv-daemons.README.Debian @@ -0,0 +1,14 @@ +hyperv-daemon for Debian +------------------------ + + If you want to change screen resolution on Linux guest, + plese update kernel parameter. + + 1. edit /etc/default/grub file + - add 'video=hyperv_fb:"horizontal"x"vertical"' to + 'GRUB_CMDLINE_LINUX_DEFAULT=' or 'GRUB_CMDLINE_LINUX=' line + (e.g. GRUB_CMDLINE_LINUX=video=hyperv_fb:1280x1024) + 2. then, exec update-grub + 3. reboot Linux guest + + -- Hideki Yamane Thu, 28 May 2015 10:23:52 +0900 diff --git a/hyperv-daemons.hv-fcopy-daemon.init b/hyperv-daemons.hv-fcopy-daemon.init new file mode 100755 index 00000000000..24d944d0143 --- /dev/null +++ b/hyperv-daemons.hv-fcopy-daemon.init @@ -0,0 +1,110 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: hyperv-daemons.hv-fcopy-daemon +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Hyper-V file copy service (FCOPY) daemon +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Hyper-V file copy service (FCOPY) daemon" +NAME=hv_fcopy_daemon +DAEMON=/usr/sbin/$NAME +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-fcopy-daemon + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Exit if we are not running under Hyper-V or the kernel device does not exist +/lib/hyperv-daemons/check-hyperv || exit 0 +[ -e "/dev/vmbus/hv_fcopy" ] || exit 0 + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + [ "$?" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + RETVAL=$? + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/hyperv-daemons.hv-fcopy-daemon.service b/hyperv-daemons.hv-fcopy-daemon.service new file mode 100644 index 00000000000..6aec2b38883 --- /dev/null +++ b/hyperv-daemons.hv-fcopy-daemon.service @@ -0,0 +1,10 @@ +[Unit] +Description=Hyper-V file copy service (FCOPY) daemon +ConditionVirtualization=microsoft +ConditionPathExists=/dev/vmbus/hv_fcopy + +[Service] +ExecStart=/usr/sbin/hv_fcopy_daemon -n + +[Install] +WantedBy=multi-user.target diff --git a/hyperv-daemons.hv-kvp-daemon.init b/hyperv-daemons.hv-kvp-daemon.init new file mode 100755 index 00000000000..e5908ec2812 --- /dev/null +++ b/hyperv-daemons.hv-kvp-daemon.init @@ -0,0 +1,109 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: hyperv-daemons.hv-kvp-daemon +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Hyper-V key-value pair (KVP) daemon +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Hyper-V key-value pair (KVP) daemon" +NAME=hv_kvp_daemon +DAEMON=/usr/sbin/$NAME +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-kvp-daemon + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Exit if we are not running under Hyper-V +/lib/hyperv-daemons/check-hyperv || exit 0 + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + [ "$?" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + RETVAL=$? + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/hyperv-daemons.hv-kvp-daemon.service b/hyperv-daemons.hv-kvp-daemon.service new file mode 100644 index 00000000000..f6f6f0d2995 --- /dev/null +++ b/hyperv-daemons.hv-kvp-daemon.service @@ -0,0 +1,9 @@ +[Unit] +Description=Hyper-V key-value pair (KVP) daemon +ConditionVirtualization=microsoft + +[Service] +ExecStart=/usr/sbin/hv_kvp_daemon -n + +[Install] +WantedBy=multi-user.target diff --git a/hyperv-daemons.hv-vss-daemon.init b/hyperv-daemons.hv-vss-daemon.init new file mode 100755 index 00000000000..aff28fcbe4a --- /dev/null +++ b/hyperv-daemons.hv-vss-daemon.init @@ -0,0 +1,109 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: hyperv-daemons.hv-vss-daemon +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Hyper-V volume shadow copy service (VSS) daemon +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Hyper-V volume shadow copy service (VSS) daemon" +NAME=hv_vss_daemon +DAEMON=/usr/sbin/$NAME +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/hyperv-daemons.hv-vss-daemon + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Exit if we are not running under Hyper-V +/lib/hyperv-daemons/check-hyperv || exit 0 + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- -n \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + [ "$?" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + RETVAL=$? + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/hyperv-daemons.hv-vss-daemon.service b/hyperv-daemons.hv-vss-daemon.service new file mode 100644 index 00000000000..3e6534d55e3 --- /dev/null +++ b/hyperv-daemons.hv-vss-daemon.service @@ -0,0 +1,9 @@ +[Unit] +Description=Hyper-V volume shadow copy service (VSS) daemon +ConditionVirtualization=microsoft + +[Service] +ExecStart=/usr/sbin/hv_vss_daemon -n + +[Install] +WantedBy=multi-user.target diff --git a/hyperv-daemons.install b/hyperv-daemons.install new file mode 100644 index 00000000000..2c00a4a79a1 --- /dev/null +++ b/hyperv-daemons.install @@ -0,0 +1 @@ +debian/hyperv-daemons.*.service lib/systemd/system/ diff --git a/installer/alpha/kernel-versions b/installer/alpha/kernel-versions new file mode 100644 index 00000000000..1a479fb203c --- /dev/null +++ b/installer/alpha/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +alpha - alpha-generic - y - diff --git a/installer/alpha/modules/alpha-generic/ata-modules b/installer/alpha/modules/alpha-generic/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/btrfs-modules b/installer/alpha/modules/alpha-generic/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/cdrom-core-modules b/installer/alpha/modules/alpha-generic/cdrom-core-modules new file mode 100644 index 00000000000..3ff69b48f4f --- /dev/null +++ b/installer/alpha/modules/alpha-generic/cdrom-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/crc-modules b/installer/alpha/modules/alpha-generic/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/crypto-dm-modules b/installer/alpha/modules/alpha-generic/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/crypto-modules b/installer/alpha/modules/alpha-generic/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/alpha/modules/alpha-generic/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/event-modules b/installer/alpha/modules/alpha-generic/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/ext4-modules b/installer/alpha/modules/alpha-generic/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/fat-modules b/installer/alpha/modules/alpha-generic/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/alpha/modules/alpha-generic/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/fb-modules b/installer/alpha/modules/alpha-generic/fb-modules new file mode 100644 index 00000000000..11d549730a1 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/fb-modules @@ -0,0 +1,4 @@ +fbcon ? +lxfb ? +vesafb ? +vga16fb ? diff --git a/installer/alpha/modules/alpha-generic/fuse-modules b/installer/alpha/modules/alpha-generic/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/alpha/modules/alpha-generic/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/input-modules b/installer/alpha/modules/alpha-generic/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/isofs-modules b/installer/alpha/modules/alpha-generic/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/jfs-modules b/installer/alpha/modules/alpha-generic/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/kernel-image b/installer/alpha/modules/alpha-generic/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/alpha/modules/alpha-generic/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/loop-modules b/installer/alpha/modules/alpha-generic/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/md-modules b/installer/alpha/modules/alpha-generic/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/mouse-modules b/installer/alpha/modules/alpha-generic/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/multipath-modules b/installer/alpha/modules/alpha-generic/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/alpha/modules/alpha-generic/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nbd-modules b/installer/alpha/modules/alpha-generic/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nic-modules b/installer/alpha/modules/alpha-generic/nic-modules new file mode 100644 index 00000000000..2512e83950d --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nic-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nic-pcmcia-modules b/installer/alpha/modules/alpha-generic/nic-pcmcia-modules new file mode 100644 index 00000000000..7a0702cd558 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nic-pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nic-shared-modules b/installer/alpha/modules/alpha-generic/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nic-usb-modules b/installer/alpha/modules/alpha-generic/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/nic-wireless-modules b/installer/alpha/modules/alpha-generic/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/alpha/modules/alpha-generic/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/pata-modules b/installer/alpha/modules/alpha-generic/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/pcmcia-modules b/installer/alpha/modules/alpha-generic/pcmcia-modules new file mode 100644 index 00000000000..2bb5350fe14 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/ppp-modules b/installer/alpha/modules/alpha-generic/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/sata-modules b/installer/alpha/modules/alpha-generic/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/scsi-core-modules b/installer/alpha/modules/alpha-generic/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/scsi-modules b/installer/alpha/modules/alpha-generic/scsi-modules new file mode 100644 index 00000000000..8909dfb7948 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/scsi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/serial-modules b/installer/alpha/modules/alpha-generic/serial-modules new file mode 100644 index 00000000000..6ab8b8c3551 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/squashfs-modules b/installer/alpha/modules/alpha-generic/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/srm-modules b/installer/alpha/modules/alpha-generic/srm-modules new file mode 100644 index 00000000000..01601199779 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/srm-modules @@ -0,0 +1 @@ +srm_env diff --git a/installer/alpha/modules/alpha-generic/usb-modules b/installer/alpha/modules/alpha-generic/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/usb-serial-modules b/installer/alpha/modules/alpha-generic/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/usb-storage-modules b/installer/alpha/modules/alpha-generic/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/virtio-modules b/installer/alpha/modules/alpha-generic/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/alpha/modules/alpha-generic/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/xfs-modules b/installer/alpha/modules/alpha-generic/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/alpha/modules/alpha-generic/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/modules/alpha-generic/zlib-modules b/installer/alpha/modules/alpha-generic/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/alpha/modules/alpha-generic/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/alpha/package-list b/installer/alpha/package-list new file mode 100644 index 00000000000..d3332079024 --- /dev/null +++ b/installer/alpha/package-list @@ -0,0 +1,22 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image + +Package: usb-storage-modules +Depends: kernel-image, scsi-modules, usb-modules + +Package: pata-modules +Depends: kernel-image, ata-modules, scsi-core-modules + +Package: fb-modules +Depends: kernel-image, i2c-modules + +Package: srm-modules +Depends: kernel-image +Priority: standard +Description: SRM modules + This package contains the srm_env module which provides access to the SRM + environment. diff --git a/installer/amd64/TODO b/installer/amd64/TODO new file mode 100644 index 00000000000..d02dd6c7dab --- /dev/null +++ b/installer/amd64/TODO @@ -0,0 +1,3 @@ +* The 2.6 kernel is missing a lot of modules, need to get a list of all + modules included in the udebs, and compare vs. the full module list and + add missing stuff. diff --git a/installer/amd64/kernel-versions b/installer/amd64/kernel-versions new file mode 100644 index 00000000000..1700a9426c1 --- /dev/null +++ b/installer/amd64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +amd64 - amd64 - - - diff --git a/installer/amd64/modules/amd64/acpi-modules b/installer/amd64/modules/amd64/acpi-modules new file mode 100644 index 00000000000..307528fb17e --- /dev/null +++ b/installer/amd64/modules/amd64/acpi-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/ata-modules b/installer/amd64/modules/amd64/ata-modules new file mode 100644 index 00000000000..9409e7cde81 --- /dev/null +++ b/installer/amd64/modules/amd64/ata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/btrfs-modules b/installer/amd64/modules/amd64/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/amd64/modules/amd64/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/cdrom-core-modules b/installer/amd64/modules/amd64/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/amd64/modules/amd64/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/crc-modules b/installer/amd64/modules/amd64/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/amd64/modules/amd64/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/crypto-dm-modules b/installer/amd64/modules/amd64/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/amd64/modules/amd64/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/crypto-modules b/installer/amd64/modules/amd64/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/amd64/modules/amd64/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/efi-modules b/installer/amd64/modules/amd64/efi-modules new file mode 100644 index 00000000000..e1dc05e8f24 --- /dev/null +++ b/installer/amd64/modules/amd64/efi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/event-modules b/installer/amd64/modules/amd64/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/amd64/modules/amd64/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/ext4-modules b/installer/amd64/modules/amd64/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/amd64/modules/amd64/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/fat-modules b/installer/amd64/modules/amd64/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/amd64/modules/amd64/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/fb-modules b/installer/amd64/modules/amd64/fb-modules new file mode 100644 index 00000000000..16014671548 --- /dev/null +++ b/installer/amd64/modules/amd64/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb diff --git a/installer/amd64/modules/amd64/firewire-core-modules b/installer/amd64/modules/amd64/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/amd64/modules/amd64/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/fuse-modules b/installer/amd64/modules/amd64/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/amd64/modules/amd64/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/hyperv-modules b/installer/amd64/modules/amd64/hyperv-modules new file mode 100644 index 00000000000..69fdd5d22a8 --- /dev/null +++ b/installer/amd64/modules/amd64/hyperv-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/i2c-modules b/installer/amd64/modules/amd64/i2c-modules new file mode 100644 index 00000000000..203a607e73c --- /dev/null +++ b/installer/amd64/modules/amd64/i2c-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/input-modules b/installer/amd64/modules/amd64/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/amd64/modules/amd64/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/isofs-modules b/installer/amd64/modules/amd64/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/amd64/modules/amd64/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/jfs-modules b/installer/amd64/modules/amd64/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/amd64/modules/amd64/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/kernel-image b/installer/amd64/modules/amd64/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/amd64/modules/amd64/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/loop-modules b/installer/amd64/modules/amd64/loop-modules new file mode 100644 index 00000000000..16446771376 --- /dev/null +++ b/installer/amd64/modules/amd64/loop-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/md-modules b/installer/amd64/modules/amd64/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/amd64/modules/amd64/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/mmc-core-modules b/installer/amd64/modules/amd64/mmc-core-modules new file mode 100644 index 00000000000..7bf38465cf1 --- /dev/null +++ b/installer/amd64/modules/amd64/mmc-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/mmc-modules b/installer/amd64/modules/amd64/mmc-modules new file mode 100644 index 00000000000..dadfd5334d6 --- /dev/null +++ b/installer/amd64/modules/amd64/mmc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/mouse-modules b/installer/amd64/modules/amd64/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/amd64/modules/amd64/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/multipath-modules b/installer/amd64/modules/amd64/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/amd64/modules/amd64/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nbd-modules b/installer/amd64/modules/amd64/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/amd64/modules/amd64/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nic-modules b/installer/amd64/modules/amd64/nic-modules new file mode 100644 index 00000000000..2512e83950d --- /dev/null +++ b/installer/amd64/modules/amd64/nic-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nic-pcmcia-modules b/installer/amd64/modules/amd64/nic-pcmcia-modules new file mode 100644 index 00000000000..7a0702cd558 --- /dev/null +++ b/installer/amd64/modules/amd64/nic-pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nic-shared-modules b/installer/amd64/modules/amd64/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/amd64/modules/amd64/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nic-usb-modules b/installer/amd64/modules/amd64/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/amd64/modules/amd64/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/nic-wireless-modules b/installer/amd64/modules/amd64/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/amd64/modules/amd64/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/ntfs-modules b/installer/amd64/modules/amd64/ntfs-modules new file mode 100644 index 00000000000..ac1bc6a9601 --- /dev/null +++ b/installer/amd64/modules/amd64/ntfs-modules @@ -0,0 +1 @@ +ntfs diff --git a/installer/amd64/modules/amd64/pata-modules b/installer/amd64/modules/amd64/pata-modules new file mode 100644 index 00000000000..8c4e514ae72 --- /dev/null +++ b/installer/amd64/modules/amd64/pata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/pcmcia-modules b/installer/amd64/modules/amd64/pcmcia-modules new file mode 100644 index 00000000000..2bb5350fe14 --- /dev/null +++ b/installer/amd64/modules/amd64/pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/pcmcia-storage-modules b/installer/amd64/modules/amd64/pcmcia-storage-modules new file mode 100644 index 00000000000..f73ae5bb9b4 --- /dev/null +++ b/installer/amd64/modules/amd64/pcmcia-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/ppp-modules b/installer/amd64/modules/amd64/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/amd64/modules/amd64/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/sata-modules b/installer/amd64/modules/amd64/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/amd64/modules/amd64/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/scsi-core-modules b/installer/amd64/modules/amd64/scsi-core-modules new file mode 100644 index 00000000000..778a022fa75 --- /dev/null +++ b/installer/amd64/modules/amd64/scsi-core-modules @@ -0,0 +1,4 @@ +#include + +# Needed by hv_storvsc in hyperv-modules as well as scsi-modules +scsi_transport_fc diff --git a/installer/amd64/modules/amd64/scsi-modules b/installer/amd64/modules/amd64/scsi-modules new file mode 100644 index 00000000000..8909dfb7948 --- /dev/null +++ b/installer/amd64/modules/amd64/scsi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/serial-modules b/installer/amd64/modules/amd64/serial-modules new file mode 100644 index 00000000000..6ab8b8c3551 --- /dev/null +++ b/installer/amd64/modules/amd64/serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/sound-modules b/installer/amd64/modules/amd64/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/amd64/modules/amd64/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/speakup-modules b/installer/amd64/modules/amd64/speakup-modules new file mode 100644 index 00000000000..29592721a7a --- /dev/null +++ b/installer/amd64/modules/amd64/speakup-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/squashfs-modules b/installer/amd64/modules/amd64/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/amd64/modules/amd64/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/udf-modules b/installer/amd64/modules/amd64/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/amd64/modules/amd64/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/uinput-modules b/installer/amd64/modules/amd64/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/amd64/modules/amd64/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/usb-modules b/installer/amd64/modules/amd64/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/amd64/modules/amd64/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/usb-serial-modules b/installer/amd64/modules/amd64/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/amd64/modules/amd64/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/usb-storage-modules b/installer/amd64/modules/amd64/usb-storage-modules new file mode 100644 index 00000000000..272d95e2e8b --- /dev/null +++ b/installer/amd64/modules/amd64/usb-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/modules/amd64/virtio-modules b/installer/amd64/modules/amd64/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/amd64/modules/amd64/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/amd64/modules/amd64/xfs-modules b/installer/amd64/modules/amd64/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/amd64/modules/amd64/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/amd64/package-list b/installer/amd64/package-list new file mode 100644 index 00000000000..e55a71031af --- /dev/null +++ b/installer/amd64/package-list @@ -0,0 +1,14 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: fat-modules +Priority: standard + +Package: scsi-modules +Depends: kernel-image, scsi-core-modules, cdrom-core-modules, core-modules, ata-modules + +Package: kernel-image +Provides: zlib-modules diff --git a/installer/arm64/kernel-versions b/installer/arm64/kernel-versions new file mode 100644 index 00000000000..11d7399544a --- /dev/null +++ b/installer/arm64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +arm64 - arm64 - - - diff --git a/installer/arm64/modules/arm64/ata-modules b/installer/arm64/modules/arm64/ata-modules new file mode 100644 index 00000000000..04d9c88411a --- /dev/null +++ b/installer/arm64/modules/arm64/ata-modules @@ -0,0 +1 @@ +libata diff --git a/installer/arm64/modules/arm64/btrfs-modules b/installer/arm64/modules/arm64/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/arm64/modules/arm64/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/cdrom-core-modules b/installer/arm64/modules/arm64/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/arm64/modules/arm64/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/arm64/modules/arm64/crc-modules b/installer/arm64/modules/arm64/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/arm64/modules/arm64/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/crypto-dm-modules b/installer/arm64/modules/arm64/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/arm64/modules/arm64/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/crypto-modules b/installer/arm64/modules/arm64/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/arm64/modules/arm64/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/efi-modules b/installer/arm64/modules/arm64/efi-modules new file mode 100644 index 00000000000..e1dc05e8f24 --- /dev/null +++ b/installer/arm64/modules/arm64/efi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/event-modules b/installer/arm64/modules/arm64/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/arm64/modules/arm64/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/ext4-modules b/installer/arm64/modules/arm64/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/arm64/modules/arm64/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/fat-modules b/installer/arm64/modules/arm64/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/arm64/modules/arm64/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/fb-modules b/installer/arm64/modules/arm64/fb-modules new file mode 100644 index 00000000000..8d35a44bbac --- /dev/null +++ b/installer/arm64/modules/arm64/fb-modules @@ -0,0 +1 @@ +tegra-drm diff --git a/installer/arm64/modules/arm64/fuse-modules b/installer/arm64/modules/arm64/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/arm64/modules/arm64/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/i2c-modules b/installer/arm64/modules/arm64/i2c-modules new file mode 100644 index 00000000000..bfe65b4cd88 --- /dev/null +++ b/installer/arm64/modules/arm64/i2c-modules @@ -0,0 +1,2 @@ +#include +i2c-tegra diff --git a/installer/arm64/modules/arm64/input-modules b/installer/arm64/modules/arm64/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/arm64/modules/arm64/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/isofs-modules b/installer/arm64/modules/arm64/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/arm64/modules/arm64/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/jfs-modules b/installer/arm64/modules/arm64/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/arm64/modules/arm64/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/kernel-image b/installer/arm64/modules/arm64/kernel-image new file mode 100644 index 00000000000..6b6fb415da5 --- /dev/null +++ b/installer/arm64/modules/arm64/kernel-image @@ -0,0 +1,7 @@ +#include + +# Regulators +drivers/regulator/** + +# SoC modules +drivers/soc/** diff --git a/installer/arm64/modules/arm64/leds-modules b/installer/arm64/modules/arm64/leds-modules new file mode 100644 index 00000000000..85d9f2565c1 --- /dev/null +++ b/installer/arm64/modules/arm64/leds-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/loop-modules b/installer/arm64/modules/arm64/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/arm64/modules/arm64/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/md-modules b/installer/arm64/modules/arm64/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/arm64/modules/arm64/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/mmc-modules b/installer/arm64/modules/arm64/mmc-modules new file mode 100644 index 00000000000..dadfd5334d6 --- /dev/null +++ b/installer/arm64/modules/arm64/mmc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/multipath-modules b/installer/arm64/modules/arm64/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/arm64/modules/arm64/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/nbd-modules b/installer/arm64/modules/arm64/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/arm64/modules/arm64/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/nic-modules b/installer/arm64/modules/arm64/nic-modules new file mode 100644 index 00000000000..22ea989ab8f --- /dev/null +++ b/installer/arm64/modules/arm64/nic-modules @@ -0,0 +1,9 @@ +#include +amd-xgbe +smc91x +smsc911x +stmmac +stmmac-platform +dwmac-generic +dwmac-ipq806x +xgene-enet diff --git a/installer/arm64/modules/arm64/nic-shared-modules b/installer/arm64/modules/arm64/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/arm64/modules/arm64/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/nic-usb-modules b/installer/arm64/modules/arm64/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/arm64/modules/arm64/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/nic-wireless-modules b/installer/arm64/modules/arm64/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/arm64/modules/arm64/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/ppp-modules b/installer/arm64/modules/arm64/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/arm64/modules/arm64/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/sata-modules b/installer/arm64/modules/arm64/sata-modules new file mode 100644 index 00000000000..312af7bcc60 --- /dev/null +++ b/installer/arm64/modules/arm64/sata-modules @@ -0,0 +1,7 @@ +#include +ahci_platform +ahci_tegra +ahci_xgene +phy-qcom-apq8064-sata +phy-qcom-ipq806x-sata +phy-xgene diff --git a/installer/arm64/modules/arm64/scsi-core-modules b/installer/arm64/modules/arm64/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/arm64/modules/arm64/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/scsi-modules b/installer/arm64/modules/arm64/scsi-modules new file mode 100644 index 00000000000..8909dfb7948 --- /dev/null +++ b/installer/arm64/modules/arm64/scsi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/squashfs-modules b/installer/arm64/modules/arm64/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/arm64/modules/arm64/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/udf-modules b/installer/arm64/modules/arm64/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/arm64/modules/arm64/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/uinput-modules b/installer/arm64/modules/arm64/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/arm64/modules/arm64/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/usb-modules b/installer/arm64/modules/arm64/usb-modules new file mode 100644 index 00000000000..7614f232016 --- /dev/null +++ b/installer/arm64/modules/arm64/usb-modules @@ -0,0 +1,3 @@ +#include +dwc2 +dwc3 diff --git a/installer/arm64/modules/arm64/usb-storage-modules b/installer/arm64/modules/arm64/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/arm64/modules/arm64/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/virtio-modules b/installer/arm64/modules/arm64/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/arm64/modules/arm64/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/modules/arm64/xfs-modules b/installer/arm64/modules/arm64/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/arm64/modules/arm64/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/arm64/package-list b/installer/arm64/package-list new file mode 100644 index 00000000000..22daaa6cc16 --- /dev/null +++ b/installer/arm64/package-list @@ -0,0 +1,8 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: kernel-image +Provides: zlib-modules diff --git a/installer/armel/kernel-versions b/installer/armel/kernel-versions new file mode 100644 index 00000000000..49eb64629e7 --- /dev/null +++ b/installer/armel/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +armel - marvell - y - diff --git a/installer/armel/modules/armel-marvell/btrfs-modules b/installer/armel/modules/armel-marvell/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/armel/modules/armel-marvell/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/cdrom-core-modules b/installer/armel/modules/armel-marvell/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/armel/modules/armel-marvell/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/armel/modules/armel-marvell/crc-modules b/installer/armel/modules/armel-marvell/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/armel/modules/armel-marvell/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/crypto-dm-modules b/installer/armel/modules/armel-marvell/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/armel/modules/armel-marvell/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/crypto-modules b/installer/armel/modules/armel-marvell/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/armel/modules/armel-marvell/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/event-modules b/installer/armel/modules/armel-marvell/event-modules new file mode 100644 index 00000000000..0bc9f776dae --- /dev/null +++ b/installer/armel/modules/armel-marvell/event-modules @@ -0,0 +1,2 @@ +#include +gpio_keys diff --git a/installer/armel/modules/armel-marvell/ext4-modules b/installer/armel/modules/armel-marvell/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/armel/modules/armel-marvell/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/fat-modules b/installer/armel/modules/armel-marvell/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/armel/modules/armel-marvell/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/fb-modules b/installer/armel/modules/armel-marvell/fb-modules new file mode 100644 index 00000000000..4654768e0fe --- /dev/null +++ b/installer/armel/modules/armel-marvell/fb-modules @@ -0,0 +1,3 @@ +fbcon +udlfb +xgifb diff --git a/installer/armel/modules/armel-marvell/fuse-modules b/installer/armel/modules/armel-marvell/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/armel/modules/armel-marvell/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/input-modules b/installer/armel/modules/armel-marvell/input-modules new file mode 100644 index 00000000000..34183581c0e --- /dev/null +++ b/installer/armel/modules/armel-marvell/input-modules @@ -0,0 +1,3 @@ +#include +# Moved to event-modules for use in network-console builds +gpio_keys - diff --git a/installer/armel/modules/armel-marvell/ipv6-modules b/installer/armel/modules/armel-marvell/ipv6-modules new file mode 100644 index 00000000000..1e3fc3388c0 --- /dev/null +++ b/installer/armel/modules/armel-marvell/ipv6-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/isofs-modules b/installer/armel/modules/armel-marvell/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/armel/modules/armel-marvell/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/jffs2-modules b/installer/armel/modules/armel-marvell/jffs2-modules new file mode 100644 index 00000000000..245c7d8a520 --- /dev/null +++ b/installer/armel/modules/armel-marvell/jffs2-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/jfs-modules b/installer/armel/modules/armel-marvell/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/armel/modules/armel-marvell/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/kernel-image b/installer/armel/modules/armel-marvell/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/armel/modules/armel-marvell/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/leds-modules b/installer/armel/modules/armel-marvell/leds-modules new file mode 100644 index 00000000000..b18bac13fb2 --- /dev/null +++ b/installer/armel/modules/armel-marvell/leds-modules @@ -0,0 +1,2 @@ +leds-ns2 +leds-netxbig diff --git a/installer/armel/modules/armel-marvell/loop-modules b/installer/armel/modules/armel-marvell/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/armel/modules/armel-marvell/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/md-modules b/installer/armel/modules/armel-marvell/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/armel/modules/armel-marvell/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/minix-modules b/installer/armel/modules/armel-marvell/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/armel/modules/armel-marvell/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/mmc-modules b/installer/armel/modules/armel-marvell/mmc-modules new file mode 100644 index 00000000000..e8c7b46f522 --- /dev/null +++ b/installer/armel/modules/armel-marvell/mmc-modules @@ -0,0 +1,2 @@ +#include +mvsdio diff --git a/installer/armel/modules/armel-marvell/mouse-modules b/installer/armel/modules/armel-marvell/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/armel/modules/armel-marvell/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/mtd-modules b/installer/armel/modules/armel-marvell/mtd-modules new file mode 100644 index 00000000000..5fcac1e0a64 --- /dev/null +++ b/installer/armel/modules/armel-marvell/mtd-modules @@ -0,0 +1,2 @@ +#include +m25p80 diff --git a/installer/armel/modules/armel-marvell/multipath-modules b/installer/armel/modules/armel-marvell/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/armel/modules/armel-marvell/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/nbd-modules b/installer/armel/modules/armel-marvell/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/armel/modules/armel-marvell/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/nic-modules b/installer/armel/modules/armel-marvell/nic-modules new file mode 100644 index 00000000000..1a2cdb1fc9f --- /dev/null +++ b/installer/armel/modules/armel-marvell/nic-modules @@ -0,0 +1,2 @@ +mv643xx_eth +mvmdio diff --git a/installer/armel/modules/armel-marvell/nic-shared-modules b/installer/armel/modules/armel-marvell/nic-shared-modules new file mode 100644 index 00000000000..e02d64f7143 --- /dev/null +++ b/installer/armel/modules/armel-marvell/nic-shared-modules @@ -0,0 +1,2 @@ +#include +of_mdio diff --git a/installer/armel/modules/armel-marvell/nic-usb-modules b/installer/armel/modules/armel-marvell/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/armel/modules/armel-marvell/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/ppp-modules b/installer/armel/modules/armel-marvell/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/armel/modules/armel-marvell/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/armel/modules/armel-marvell/sata-modules b/installer/armel/modules/armel-marvell/sata-modules new file mode 100644 index 00000000000..3adbfa16df8 --- /dev/null +++ b/installer/armel/modules/armel-marvell/sata-modules @@ -0,0 +1,2 @@ +ahci +sata_mv diff --git a/installer/armel/modules/armel-marvell/scsi-core-modules b/installer/armel/modules/armel-marvell/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/armel/modules/armel-marvell/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/squashfs-modules b/installer/armel/modules/armel-marvell/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/armel/modules/armel-marvell/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/udf-modules b/installer/armel/modules/armel-marvell/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/armel/modules/armel-marvell/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/uinput-modules b/installer/armel/modules/armel-marvell/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/armel/modules/armel-marvell/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/usb-modules b/installer/armel/modules/armel-marvell/usb-modules new file mode 100644 index 00000000000..772c4afee3a --- /dev/null +++ b/installer/armel/modules/armel-marvell/usb-modules @@ -0,0 +1,2 @@ +#include +ehci-orion diff --git a/installer/armel/modules/armel-marvell/usb-serial-modules b/installer/armel/modules/armel-marvell/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/armel/modules/armel-marvell/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/usb-storage-modules b/installer/armel/modules/armel-marvell/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/armel/modules/armel-marvell/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/modules/armel-marvell/zlib-modules b/installer/armel/modules/armel-marvell/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/armel/modules/armel-marvell/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armel/package-list b/installer/armel/package-list new file mode 100644 index 00000000000..d975323d3e2 --- /dev/null +++ b/installer/armel/package-list @@ -0,0 +1,11 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides_marvell: rtc-modules +Provides_versatile: rtc-modules + +Package: fb-modules +Depends: kernel-image, usb-modules diff --git a/installer/armhf/kernel-versions b/installer/armhf/kernel-versions new file mode 100644 index 00000000000..c73dcc7a47c --- /dev/null +++ b/installer/armhf/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +armhf - armmp - - - diff --git a/installer/armhf/modules/armhf-armmp/ata-modules b/installer/armhf/modules/armhf-armmp/ata-modules new file mode 100644 index 00000000000..04d9c88411a --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/ata-modules @@ -0,0 +1 @@ +libata diff --git a/installer/armhf/modules/armhf-armmp/btrfs-modules b/installer/armhf/modules/armhf-armmp/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/crc-modules b/installer/armhf/modules/armhf-armmp/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/crypto-dm-modules b/installer/armhf/modules/armhf-armmp/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/crypto-modules b/installer/armhf/modules/armhf-armmp/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/efi-modules b/installer/armhf/modules/armhf-armmp/efi-modules new file mode 100644 index 00000000000..e1dc05e8f24 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/efi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/event-modules b/installer/armhf/modules/armhf-armmp/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/ext4-modules b/installer/armhf/modules/armhf-armmp/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/fat-modules b/installer/armhf/modules/armhf-armmp/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/fb-modules b/installer/armhf/modules/armhf-armmp/fb-modules new file mode 100644 index 00000000000..849ebe2bf50 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/fb-modules @@ -0,0 +1,3 @@ +imx-ipuv3-crtc +dw_hdmi-imx +tegra-drm diff --git a/installer/armhf/modules/armhf-armmp/fuse-modules b/installer/armhf/modules/armhf-armmp/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/input-modules b/installer/armhf/modules/armhf-armmp/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/isofs-modules b/installer/armhf/modules/armhf-armmp/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/jfs-modules b/installer/armhf/modules/armhf-armmp/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/kernel-image b/installer/armhf/modules/armhf-armmp/kernel-image new file mode 100644 index 00000000000..edd1bf7fe19 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/kernel-image @@ -0,0 +1,17 @@ +#include + +# Clocks +clk-palmas ? +clk-s2mps11 ? +clk-twl6040 ? + +# GPIO +gpio-da9052 ? +gpio-pca953x ? + +# PCIe PHYs +phy-omap-control ? +phy-ti-pipe3 ? + +# Regulators +drivers/regulator/** diff --git a/installer/armhf/modules/armhf-armmp/leds-modules b/installer/armhf/modules/armhf-armmp/leds-modules new file mode 100644 index 00000000000..85d9f2565c1 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/leds-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/loop-modules b/installer/armhf/modules/armhf-armmp/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/md-modules b/installer/armhf/modules/armhf-armmp/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/mmc-modules b/installer/armhf/modules/armhf-armmp/mmc-modules new file mode 100644 index 00000000000..dadfd5334d6 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/mmc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/mtd-modules b/installer/armhf/modules/armhf-armmp/mtd-modules new file mode 100644 index 00000000000..7370cda4e6d --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/mtd-modules @@ -0,0 +1,3 @@ +#include +mxc_nand +pxa3xx_nand diff --git a/installer/armhf/modules/armhf-armmp/multipath-modules b/installer/armhf/modules/armhf-armmp/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/nbd-modules b/installer/armhf/modules/armhf-armmp/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/nic-modules b/installer/armhf/modules/armhf-armmp/nic-modules new file mode 100644 index 00000000000..75a4eb93100 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/nic-modules @@ -0,0 +1,14 @@ +#include +mvneta +mvmdio +smsc911x +stmmac +stmmac-platform +dwmac-generic +dwmac-altr-socfpga +dwmac-sunxi +sun4i-emac +xgmac +ti_cpsw +davinci_mdio +davinci_cpdma diff --git a/installer/armhf/modules/armhf-armmp/nic-shared-modules b/installer/armhf/modules/armhf-armmp/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/nic-usb-modules b/installer/armhf/modules/armhf-armmp/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/nic-wireless-modules b/installer/armhf/modules/armhf-armmp/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/pata-modules b/installer/armhf/modules/armhf-armmp/pata-modules new file mode 100644 index 00000000000..2ff7276d402 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/pata-modules @@ -0,0 +1 @@ +pata_imx diff --git a/installer/armhf/modules/armhf-armmp/ppp-modules b/installer/armhf/modules/armhf-armmp/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/sata-modules b/installer/armhf/modules/armhf-armmp/sata-modules new file mode 100644 index 00000000000..70d5e3674f6 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/sata-modules @@ -0,0 +1,9 @@ +#include +ahci_platform +ahci_imx +ahci_sunxi +ahci_tegra +sata_highbank + +# SATA PHYs +phy-exynos5250-sata diff --git a/installer/armhf/modules/armhf-armmp/scsi-core-modules b/installer/armhf/modules/armhf-armmp/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/scsi-modules b/installer/armhf/modules/armhf-armmp/scsi-modules new file mode 100644 index 00000000000..675462a141f --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/scsi-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/armhf/modules/armhf-armmp/squashfs-modules b/installer/armhf/modules/armhf-armmp/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/udf-modules b/installer/armhf/modules/armhf-armmp/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/uinput-modules b/installer/armhf/modules/armhf-armmp/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/usb-modules b/installer/armhf/modules/armhf-armmp/usb-modules new file mode 100644 index 00000000000..f82d68b5dff --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/usb-modules @@ -0,0 +1,14 @@ +#include +dwc3-exynos +dwc3-omap +ohci-exynos +ohci-omap3 +ehci-exynos +ehci-omap +ehci-orion +ehci-tegra +ci_hdrc_imx +dwc2 +dwc3 +omap-ocp2scp +extcon-usb-gpio diff --git a/installer/armhf/modules/armhf-armmp/usb-storage-modules b/installer/armhf/modules/armhf-armmp/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/virtio-modules b/installer/armhf/modules/armhf-armmp/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/modules/armhf-armmp/zlib-modules b/installer/armhf/modules/armhf-armmp/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/armhf/modules/armhf-armmp/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/armhf/package-list b/installer/armhf/package-list new file mode 100644 index 00000000000..d0fd3855f42 --- /dev/null +++ b/installer/armhf/package-list @@ -0,0 +1,9 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image + +Package: pata-modules +Priority: extra diff --git a/installer/hppa/kernel-versions b/installer/hppa/kernel-versions new file mode 100644 index 00000000000..e59e12c0a7a --- /dev/null +++ b/installer/hppa/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +hppa - parisc - y - +hppa - parisc64-smp - y - diff --git a/installer/hppa/modules/hppa-parisc64-smp/ata-modules b/installer/hppa/modules/hppa-parisc64-smp/ata-modules new file mode 100644 index 00000000000..08f295ad210 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/ata-modules @@ -0,0 +1 @@ +#include "../hppa/ata-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/btrfs-modules b/installer/hppa/modules/hppa-parisc64-smp/btrfs-modules new file mode 100644 index 00000000000..677b351f7b9 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/btrfs-modules @@ -0,0 +1 @@ +#include "../hppa/btrfs-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/cdrom-core-modules b/installer/hppa/modules/hppa-parisc64-smp/cdrom-core-modules new file mode 100644 index 00000000000..9656269beb6 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/cdrom-core-modules @@ -0,0 +1 @@ +#include "../hppa/cdrom-core-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/crc-modules b/installer/hppa/modules/hppa-parisc64-smp/crc-modules new file mode 100644 index 00000000000..f75e86b30df --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/crc-modules @@ -0,0 +1 @@ +#include "../hppa/crc-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/crypto-dm-modules b/installer/hppa/modules/hppa-parisc64-smp/crypto-dm-modules new file mode 100644 index 00000000000..ed740a5513f --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/crypto-dm-modules @@ -0,0 +1 @@ +#include "../hppa/crypto-dm-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/crypto-modules b/installer/hppa/modules/hppa-parisc64-smp/crypto-modules new file mode 100644 index 00000000000..1c4d2d0cf59 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/crypto-modules @@ -0,0 +1 @@ +#include "../hppa/crypto-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/event-modules b/installer/hppa/modules/hppa-parisc64-smp/event-modules new file mode 100644 index 00000000000..1a5cbb04af9 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/event-modules @@ -0,0 +1 @@ +#include "../hppa/event-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/ext4-modules b/installer/hppa/modules/hppa-parisc64-smp/ext4-modules new file mode 100644 index 00000000000..00920ace111 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/ext4-modules @@ -0,0 +1 @@ +#include "../hppa/ext4-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/fat-modules b/installer/hppa/modules/hppa-parisc64-smp/fat-modules new file mode 100644 index 00000000000..ef6dd33ff50 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/fat-modules @@ -0,0 +1 @@ +#include "../hppa/fat-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/fb-modules b/installer/hppa/modules/hppa-parisc64-smp/fb-modules new file mode 100644 index 00000000000..acaf53bbaa5 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/fb-modules @@ -0,0 +1,6 @@ +drm ? +drm_kms_helper ? +radeon ? +ttm ? + + diff --git a/installer/hppa/modules/hppa-parisc64-smp/fuse-modules b/installer/hppa/modules/hppa-parisc64-smp/fuse-modules new file mode 100644 index 00000000000..06f8ccf6317 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/fuse-modules @@ -0,0 +1 @@ +#include "../hppa/fuse-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/input-modules b/installer/hppa/modules/hppa-parisc64-smp/input-modules new file mode 100644 index 00000000000..cdeaa30fed3 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/input-modules @@ -0,0 +1 @@ +#include "../hppa/input-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/isofs-modules b/installer/hppa/modules/hppa-parisc64-smp/isofs-modules new file mode 100644 index 00000000000..9e8e2dfb1fa --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/isofs-modules @@ -0,0 +1 @@ +#include "../hppa/isofs-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/jfs-modules b/installer/hppa/modules/hppa-parisc64-smp/jfs-modules new file mode 100644 index 00000000000..a3b6beb7d3a --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/jfs-modules @@ -0,0 +1 @@ +#include "../hppa/jfs-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/kernel-image b/installer/hppa/modules/hppa-parisc64-smp/kernel-image new file mode 100644 index 00000000000..93d59f53981 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/kernel-image @@ -0,0 +1 @@ +#include "../hppa/kernel-image" diff --git a/installer/hppa/modules/hppa-parisc64-smp/loop-modules b/installer/hppa/modules/hppa-parisc64-smp/loop-modules new file mode 100644 index 00000000000..721ffecf45e --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/loop-modules @@ -0,0 +1 @@ +#include "../hppa/loop-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/md-modules b/installer/hppa/modules/hppa-parisc64-smp/md-modules new file mode 100644 index 00000000000..d7e97202280 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/md-modules @@ -0,0 +1 @@ +#include "../hppa/md-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/mouse-modules b/installer/hppa/modules/hppa-parisc64-smp/mouse-modules new file mode 100644 index 00000000000..f9edf83b016 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/mouse-modules @@ -0,0 +1 @@ +#include "../hppa/mouse-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/multipath-modules b/installer/hppa/modules/hppa-parisc64-smp/multipath-modules new file mode 100644 index 00000000000..46f68a37a48 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/multipath-modules @@ -0,0 +1 @@ +#include "../hppa/multipath-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/nbd-modules b/installer/hppa/modules/hppa-parisc64-smp/nbd-modules new file mode 100644 index 00000000000..b4c4622c731 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/nbd-modules @@ -0,0 +1 @@ +#include "../hppa/nbd-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/nic-modules b/installer/hppa/modules/hppa-parisc64-smp/nic-modules new file mode 100644 index 00000000000..e15b2d57390 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/nic-modules @@ -0,0 +1 @@ +#include "../hppa/nic-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules b/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules new file mode 100644 index 00000000000..fd0b19c8071 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/nic-shared-modules @@ -0,0 +1 @@ +#include "../hppa/nic-shared-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules b/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules new file mode 100644 index 00000000000..261192d2e87 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/nic-usb-modules @@ -0,0 +1 @@ +#include "../hppa/nic-usb-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/pata-modules b/installer/hppa/modules/hppa-parisc64-smp/pata-modules new file mode 100644 index 00000000000..46bc71900e6 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/pata-modules @@ -0,0 +1 @@ +#include "../hppa/pata-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/ppp-modules b/installer/hppa/modules/hppa-parisc64-smp/ppp-modules new file mode 100644 index 00000000000..b78085c3487 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/ppp-modules @@ -0,0 +1 @@ +#include "../hppa/ppp-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/sata-modules b/installer/hppa/modules/hppa-parisc64-smp/sata-modules new file mode 100644 index 00000000000..a2ebc29835d --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/sata-modules @@ -0,0 +1 @@ +#include "../hppa/sata-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/scsi-core-modules b/installer/hppa/modules/hppa-parisc64-smp/scsi-core-modules new file mode 100644 index 00000000000..ff84a7089d9 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/scsi-core-modules @@ -0,0 +1 @@ +#include "../hppa/scsi-core-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/scsi-modules b/installer/hppa/modules/hppa-parisc64-smp/scsi-modules new file mode 100644 index 00000000000..229e060a8f0 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/scsi-modules @@ -0,0 +1 @@ +#include "../hppa/scsi-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/serial-modules b/installer/hppa/modules/hppa-parisc64-smp/serial-modules new file mode 100644 index 00000000000..a84a550e85b --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/serial-modules @@ -0,0 +1 @@ +#include "../hppa/serial-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules b/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules new file mode 100644 index 00000000000..f0c79aa4ee9 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/squashfs-modules @@ -0,0 +1 @@ +#include "../hppa/squashfs-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/usb-modules b/installer/hppa/modules/hppa-parisc64-smp/usb-modules new file mode 100644 index 00000000000..df2abbbd9f3 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/usb-modules @@ -0,0 +1 @@ +#include "../hppa/usb-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules b/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules new file mode 100644 index 00000000000..1dd05036f22 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/usb-serial-modules @@ -0,0 +1 @@ +#include "../hppa/usb-serial-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/usb-storage-modules b/installer/hppa/modules/hppa-parisc64-smp/usb-storage-modules new file mode 100644 index 00000000000..5562ed4c879 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/usb-storage-modules @@ -0,0 +1 @@ +#include "../hppa/usb-storage-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/virtio-modules b/installer/hppa/modules/hppa-parisc64-smp/virtio-modules new file mode 100644 index 00000000000..2f4e67a8a6a --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/virtio-modules @@ -0,0 +1 @@ +#include "../hppa/virtio-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/xfs-modules b/installer/hppa/modules/hppa-parisc64-smp/xfs-modules new file mode 100644 index 00000000000..7960e0bb2a6 --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/xfs-modules @@ -0,0 +1 @@ +#include "../hppa/xfs-modules" diff --git a/installer/hppa/modules/hppa-parisc64-smp/zlib-modules b/installer/hppa/modules/hppa-parisc64-smp/zlib-modules new file mode 100644 index 00000000000..b3f829cf2dd --- /dev/null +++ b/installer/hppa/modules/hppa-parisc64-smp/zlib-modules @@ -0,0 +1 @@ +#include "../hppa/zlib-modules" diff --git a/installer/hppa/modules/hppa/ata-modules b/installer/hppa/modules/hppa/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/hppa/modules/hppa/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/btrfs-modules b/installer/hppa/modules/hppa/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/hppa/modules/hppa/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/cdrom-core-modules b/installer/hppa/modules/hppa/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/hppa/modules/hppa/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/crc-modules b/installer/hppa/modules/hppa/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/hppa/modules/hppa/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/crypto-dm-modules b/installer/hppa/modules/hppa/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/hppa/modules/hppa/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/crypto-modules b/installer/hppa/modules/hppa/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/hppa/modules/hppa/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/event-modules b/installer/hppa/modules/hppa/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/hppa/modules/hppa/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/ext4-modules b/installer/hppa/modules/hppa/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/hppa/modules/hppa/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/fat-modules b/installer/hppa/modules/hppa/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/hppa/modules/hppa/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/fuse-modules b/installer/hppa/modules/hppa/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/hppa/modules/hppa/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/input-modules b/installer/hppa/modules/hppa/input-modules new file mode 100644 index 00000000000..9d4cbf6fa7a --- /dev/null +++ b/installer/hppa/modules/hppa/input-modules @@ -0,0 +1,6 @@ +#include +hil_kbd ? +hilkbd ? +hp_sdc_mlc ? +hil_mlc ? +hp_sdc ? diff --git a/installer/hppa/modules/hppa/isofs-modules b/installer/hppa/modules/hppa/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/hppa/modules/hppa/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/jfs-modules b/installer/hppa/modules/hppa/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/hppa/modules/hppa/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/kernel-image b/installer/hppa/modules/hppa/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/hppa/modules/hppa/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/loop-modules b/installer/hppa/modules/hppa/loop-modules new file mode 100644 index 00000000000..16446771376 --- /dev/null +++ b/installer/hppa/modules/hppa/loop-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/md-modules b/installer/hppa/modules/hppa/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/hppa/modules/hppa/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/mouse-modules b/installer/hppa/modules/hppa/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/hppa/modules/hppa/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/multipath-modules b/installer/hppa/modules/hppa/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/hppa/modules/hppa/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/nbd-modules b/installer/hppa/modules/hppa/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/hppa/modules/hppa/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/nic-modules b/installer/hppa/modules/hppa/nic-modules new file mode 100644 index 00000000000..8a4b656c9ad --- /dev/null +++ b/installer/hppa/modules/hppa/nic-modules @@ -0,0 +1,4 @@ +lasi_82596 +tg3 +tulip +e1000 diff --git a/installer/hppa/modules/hppa/nic-shared-modules b/installer/hppa/modules/hppa/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/hppa/modules/hppa/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/nic-usb-modules b/installer/hppa/modules/hppa/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/hppa/modules/hppa/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/pata-modules b/installer/hppa/modules/hppa/pata-modules new file mode 100644 index 00000000000..8c4e514ae72 --- /dev/null +++ b/installer/hppa/modules/hppa/pata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/ppp-modules b/installer/hppa/modules/hppa/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/hppa/modules/hppa/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/sata-modules b/installer/hppa/modules/hppa/sata-modules new file mode 100644 index 00000000000..071cb860bbc --- /dev/null +++ b/installer/hppa/modules/hppa/sata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/scsi-core-modules b/installer/hppa/modules/hppa/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/hppa/modules/hppa/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/scsi-modules b/installer/hppa/modules/hppa/scsi-modules new file mode 100644 index 00000000000..43d9b0397d6 --- /dev/null +++ b/installer/hppa/modules/hppa/scsi-modules @@ -0,0 +1,19 @@ +aic79xx +aic7xxx +BusLogic ? +sym53c8xx +sym53c8xx_2 ? +53c700 +ch +lasi700 +osst +sg +st +zalon7xx +megaraid ? +megaraid_mbox ? +megaraid_mm ? +megaraid_sas ? +qlogicfas408 +mptbase +mptspi diff --git a/installer/hppa/modules/hppa/serial-modules b/installer/hppa/modules/hppa/serial-modules new file mode 100644 index 00000000000..6ab8b8c3551 --- /dev/null +++ b/installer/hppa/modules/hppa/serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/squashfs-modules b/installer/hppa/modules/hppa/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/hppa/modules/hppa/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/usb-modules b/installer/hppa/modules/hppa/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/hppa/modules/hppa/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/usb-serial-modules b/installer/hppa/modules/hppa/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/hppa/modules/hppa/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/usb-storage-modules b/installer/hppa/modules/hppa/usb-storage-modules new file mode 100644 index 00000000000..272d95e2e8b --- /dev/null +++ b/installer/hppa/modules/hppa/usb-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/hppa/modules/hppa/virtio-modules b/installer/hppa/modules/hppa/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/hppa/modules/hppa/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/xfs-modules b/installer/hppa/modules/hppa/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/hppa/modules/hppa/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/modules/hppa/zlib-modules b/installer/hppa/modules/hppa/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/hppa/modules/hppa/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/hppa/package-list b/installer/hppa/package-list new file mode 100644 index 00000000000..ef7512943f0 --- /dev/null +++ b/installer/hppa/package-list @@ -0,0 +1,17 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides_parisc64-smp: i2c-modules + +Package: usb-storage-modules +Depends: kernel-image, scsi-modules, usb-modules + +Package: pata-modules +Depends: kernel-image, ata-modules, scsi-core-modules + +Package: fb-modules +Depends: kernel-image +Priority: standard diff --git a/installer/i386/kernel-versions b/installer/i386/kernel-versions new file mode 100644 index 00000000000..c08de144429 --- /dev/null +++ b/installer/i386/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +i386 - 686 - - - +i386 - 686-pae - - - diff --git a/installer/i386/modules/i386/acpi-modules b/installer/i386/modules/i386/acpi-modules new file mode 100644 index 00000000000..307528fb17e --- /dev/null +++ b/installer/i386/modules/i386/acpi-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/ata-modules b/installer/i386/modules/i386/ata-modules new file mode 100644 index 00000000000..9409e7cde81 --- /dev/null +++ b/installer/i386/modules/i386/ata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/btrfs-modules b/installer/i386/modules/i386/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/i386/modules/i386/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/cdrom-core-modules b/installer/i386/modules/i386/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/i386/modules/i386/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/crc-modules b/installer/i386/modules/i386/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/i386/modules/i386/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/crypto-dm-modules b/installer/i386/modules/i386/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/i386/modules/i386/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/crypto-modules b/installer/i386/modules/i386/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/i386/modules/i386/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/efi-modules b/installer/i386/modules/i386/efi-modules new file mode 100644 index 00000000000..e1dc05e8f24 --- /dev/null +++ b/installer/i386/modules/i386/efi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/event-modules b/installer/i386/modules/i386/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/i386/modules/i386/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/ext4-modules b/installer/i386/modules/i386/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/i386/modules/i386/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/fat-modules b/installer/i386/modules/i386/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/i386/modules/i386/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/fb-modules b/installer/i386/modules/i386/fb-modules new file mode 100644 index 00000000000..318056451e6 --- /dev/null +++ b/installer/i386/modules/i386/fb-modules @@ -0,0 +1,5 @@ +fbcon ? +lxfb ? +vesafb ? +vga16fb +viafb diff --git a/installer/i386/modules/i386/firewire-core-modules b/installer/i386/modules/i386/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/i386/modules/i386/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/fuse-modules b/installer/i386/modules/i386/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/i386/modules/i386/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/hyperv-modules b/installer/i386/modules/i386/hyperv-modules new file mode 100644 index 00000000000..69fdd5d22a8 --- /dev/null +++ b/installer/i386/modules/i386/hyperv-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/i2c-modules b/installer/i386/modules/i386/i2c-modules new file mode 100644 index 00000000000..203a607e73c --- /dev/null +++ b/installer/i386/modules/i386/i2c-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/input-modules b/installer/i386/modules/i386/input-modules new file mode 100644 index 00000000000..cdba2e4a79c --- /dev/null +++ b/installer/i386/modules/i386/input-modules @@ -0,0 +1,5 @@ +#include +# Needed on some Geode LX boards - Alix2/3/6, Soekris net5501, Traverse GEOS +# so only built for 586 flavour +gpio_keys_polled ? +leds-gpio ? diff --git a/installer/i386/modules/i386/isofs-modules b/installer/i386/modules/i386/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/i386/modules/i386/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/jfs-modules b/installer/i386/modules/i386/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/i386/modules/i386/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/kernel-image b/installer/i386/modules/i386/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/i386/modules/i386/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/loop-modules b/installer/i386/modules/i386/loop-modules new file mode 100644 index 00000000000..16446771376 --- /dev/null +++ b/installer/i386/modules/i386/loop-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/md-modules b/installer/i386/modules/i386/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/i386/modules/i386/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/mmc-core-modules b/installer/i386/modules/i386/mmc-core-modules new file mode 100644 index 00000000000..7bf38465cf1 --- /dev/null +++ b/installer/i386/modules/i386/mmc-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/mmc-modules b/installer/i386/modules/i386/mmc-modules new file mode 100644 index 00000000000..dadfd5334d6 --- /dev/null +++ b/installer/i386/modules/i386/mmc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/mouse-modules b/installer/i386/modules/i386/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/i386/modules/i386/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/multipath-modules b/installer/i386/modules/i386/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/i386/modules/i386/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nbd-modules b/installer/i386/modules/i386/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/i386/modules/i386/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nic-modules b/installer/i386/modules/i386/nic-modules new file mode 100644 index 00000000000..2512e83950d --- /dev/null +++ b/installer/i386/modules/i386/nic-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nic-pcmcia-modules b/installer/i386/modules/i386/nic-pcmcia-modules new file mode 100644 index 00000000000..7a0702cd558 --- /dev/null +++ b/installer/i386/modules/i386/nic-pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nic-shared-modules b/installer/i386/modules/i386/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/i386/modules/i386/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nic-usb-modules b/installer/i386/modules/i386/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/i386/modules/i386/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/nic-wireless-modules b/installer/i386/modules/i386/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/i386/modules/i386/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/ntfs-modules b/installer/i386/modules/i386/ntfs-modules new file mode 100644 index 00000000000..ac1bc6a9601 --- /dev/null +++ b/installer/i386/modules/i386/ntfs-modules @@ -0,0 +1 @@ +ntfs diff --git a/installer/i386/modules/i386/pata-modules b/installer/i386/modules/i386/pata-modules new file mode 100644 index 00000000000..8c4e514ae72 --- /dev/null +++ b/installer/i386/modules/i386/pata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/pcmcia-modules b/installer/i386/modules/i386/pcmcia-modules new file mode 100644 index 00000000000..2bb5350fe14 --- /dev/null +++ b/installer/i386/modules/i386/pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/pcmcia-storage-modules b/installer/i386/modules/i386/pcmcia-storage-modules new file mode 100644 index 00000000000..f73ae5bb9b4 --- /dev/null +++ b/installer/i386/modules/i386/pcmcia-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/ppp-modules b/installer/i386/modules/i386/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/i386/modules/i386/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/sata-modules b/installer/i386/modules/i386/sata-modules new file mode 100644 index 00000000000..071cb860bbc --- /dev/null +++ b/installer/i386/modules/i386/sata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/scsi-core-modules b/installer/i386/modules/i386/scsi-core-modules new file mode 100644 index 00000000000..778a022fa75 --- /dev/null +++ b/installer/i386/modules/i386/scsi-core-modules @@ -0,0 +1,4 @@ +#include + +# Needed by hv_storvsc in hyperv-modules as well as scsi-modules +scsi_transport_fc diff --git a/installer/i386/modules/i386/scsi-modules b/installer/i386/modules/i386/scsi-modules new file mode 100644 index 00000000000..8909dfb7948 --- /dev/null +++ b/installer/i386/modules/i386/scsi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/serial-modules b/installer/i386/modules/i386/serial-modules new file mode 100644 index 00000000000..6ab8b8c3551 --- /dev/null +++ b/installer/i386/modules/i386/serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/sound-modules b/installer/i386/modules/i386/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/i386/modules/i386/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/speakup-modules b/installer/i386/modules/i386/speakup-modules new file mode 100644 index 00000000000..29592721a7a --- /dev/null +++ b/installer/i386/modules/i386/speakup-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/squashfs-modules b/installer/i386/modules/i386/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/i386/modules/i386/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/udf-modules b/installer/i386/modules/i386/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/i386/modules/i386/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/uinput-modules b/installer/i386/modules/i386/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/i386/modules/i386/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/usb-modules b/installer/i386/modules/i386/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/i386/modules/i386/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/usb-serial-modules b/installer/i386/modules/i386/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/i386/modules/i386/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/usb-storage-modules b/installer/i386/modules/i386/usb-storage-modules new file mode 100644 index 00000000000..272d95e2e8b --- /dev/null +++ b/installer/i386/modules/i386/usb-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/modules/i386/virtio-modules b/installer/i386/modules/i386/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/i386/modules/i386/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/i386/modules/i386/xfs-modules b/installer/i386/modules/i386/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/i386/modules/i386/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/i386/package-list b/installer/i386/package-list new file mode 100644 index 00000000000..b92d6959536 --- /dev/null +++ b/installer/i386/package-list @@ -0,0 +1,14 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: kernel-image +Provides: rtc-modules, zlib-modules + +Package: fat-modules +Priority: standard + +Package: fb-modules +Depends: kernel-image, i2c-modules diff --git a/installer/m68k/kernel-versions b/installer/m68k/kernel-versions new file mode 100644 index 00000000000..86e3e98f362 --- /dev/null +++ b/installer/m68k/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +m68k - m68k - - - diff --git a/installer/m68k/modules/m68k/btrfs-modules b/installer/m68k/modules/m68k/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/m68k/modules/m68k/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/cdrom-core-modules b/installer/m68k/modules/m68k/cdrom-core-modules new file mode 100644 index 00000000000..3ff69b48f4f --- /dev/null +++ b/installer/m68k/modules/m68k/cdrom-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/crc-modules b/installer/m68k/modules/m68k/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/m68k/modules/m68k/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/crypto-modules b/installer/m68k/modules/m68k/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/m68k/modules/m68k/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/ext4-modules b/installer/m68k/modules/m68k/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/m68k/modules/m68k/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/fat-modules b/installer/m68k/modules/m68k/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/m68k/modules/m68k/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/fuse-modules b/installer/m68k/modules/m68k/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/m68k/modules/m68k/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/isofs-modules b/installer/m68k/modules/m68k/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/m68k/modules/m68k/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/kernel-image b/installer/m68k/modules/m68k/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/m68k/modules/m68k/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/md-modules b/installer/m68k/modules/m68k/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/m68k/modules/m68k/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/nbd-modules b/installer/m68k/modules/m68k/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/m68k/modules/m68k/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/nic-shared-modules b/installer/m68k/modules/m68k/nic-shared-modules new file mode 100644 index 00000000000..4f74c1f9ea3 --- /dev/null +++ b/installer/m68k/modules/m68k/nic-shared-modules @@ -0,0 +1,19 @@ +#include +82596 ? +8390 ? +8390p ? +7990 ? +a2065 ? +apne ? +ariadne ? +ariadne2 ? +atarilance ? +dummy +hydra ? +mac89x0 ? +macsonic ? +zorro8390 ? +ne ? +atari_ethernec ? +smc91x ? +libphy diff --git a/installer/m68k/modules/m68k/ppp-modules b/installer/m68k/modules/m68k/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/m68k/modules/m68k/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/scsi-modules b/installer/m68k/modules/m68k/scsi-modules new file mode 100644 index 00000000000..3a411a3221c --- /dev/null +++ b/installer/m68k/modules/m68k/scsi-modules @@ -0,0 +1 @@ +sg diff --git a/installer/m68k/modules/m68k/squashfs-modules b/installer/m68k/modules/m68k/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/m68k/modules/m68k/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/udf-modules b/installer/m68k/modules/m68k/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/m68k/modules/m68k/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/modules/m68k/zlib-modules b/installer/m68k/modules/m68k/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/m68k/modules/m68k/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/m68k/package-list b/installer/m68k/package-list new file mode 100644 index 00000000000..6caf4cb0096 --- /dev/null +++ b/installer/m68k/package-list @@ -0,0 +1,6 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + diff --git a/installer/mips/kernel-versions b/installer/mips/kernel-versions new file mode 100644 index 00000000000..4bc557556d1 --- /dev/null +++ b/installer/mips/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +mips - 4kc-malta - y - +mips - octeon - y - diff --git a/installer/mips/modules/mips-4kc-malta/affs-modules b/installer/mips/modules/mips-4kc-malta/affs-modules new file mode 100644 index 00000000000..21d616a1cc9 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/affs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/ata-modules b/installer/mips/modules/mips-4kc-malta/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/btrfs-modules b/installer/mips/modules/mips-4kc-malta/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/cdrom-core-modules b/installer/mips/modules/mips-4kc-malta/cdrom-core-modules new file mode 100644 index 00000000000..3ff69b48f4f --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/cdrom-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/crc-modules b/installer/mips/modules/mips-4kc-malta/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/crypto-dm-modules b/installer/mips/modules/mips-4kc-malta/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/crypto-modules b/installer/mips/modules/mips-4kc-malta/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/event-modules b/installer/mips/modules/mips-4kc-malta/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/ext4-modules b/installer/mips/modules/mips-4kc-malta/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/fat-modules b/installer/mips/modules/mips-4kc-malta/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/fuse-modules b/installer/mips/modules/mips-4kc-malta/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/hfs-modules b/installer/mips/modules/mips-4kc-malta/hfs-modules new file mode 100644 index 00000000000..57d12f64921 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/hfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/i2c-modules b/installer/mips/modules/mips-4kc-malta/i2c-modules new file mode 100644 index 00000000000..203a607e73c --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/i2c-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/input-modules b/installer/mips/modules/mips-4kc-malta/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/isofs-modules b/installer/mips/modules/mips-4kc-malta/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/jfs-modules b/installer/mips/modules/mips-4kc-malta/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/kernel-image b/installer/mips/modules/mips-4kc-malta/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/loop-modules b/installer/mips/modules/mips-4kc-malta/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/md-modules b/installer/mips/modules/mips-4kc-malta/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/minix-modules b/installer/mips/modules/mips-4kc-malta/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/mmc-core-modules b/installer/mips/modules/mips-4kc-malta/mmc-core-modules new file mode 100644 index 00000000000..7bf38465cf1 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/mmc-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/mmc-modules b/installer/mips/modules/mips-4kc-malta/mmc-modules new file mode 100644 index 00000000000..dadfd5334d6 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/mmc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/mouse-modules b/installer/mips/modules/mips-4kc-malta/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/multipath-modules b/installer/mips/modules/mips-4kc-malta/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/nbd-modules b/installer/mips/modules/mips-4kc-malta/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/nic-modules b/installer/mips/modules/mips-4kc-malta/nic-modules new file mode 100644 index 00000000000..44a607e904c --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/nic-modules @@ -0,0 +1,4 @@ +#include +skfp - +starfire - +winbond-840 - diff --git a/installer/mips/modules/mips-4kc-malta/nic-shared-modules b/installer/mips/modules/mips-4kc-malta/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/nic-usb-modules b/installer/mips/modules/mips-4kc-malta/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/nic-wireless-modules b/installer/mips/modules/mips-4kc-malta/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/ntfs-modules b/installer/mips/modules/mips-4kc-malta/ntfs-modules new file mode 100644 index 00000000000..ac1bc6a9601 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/ntfs-modules @@ -0,0 +1 @@ +ntfs diff --git a/installer/mips/modules/mips-4kc-malta/pata-modules b/installer/mips/modules/mips-4kc-malta/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/ppp-modules b/installer/mips/modules/mips-4kc-malta/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/qnx4-modules b/installer/mips/modules/mips-4kc-malta/qnx4-modules new file mode 100644 index 00000000000..cd0c96d414d --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/qnx4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/sata-modules b/installer/mips/modules/mips-4kc-malta/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/scsi-core-modules b/installer/mips/modules/mips-4kc-malta/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/scsi-modules b/installer/mips/modules/mips-4kc-malta/scsi-modules new file mode 100644 index 00000000000..8909dfb7948 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/scsi-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/sound-modules b/installer/mips/modules/mips-4kc-malta/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/squashfs-modules b/installer/mips/modules/mips-4kc-malta/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/udf-modules b/installer/mips/modules/mips-4kc-malta/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/usb-modules b/installer/mips/modules/mips-4kc-malta/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/usb-serial-modules b/installer/mips/modules/mips-4kc-malta/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/usb-storage-modules b/installer/mips/modules/mips-4kc-malta/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/virtio-modules b/installer/mips/modules/mips-4kc-malta/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/xfs-modules b/installer/mips/modules/mips-4kc-malta/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-4kc-malta/zlib-modules b/installer/mips/modules/mips-4kc-malta/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/mips/modules/mips-4kc-malta/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/affs-modules b/installer/mips/modules/mips-octeon/affs-modules new file mode 100644 index 00000000000..21d616a1cc9 --- /dev/null +++ b/installer/mips/modules/mips-octeon/affs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/btrfs-modules b/installer/mips/modules/mips-octeon/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/mips/modules/mips-octeon/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/cdrom-core-modules b/installer/mips/modules/mips-octeon/cdrom-core-modules new file mode 100644 index 00000000000..3ff69b48f4f --- /dev/null +++ b/installer/mips/modules/mips-octeon/cdrom-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/crc-modules b/installer/mips/modules/mips-octeon/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/mips/modules/mips-octeon/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/crypto-dm-modules b/installer/mips/modules/mips-octeon/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/mips/modules/mips-octeon/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/crypto-modules b/installer/mips/modules/mips-octeon/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/mips/modules/mips-octeon/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/event-modules b/installer/mips/modules/mips-octeon/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/mips/modules/mips-octeon/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/ext4-modules b/installer/mips/modules/mips-octeon/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/mips/modules/mips-octeon/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/fat-modules b/installer/mips/modules/mips-octeon/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/mips/modules/mips-octeon/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/fuse-modules b/installer/mips/modules/mips-octeon/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/mips/modules/mips-octeon/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/hfs-modules b/installer/mips/modules/mips-octeon/hfs-modules new file mode 100644 index 00000000000..57d12f64921 --- /dev/null +++ b/installer/mips/modules/mips-octeon/hfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/input-modules b/installer/mips/modules/mips-octeon/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/mips/modules/mips-octeon/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/isofs-modules b/installer/mips/modules/mips-octeon/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/mips/modules/mips-octeon/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/jfs-modules b/installer/mips/modules/mips-octeon/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/mips/modules/mips-octeon/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/kernel-image b/installer/mips/modules/mips-octeon/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/mips/modules/mips-octeon/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/loop-modules b/installer/mips/modules/mips-octeon/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/mips/modules/mips-octeon/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/md-modules b/installer/mips/modules/mips-octeon/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/mips/modules/mips-octeon/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/minix-modules b/installer/mips/modules/mips-octeon/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/mips/modules/mips-octeon/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/multipath-modules b/installer/mips/modules/mips-octeon/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/mips/modules/mips-octeon/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/nbd-modules b/installer/mips/modules/mips-octeon/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/mips/modules/mips-octeon/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/nic-modules b/installer/mips/modules/mips-octeon/nic-modules new file mode 100644 index 00000000000..3a2814f9ed0 --- /dev/null +++ b/installer/mips/modules/mips-octeon/nic-modules @@ -0,0 +1,15 @@ +#include +8139cp - +8139too - +dmfe - +e100 - +epic100 - +fealnx - +natsemi - +ne2k-pci - +skfp - +sundance - +starfire - +tulip - +typhoon - +winbond-840 - diff --git a/installer/mips/modules/mips-octeon/nic-shared-modules b/installer/mips/modules/mips-octeon/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/mips/modules/mips-octeon/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/nic-usb-modules b/installer/mips/modules/mips-octeon/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/mips/modules/mips-octeon/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/nic-wireless-modules b/installer/mips/modules/mips-octeon/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/mips/modules/mips-octeon/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/ntfs-modules b/installer/mips/modules/mips-octeon/ntfs-modules new file mode 100644 index 00000000000..ac1bc6a9601 --- /dev/null +++ b/installer/mips/modules/mips-octeon/ntfs-modules @@ -0,0 +1 @@ +ntfs diff --git a/installer/mips/modules/mips-octeon/pata-modules b/installer/mips/modules/mips-octeon/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/mips/modules/mips-octeon/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/ppp-modules b/installer/mips/modules/mips-octeon/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/mips/modules/mips-octeon/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/qnx4-modules b/installer/mips/modules/mips-octeon/qnx4-modules new file mode 100644 index 00000000000..cd0c96d414d --- /dev/null +++ b/installer/mips/modules/mips-octeon/qnx4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/rtc-modules b/installer/mips/modules/mips-octeon/rtc-modules new file mode 100644 index 00000000000..e20e792f206 --- /dev/null +++ b/installer/mips/modules/mips-octeon/rtc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/sata-modules b/installer/mips/modules/mips-octeon/sata-modules new file mode 100644 index 00000000000..87cdd4188c9 --- /dev/null +++ b/installer/mips/modules/mips-octeon/sata-modules @@ -0,0 +1,3 @@ +#include +ahci_platform +ahci_octeon diff --git a/installer/mips/modules/mips-octeon/scsi-core-modules b/installer/mips/modules/mips-octeon/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/mips/modules/mips-octeon/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/scsi-modules b/installer/mips/modules/mips-octeon/scsi-modules new file mode 100644 index 00000000000..44a9049bd1d --- /dev/null +++ b/installer/mips/modules/mips-octeon/scsi-modules @@ -0,0 +1,6 @@ +#include +DAC960 - +cciss - +dmx3191d - +ips - +sym53c8xx - diff --git a/installer/mips/modules/mips-octeon/sound-modules b/installer/mips/modules/mips-octeon/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/mips/modules/mips-octeon/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/squashfs-modules b/installer/mips/modules/mips-octeon/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/mips/modules/mips-octeon/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/udf-modules b/installer/mips/modules/mips-octeon/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/mips/modules/mips-octeon/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/usb-modules b/installer/mips/modules/mips-octeon/usb-modules new file mode 100644 index 00000000000..6c3464a6c30 --- /dev/null +++ b/installer/mips/modules/mips-octeon/usb-modules @@ -0,0 +1,2 @@ +#include +octeon-hcd diff --git a/installer/mips/modules/mips-octeon/usb-serial-modules b/installer/mips/modules/mips-octeon/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/mips/modules/mips-octeon/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/usb-storage-modules b/installer/mips/modules/mips-octeon/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/mips/modules/mips-octeon/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/virtio-modules b/installer/mips/modules/mips-octeon/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/mips/modules/mips-octeon/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/xfs-modules b/installer/mips/modules/mips-octeon/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/mips/modules/mips-octeon/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips-octeon/zlib-modules b/installer/mips/modules/mips-octeon/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/mips/modules/mips-octeon/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/btrfs-modules b/installer/mips/modules/mips/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/mips/modules/mips/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/crc-modules b/installer/mips/modules/mips/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/mips/modules/mips/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/crypto-dm-modules b/installer/mips/modules/mips/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/mips/modules/mips/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/crypto-modules b/installer/mips/modules/mips/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/mips/modules/mips/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/ext4-modules b/installer/mips/modules/mips/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/mips/modules/mips/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/fuse-modules b/installer/mips/modules/mips/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/mips/modules/mips/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/isofs-modules b/installer/mips/modules/mips/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/mips/modules/mips/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/jfs-modules b/installer/mips/modules/mips/jfs-modules new file mode 100644 index 00000000000..925a43a9e2a --- /dev/null +++ b/installer/mips/modules/mips/jfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/mips/modules/mips/kernel-image b/installer/mips/modules/mips/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/mips/modules/mips/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/loop-modules b/installer/mips/modules/mips/loop-modules new file mode 100644 index 00000000000..16446771376 --- /dev/null +++ b/installer/mips/modules/mips/loop-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/mips/modules/mips/md-modules b/installer/mips/modules/mips/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/mips/modules/mips/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/mips/modules/mips/multipath-modules b/installer/mips/modules/mips/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/mips/modules/mips/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/nbd-modules b/installer/mips/modules/mips/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/mips/modules/mips/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/nic-shared-modules b/installer/mips/modules/mips/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/mips/modules/mips/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/squashfs-modules b/installer/mips/modules/mips/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/mips/modules/mips/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/udf-modules b/installer/mips/modules/mips/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/mips/modules/mips/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/modules/mips/xfs-modules b/installer/mips/modules/mips/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/mips/modules/mips/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/mips/modules/mips/zlib-modules b/installer/mips/modules/mips/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/mips/modules/mips/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mips/package-list b/installer/mips/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mips/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/mips64/kernel-versions b/installer/mips64/kernel-versions new file mode 100644 index 00000000000..24a6c52affe --- /dev/null +++ b/installer/mips64/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +mips64 - 5kc-malta - y - +mips64 - octeon - y - diff --git a/installer/mips64/modules/mips64 b/installer/mips64/modules/mips64 new file mode 120000 index 00000000000..d3bf739f6b7 --- /dev/null +++ b/installer/mips64/modules/mips64 @@ -0,0 +1 @@ +../../mips/modules/mips \ No newline at end of file diff --git a/installer/mips64/modules/mips64-5kc-malta b/installer/mips64/modules/mips64-5kc-malta new file mode 120000 index 00000000000..84b512ec477 --- /dev/null +++ b/installer/mips64/modules/mips64-5kc-malta @@ -0,0 +1 @@ +../../mips/modules/mips-4kc-malta \ No newline at end of file diff --git a/installer/mips64/modules/mips64-octeon b/installer/mips64/modules/mips64-octeon new file mode 120000 index 00000000000..da584c69bbc --- /dev/null +++ b/installer/mips64/modules/mips64-octeon @@ -0,0 +1 @@ +../../mips/modules/mips-octeon \ No newline at end of file diff --git a/installer/mips64/package-list b/installer/mips64/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mips64/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/mips64el/kernel-versions b/installer/mips64el/kernel-versions new file mode 100644 index 00000000000..7135f748041 --- /dev/null +++ b/installer/mips64el/kernel-versions @@ -0,0 +1,4 @@ +# arch version flavour installedname suffix build-depends +mips64el - 5kc-malta - y - +mips64el - loongson-3 - y - +mips64el - octeon - y - diff --git a/installer/mips64el/modules/mips64el-5kc-malta b/installer/mips64el/modules/mips64el-5kc-malta new file mode 120000 index 00000000000..84b512ec477 --- /dev/null +++ b/installer/mips64el/modules/mips64el-5kc-malta @@ -0,0 +1 @@ +../../mips/modules/mips-4kc-malta \ No newline at end of file diff --git a/installer/mips64el/modules/mips64el-loongson-3 b/installer/mips64el/modules/mips64el-loongson-3 new file mode 120000 index 00000000000..7f6e9670c78 --- /dev/null +++ b/installer/mips64el/modules/mips64el-loongson-3 @@ -0,0 +1 @@ +../../mipsel/modules/mipsel-loongson-3 \ No newline at end of file diff --git a/installer/mips64el/modules/mips64el-octeon b/installer/mips64el/modules/mips64el-octeon new file mode 120000 index 00000000000..da584c69bbc --- /dev/null +++ b/installer/mips64el/modules/mips64el-octeon @@ -0,0 +1 @@ +../../mips/modules/mips-octeon \ No newline at end of file diff --git a/installer/mips64el/package-list b/installer/mips64el/package-list new file mode 100644 index 00000000000..621363abeb8 --- /dev/null +++ b/installer/mips64el/package-list @@ -0,0 +1,8 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules +Provides_loongson-3: i2c-modules, rtc-modules diff --git a/installer/mips64r6/kernel-versions b/installer/mips64r6/kernel-versions new file mode 100644 index 00000000000..a4e378707e0 --- /dev/null +++ b/installer/mips64r6/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +mips64r6 - mips64r6 - y - diff --git a/installer/mips64r6/modules/mips64r6 b/installer/mips64r6/modules/mips64r6 new file mode 120000 index 00000000000..d3bf739f6b7 --- /dev/null +++ b/installer/mips64r6/modules/mips64r6 @@ -0,0 +1 @@ +../../mips/modules/mips \ No newline at end of file diff --git a/installer/mips64r6/package-list b/installer/mips64r6/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mips64r6/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/mips64r6el/kernel-versions b/installer/mips64r6el/kernel-versions new file mode 100644 index 00000000000..426e2badb42 --- /dev/null +++ b/installer/mips64r6el/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +mips64r6el - mips64r6 - y - diff --git a/installer/mips64r6el/modules/mips64r6 b/installer/mips64r6el/modules/mips64r6 new file mode 120000 index 00000000000..d3bf739f6b7 --- /dev/null +++ b/installer/mips64r6el/modules/mips64r6 @@ -0,0 +1 @@ +../../mips/modules/mips \ No newline at end of file diff --git a/installer/mips64r6el/package-list b/installer/mips64r6el/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mips64r6el/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/mipsel/kernel-versions b/installer/mipsel/kernel-versions new file mode 100644 index 00000000000..dcf35104bbd --- /dev/null +++ b/installer/mipsel/kernel-versions @@ -0,0 +1,4 @@ +# arch version flavour installedname suffix build-depends +mipsel - 4kc-malta - y - +mipsel - loongson-3 - y - +mipsel - octeon - y - diff --git a/installer/mipsel/modules/mipsel-4kc-malta b/installer/mipsel/modules/mipsel-4kc-malta new file mode 120000 index 00000000000..84b512ec477 --- /dev/null +++ b/installer/mipsel/modules/mipsel-4kc-malta @@ -0,0 +1 @@ +../../mips/modules/mips-4kc-malta \ No newline at end of file diff --git a/installer/mipsel/modules/mipsel-loongson-3/affs-modules b/installer/mipsel/modules/mipsel-loongson-3/affs-modules new file mode 100644 index 00000000000..21d616a1cc9 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/affs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/ata-modules b/installer/mipsel/modules/mipsel-loongson-3/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/btrfs-modules b/installer/mipsel/modules/mipsel-loongson-3/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/cdrom-core-modules b/installer/mipsel/modules/mipsel-loongson-3/cdrom-core-modules new file mode 100644 index 00000000000..3ff69b48f4f --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/cdrom-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/crc-modules b/installer/mipsel/modules/mipsel-loongson-3/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/crypto-dm-modules b/installer/mipsel/modules/mipsel-loongson-3/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/crypto-modules b/installer/mipsel/modules/mipsel-loongson-3/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/event-modules b/installer/mipsel/modules/mipsel-loongson-3/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/ext4-modules b/installer/mipsel/modules/mipsel-loongson-3/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/fat-modules b/installer/mipsel/modules/mipsel-loongson-3/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/fb-modules b/installer/mipsel/modules/mipsel-loongson-3/fb-modules new file mode 100644 index 00000000000..553c79c743a --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/fb-modules @@ -0,0 +1 @@ +radeon diff --git a/installer/mipsel/modules/mipsel-loongson-3/firewire-core-modules b/installer/mipsel/modules/mipsel-loongson-3/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/fuse-modules b/installer/mipsel/modules/mipsel-loongson-3/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/hfs-modules b/installer/mipsel/modules/mipsel-loongson-3/hfs-modules new file mode 100644 index 00000000000..57d12f64921 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/hfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/input-modules b/installer/mipsel/modules/mipsel-loongson-3/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/isofs-modules b/installer/mipsel/modules/mipsel-loongson-3/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/jfs-modules b/installer/mipsel/modules/mipsel-loongson-3/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/kernel-image b/installer/mipsel/modules/mipsel-loongson-3/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/loop-modules b/installer/mipsel/modules/mipsel-loongson-3/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/md-modules b/installer/mipsel/modules/mipsel-loongson-3/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/minix-modules b/installer/mipsel/modules/mipsel-loongson-3/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/multipath-modules b/installer/mipsel/modules/mipsel-loongson-3/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/nbd-modules b/installer/mipsel/modules/mipsel-loongson-3/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/nfs-modules b/installer/mipsel/modules/mipsel-loongson-3/nfs-modules new file mode 100644 index 00000000000..946fb8e4424 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/nic-modules b/installer/mipsel/modules/mipsel-loongson-3/nic-modules new file mode 100644 index 00000000000..a2feefcfc5d --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nic-modules @@ -0,0 +1,11 @@ +#include +dmfe - +epic100 - +fealnx - +natsemi - +skfp - +starfire - +sundance - +tulip - +typhoon - +winbond-840 - diff --git a/installer/mipsel/modules/mipsel-loongson-3/nic-shared-modules b/installer/mipsel/modules/mipsel-loongson-3/nic-shared-modules new file mode 100644 index 00000000000..cc84b14dcd1 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nic-shared-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/nic-usb-modules b/installer/mipsel/modules/mipsel-loongson-3/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/nic-wireless-modules b/installer/mipsel/modules/mipsel-loongson-3/nic-wireless-modules new file mode 100644 index 00000000000..53fd18d7f4c --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/nic-wireless-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/ntfs-modules b/installer/mipsel/modules/mipsel-loongson-3/ntfs-modules new file mode 100644 index 00000000000..ac1bc6a9601 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/ntfs-modules @@ -0,0 +1 @@ +ntfs diff --git a/installer/mipsel/modules/mipsel-loongson-3/pata-modules b/installer/mipsel/modules/mipsel-loongson-3/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/ppp-modules b/installer/mipsel/modules/mipsel-loongson-3/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/qnx4-modules b/installer/mipsel/modules/mipsel-loongson-3/qnx4-modules new file mode 100644 index 00000000000..cd0c96d414d --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/qnx4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/sata-modules b/installer/mipsel/modules/mipsel-loongson-3/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/scsi-core-modules b/installer/mipsel/modules/mipsel-loongson-3/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/scsi-modules b/installer/mipsel/modules/mipsel-loongson-3/scsi-modules new file mode 100644 index 00000000000..44a9049bd1d --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/scsi-modules @@ -0,0 +1,6 @@ +#include +DAC960 - +cciss - +dmx3191d - +ips - +sym53c8xx - diff --git a/installer/mipsel/modules/mipsel-loongson-3/sound-modules b/installer/mipsel/modules/mipsel-loongson-3/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/speakup-modules b/installer/mipsel/modules/mipsel-loongson-3/speakup-modules new file mode 100644 index 00000000000..29592721a7a --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/speakup-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/squashfs-modules b/installer/mipsel/modules/mipsel-loongson-3/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/udf-modules b/installer/mipsel/modules/mipsel-loongson-3/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/usb-modules b/installer/mipsel/modules/mipsel-loongson-3/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/usb-serial-modules b/installer/mipsel/modules/mipsel-loongson-3/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/usb-storage-modules b/installer/mipsel/modules/mipsel-loongson-3/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/virtio-modules b/installer/mipsel/modules/mipsel-loongson-3/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/xfs-modules b/installer/mipsel/modules/mipsel-loongson-3/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-loongson-3/zlib-modules b/installer/mipsel/modules/mipsel-loongson-3/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/mipsel/modules/mipsel-loongson-3/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/mipsel/modules/mipsel-octeon b/installer/mipsel/modules/mipsel-octeon new file mode 120000 index 00000000000..da584c69bbc --- /dev/null +++ b/installer/mipsel/modules/mipsel-octeon @@ -0,0 +1 @@ +../../mips/modules/mips-octeon \ No newline at end of file diff --git a/installer/mipsel/package-list b/installer/mipsel/package-list new file mode 100644 index 00000000000..621363abeb8 --- /dev/null +++ b/installer/mipsel/package-list @@ -0,0 +1,8 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules +Provides_loongson-3: i2c-modules, rtc-modules diff --git a/installer/mipsr6/kernel-versions b/installer/mipsr6/kernel-versions new file mode 100644 index 00000000000..db5d2d2ca07 --- /dev/null +++ b/installer/mipsr6/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +mipsr6 - mips32r6 - y - diff --git a/installer/mipsr6/modules/mips32r6 b/installer/mipsr6/modules/mips32r6 new file mode 120000 index 00000000000..d3bf739f6b7 --- /dev/null +++ b/installer/mipsr6/modules/mips32r6 @@ -0,0 +1 @@ +../../mips/modules/mips \ No newline at end of file diff --git a/installer/mipsr6/package-list b/installer/mipsr6/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mipsr6/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/mipsr6el/kernel-versions b/installer/mipsr6el/kernel-versions new file mode 100644 index 00000000000..330e1ed7be7 --- /dev/null +++ b/installer/mipsr6el/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +mipsr6el - mips32r6 - y - diff --git a/installer/mipsr6el/modules/mips32r6 b/installer/mipsr6el/modules/mips32r6 new file mode 120000 index 00000000000..d3bf739f6b7 --- /dev/null +++ b/installer/mipsr6el/modules/mips32r6 @@ -0,0 +1 @@ +../../mips/modules/mips \ No newline at end of file diff --git a/installer/mipsr6el/package-list b/installer/mipsr6el/package-list new file mode 100644 index 00000000000..b7141bb2020 --- /dev/null +++ b/installer/mipsr6el/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules diff --git a/installer/modules/acpi-modules b/installer/modules/acpi-modules new file mode 100644 index 00000000000..d4723a10b54 --- /dev/null +++ b/installer/modules/acpi-modules @@ -0,0 +1,2 @@ +fan +thermal diff --git a/installer/modules/affs-modules b/installer/modules/affs-modules new file mode 100644 index 00000000000..ac282591109 --- /dev/null +++ b/installer/modules/affs-modules @@ -0,0 +1 @@ +affs diff --git a/installer/modules/ata-modules b/installer/modules/ata-modules new file mode 100644 index 00000000000..6ca33ce0a15 --- /dev/null +++ b/installer/modules/ata-modules @@ -0,0 +1,2 @@ +libata +ata_generic diff --git a/installer/modules/btrfs-modules b/installer/modules/btrfs-modules new file mode 100644 index 00000000000..00531f65421 --- /dev/null +++ b/installer/modules/btrfs-modules @@ -0,0 +1 @@ +btrfs diff --git a/installer/modules/cdrom-core-modules b/installer/modules/cdrom-core-modules new file mode 100644 index 00000000000..62e5e83a3be --- /dev/null +++ b/installer/modules/cdrom-core-modules @@ -0,0 +1,2 @@ +cdrom ? +sr_mod ? diff --git a/installer/modules/crc-modules b/installer/modules/crc-modules new file mode 100644 index 00000000000..5654d805224 --- /dev/null +++ b/installer/modules/crc-modules @@ -0,0 +1,5 @@ +crc-ccitt +libcrc32c +crc32c_generic +crc-itu-t +crc16 diff --git a/installer/modules/crypto-dm-modules b/installer/modules/crypto-dm-modules new file mode 100644 index 00000000000..189131fc1cf --- /dev/null +++ b/installer/modules/crypto-dm-modules @@ -0,0 +1 @@ +dm-crypt diff --git a/installer/modules/crypto-modules b/installer/modules/crypto-modules new file mode 100644 index 00000000000..40ee863b61f --- /dev/null +++ b/installer/modules/crypto-modules @@ -0,0 +1,9 @@ +aes_generic +blowfish_generic +twofish_generic +serpent_generic +sha256_generic +cbc ? +ccm +ctr +xts diff --git a/installer/modules/efi-modules b/installer/modules/efi-modules new file mode 100644 index 00000000000..91732720b6e --- /dev/null +++ b/installer/modules/efi-modules @@ -0,0 +1 @@ +efivars diff --git a/installer/modules/event-modules b/installer/modules/event-modules new file mode 100644 index 00000000000..97a5e58aa9c --- /dev/null +++ b/installer/modules/event-modules @@ -0,0 +1 @@ +evdev diff --git a/installer/modules/ext4-modules b/installer/modules/ext4-modules new file mode 100644 index 00000000000..610034258b6 --- /dev/null +++ b/installer/modules/ext4-modules @@ -0,0 +1,2 @@ +ext4 +jbd2 diff --git a/installer/modules/fat-modules b/installer/modules/fat-modules new file mode 100644 index 00000000000..0498cf834d4 --- /dev/null +++ b/installer/modules/fat-modules @@ -0,0 +1,6 @@ +fat ? +vfat +# the default codepage for fat (as of 2.6.8) +nls_cp437 ? +# the default i/o character set for fat (as of 4.7.2-1) +nls_ascii ? diff --git a/installer/modules/firewire-core-modules b/installer/modules/firewire-core-modules new file mode 100644 index 00000000000..bcc31d50aa4 --- /dev/null +++ b/installer/modules/firewire-core-modules @@ -0,0 +1,3 @@ +firewire-core +firewire-ohci +firewire-sbp2 diff --git a/installer/modules/fuse-modules b/installer/modules/fuse-modules new file mode 100644 index 00000000000..a517c488f34 --- /dev/null +++ b/installer/modules/fuse-modules @@ -0,0 +1 @@ +fuse diff --git a/installer/modules/hfs-modules b/installer/modules/hfs-modules new file mode 100644 index 00000000000..4a311558e6f --- /dev/null +++ b/installer/modules/hfs-modules @@ -0,0 +1,2 @@ +hfs +hfsplus diff --git a/installer/modules/hyperv-modules b/installer/modules/hyperv-modules new file mode 100644 index 00000000000..4c7d2cdc4f9 --- /dev/null +++ b/installer/modules/hyperv-modules @@ -0,0 +1,7 @@ +# All Hyper-V paravirtual drivers +hid-hyperv +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hyperv-keyboard diff --git a/installer/modules/i2c-modules b/installer/modules/i2c-modules new file mode 100644 index 00000000000..0c4999fa74e --- /dev/null +++ b/installer/modules/i2c-modules @@ -0,0 +1,3 @@ +i2c-core +i2c-algo-bit +i2c-designware-platform ? diff --git a/installer/modules/input-modules b/installer/modules/input-modules new file mode 100644 index 00000000000..3245d16eafc --- /dev/null +++ b/installer/modules/input-modules @@ -0,0 +1,39 @@ +# Include HID drivers by default +drivers/hid/** + +# Exclude hid-hyperv, packaged in hyperv-modules +hid-hyperv - + +# Exclude drivers for anything but keyboard and mouse/trackball/touchpad +drivers/hid/hid-*ff - +hid-dr - +hid-elecom - +hid-gyration - +hid-icade - +hid-lcpower - +hid-ntrig - +hid-petalynx - +hid-picolcd - +hid-pl - +hid-prodikeys - +hid-ps3remote - +hid-quanta - +drivers/hid/hid-roccat-ko* - +hid-roccat-pyra - +hid-saitek - +hid-sensor-hub - +hid-sony - +hid-tivo - +hid-twinhan - +hid-uclogic - +hid-wacom - +hid-waltop - +hid-wiimote - +hid-zydacron - +wacom - + +# Miscellaneous input drivers +synaptics_usb ? +wistron_btns ? +gpio_keys ? +soc_button_array ? diff --git a/installer/modules/ipv6-modules b/installer/modules/ipv6-modules new file mode 100644 index 00000000000..13ac34b44dd --- /dev/null +++ b/installer/modules/ipv6-modules @@ -0,0 +1 @@ +ipv6 diff --git a/installer/modules/isofs-modules b/installer/modules/isofs-modules new file mode 100644 index 00000000000..0f41779b756 --- /dev/null +++ b/installer/modules/isofs-modules @@ -0,0 +1 @@ +isofs diff --git a/installer/modules/jffs2-modules b/installer/modules/jffs2-modules new file mode 100644 index 00000000000..19f4e109485 --- /dev/null +++ b/installer/modules/jffs2-modules @@ -0,0 +1 @@ +jffs2 diff --git a/installer/modules/jfs-modules b/installer/modules/jfs-modules new file mode 100644 index 00000000000..aa604c46849 --- /dev/null +++ b/installer/modules/jfs-modules @@ -0,0 +1 @@ +jfs diff --git a/installer/modules/kernel-image b/installer/modules/kernel-image new file mode 100644 index 00000000000..094c46af4b7 --- /dev/null +++ b/installer/modules/kernel-image @@ -0,0 +1,6 @@ +bitrev ? +eeprom_93cx6 ? +led-class ? +mbcache +# Default I/O charset for most filesystems that do character conversion +nls_utf8 diff --git a/installer/modules/leds-modules b/installer/modules/leds-modules new file mode 100644 index 00000000000..fef2e5303cc --- /dev/null +++ b/installer/modules/leds-modules @@ -0,0 +1 @@ +leds-gpio diff --git a/installer/modules/loop-modules b/installer/modules/loop-modules new file mode 100644 index 00000000000..1ef2ddf24a4 --- /dev/null +++ b/installer/modules/loop-modules @@ -0,0 +1 @@ +loop diff --git a/installer/modules/lzo-modules b/installer/modules/lzo-modules new file mode 100644 index 00000000000..d1a158350f4 --- /dev/null +++ b/installer/modules/lzo-modules @@ -0,0 +1 @@ +lzo_compress diff --git a/installer/modules/md-modules b/installer/modules/md-modules new file mode 100644 index 00000000000..e736f72990a --- /dev/null +++ b/installer/modules/md-modules @@ -0,0 +1,14 @@ +linear +md-mod +dm-mod +multipath +raid0 +raid1 +raid456 +raid10 +dm-mirror +dm-snapshot + +# RAID-related libraries, also used by btrfs +raid6_pq +xor diff --git a/installer/modules/minix-modules b/installer/modules/minix-modules new file mode 100644 index 00000000000..aa6ca5db63d --- /dev/null +++ b/installer/modules/minix-modules @@ -0,0 +1 @@ +minix diff --git a/installer/modules/mmc-core-modules b/installer/modules/mmc-core-modules new file mode 100644 index 00000000000..67128eac000 --- /dev/null +++ b/installer/modules/mmc-core-modules @@ -0,0 +1 @@ +mmc_core diff --git a/installer/modules/mmc-modules b/installer/modules/mmc-modules new file mode 100644 index 00000000000..1375eb69e74 --- /dev/null +++ b/installer/modules/mmc-modules @@ -0,0 +1,5 @@ +mmc_block +drivers/mmc/host/** + +# Adds a dependency on pcmcia-modules +sdricoh_cs - diff --git a/installer/modules/mouse-modules b/installer/modules/mouse-modules new file mode 100644 index 00000000000..8d65ba4d894 --- /dev/null +++ b/installer/modules/mouse-modules @@ -0,0 +1 @@ +psmouse diff --git a/installer/modules/mtd-modules b/installer/modules/mtd-modules new file mode 100644 index 00000000000..637116fa493 --- /dev/null +++ b/installer/modules/mtd-modules @@ -0,0 +1,2 @@ +mtd +mtdblock diff --git a/installer/modules/multipath-modules b/installer/modules/multipath-modules new file mode 100644 index 00000000000..3b96ab99cc4 --- /dev/null +++ b/installer/modules/multipath-modules @@ -0,0 +1,3 @@ +dm-multipath +dm-round-robin +dm-service-time diff --git a/installer/modules/nbd-modules b/installer/modules/nbd-modules new file mode 100644 index 00000000000..cb3ca605f1e --- /dev/null +++ b/installer/modules/nbd-modules @@ -0,0 +1 @@ +nbd diff --git a/installer/modules/nfs-modules b/installer/modules/nfs-modules new file mode 100644 index 00000000000..a5bfd2ce6d3 --- /dev/null +++ b/installer/modules/nfs-modules @@ -0,0 +1,3 @@ +nfs +lockd +sunrpc diff --git a/installer/modules/nic-modules b/installer/modules/nic-modules new file mode 100644 index 00000000000..0c4b2fb0ca6 --- /dev/null +++ b/installer/modules/nic-modules @@ -0,0 +1,23 @@ +# Include Ethernet switch, controller and PHY drivers by default +drivers/net/dsa/** ? +drivers/net/ethernet/** +drivers/net/phy/* + +# Include paravirtual network drivers with minimal dependencies +vmxnet3 ? +xen-netfront ? + +# Include VLAN driver +8021q + +# Exclude drivers packaged in nic-pcmcia-modules +drivers/net/**_cs - +b44 - +xircom_cb - + +# Exclude libraries packaged in nic-{common,shared} modules +8390 - +libphy - + +# Exclude iSCSI drivers packaged in scsi-modules +cnic - diff --git a/installer/modules/nic-pcmcia-modules b/installer/modules/nic-pcmcia-modules new file mode 100644 index 00000000000..31c360d5a60 --- /dev/null +++ b/installer/modules/nic-pcmcia-modules @@ -0,0 +1,10 @@ +# Include PCMCIA Ethernet and wireless drivers by default +drivers/net/ethernet/**_cs +drivers/net/wireless/**_cs +b44 ? +hostap_plx ? +xircom_cb + +# Exclude drivers packaged in nic-wireless-modules +libertas_cs - +spectrum_cs - diff --git a/installer/modules/nic-shared-modules b/installer/modules/nic-shared-modules new file mode 100644 index 00000000000..c672dfbc134 --- /dev/null +++ b/installer/modules/nic-shared-modules @@ -0,0 +1,5 @@ +8390 ? +libphy ? +mii ? +pps_core ? +ptp ? diff --git a/installer/modules/nic-usb-modules b/installer/modules/nic-usb-modules new file mode 100644 index 00000000000..332e0151804 --- /dev/null +++ b/installer/modules/nic-usb-modules @@ -0,0 +1,15 @@ +# Include USB wired drivers by default +drivers/net/usb/* + +# Include rndis_wlan, which depends on rndis_host +rndis_wlan + +# Exclude wireless modem drivers which need extra configuration +cdc_mbim - +cdc-phonet - +hso - +huawei_cdc_ncm - +kalmia - +lg-vl600 - +qmi_wwan - +sierra_net - diff --git a/installer/modules/nic-wireless-modules b/installer/modules/nic-wireless-modules new file mode 100644 index 00000000000..104a3a1130d --- /dev/null +++ b/installer/modules/nic-wireless-modules @@ -0,0 +1,31 @@ +# Include wireless drivers by default +drivers/net/wireless/** + +# Include staging wireless drivers +prism2_usb ? +drivers/staging/rtl8** ? +vt6656_stage ? + +# Exclude drivers packaged in nic-pcmcia-modules +drivers/net/wireless/**_cs - +airo - +hostap_plx - + +# Don't separate these from their driver families +libertas_cs ? +spectrum_cs ? + +# Exclude drivers packaged in nic-usb-modules +rndis_wlan - + +# Exclude debug driver +mac80211_hwsim - + +# lib80211 encryption algorithms +lib80211_crypt_wep ? +lib80211_crypt_ccmp ? +lib80211_crypt_tkip ? + +# Crypto modules needed for ieee80211 WEP support +ecb ? +arc4 ? diff --git a/installer/modules/pata-modules b/installer/modules/pata-modules new file mode 100644 index 00000000000..1d963a18eda --- /dev/null +++ b/installer/modules/pata-modules @@ -0,0 +1,9 @@ +# Include PATA drivers by default +drivers/ata/pata_* + +# Exclude pata_sis, which goes in sata-modules as a dependency of sata_sis +pata_sis - + +# Exclude drivers packaged in pcmcia-storage-modules +pata_ninja32 - +pata_pcmcia - diff --git a/installer/modules/pcmcia-modules b/installer/modules/pcmcia-modules new file mode 100644 index 00000000000..ab5b4b234ce --- /dev/null +++ b/installer/modules/pcmcia-modules @@ -0,0 +1,8 @@ +pcmcia + +i82092 +i82365 ? +pcmcia_core +tcic ? +yenta_socket +pd6729 ? diff --git a/installer/modules/pcmcia-storage-modules b/installer/modules/pcmcia-storage-modules new file mode 100644 index 00000000000..b6b1721644c --- /dev/null +++ b/installer/modules/pcmcia-storage-modules @@ -0,0 +1,2 @@ +pata_ninja32 ? +pata_pcmcia ? diff --git a/installer/modules/ppp-modules b/installer/modules/ppp-modules new file mode 100644 index 00000000000..0dd77f0b592 --- /dev/null +++ b/installer/modules/ppp-modules @@ -0,0 +1,5 @@ +ppp_async ? +ppp_deflate +ppp_synctty ? +pppoe +pppox diff --git a/installer/modules/qnx4-modules b/installer/modules/qnx4-modules new file mode 100644 index 00000000000..05d4adc6271 --- /dev/null +++ b/installer/modules/qnx4-modules @@ -0,0 +1 @@ +qnx4 diff --git a/installer/modules/rtc-modules b/installer/modules/rtc-modules new file mode 100644 index 00000000000..0a78e785634 --- /dev/null +++ b/installer/modules/rtc-modules @@ -0,0 +1,2 @@ +rtc ? +rtc-cmos diff --git a/installer/modules/sata-modules b/installer/modules/sata-modules new file mode 100644 index 00000000000..e5043ad7459 --- /dev/null +++ b/installer/modules/sata-modules @@ -0,0 +1,15 @@ +# Include SATA drivers by default +drivers/ata/sata_* + +# sata-sis depends on pata-sis; avoid a dependency +pata_sis ? + +# Include more SATA drivers with unusual names +ata_piix ? +ahci ? +sx8 ? +pdc_adma ? +mtip32xx ? + +# XXX not actually SATA +nvme ? diff --git a/installer/modules/scsi-core-modules b/installer/modules/scsi-core-modules new file mode 100644 index 00000000000..e0d1d8fca1e --- /dev/null +++ b/installer/modules/scsi-core-modules @@ -0,0 +1,4 @@ +scsi_mod +sd_mod +scsi_transport_sas ? +scsi_transport_spi ? diff --git a/installer/modules/scsi-modules b/installer/modules/scsi-modules new file mode 100644 index 00000000000..577914a10c4 --- /dev/null +++ b/installer/modules/scsi-modules @@ -0,0 +1,50 @@ +# Include SCSI controller drivers by default +drivers/scsi/** +DAC960 ? +cciss ? +mptfc +mptsas +mptspi + +# Include iSCSI boot support +iscsi_ibft ? + +# Include Xen block driver even though it's not SCSI +xen-blkfront ? + +# Exclude hv_storvsc, packaged in hyperv-modules +hv_storvsc - + +# Exclude virtio_scsi, packaged in virtio-modules +virtio_scsi - + +# Exclude PCMCIA drivers, which depend on pcmcia-modules (FIXME) +drivers/scsi/pcmcia/* - + +# Exclude Chelsio iSCSI drivers, which depend on the corresponding Ethernet +# drivers in nic-modules (FIXME) +drivers/scsi/cxgbi/* - +cxgb3i - +cxgb4i - + +# Exclude enclosure driver +ses - + +# Exclude target drivers +tcm_qla2xxx - + +# Exclude common code packaged in {cdrom,scsi}-core-modules +scsi_mod - +sd_mod - +sr_mod - +scsi_transport_sas - +scsi_transport_spi - + +# Exclude any other common code that isn't pulled in by dependencies +drivers/scsi/device_handler/* - +drivers/scsi/lib** - +drivers/scsi/osd/* - +drivers/scsi/scsi_transport_* - +fcoe - +raid_class - +scsi_debug - diff --git a/installer/modules/serial-modules b/installer/modules/serial-modules new file mode 100644 index 00000000000..e046330c1d0 --- /dev/null +++ b/installer/modules/serial-modules @@ -0,0 +1,3 @@ +rp2 ? +serial_cs +synclink_cs ? diff --git a/installer/modules/sound-modules b/installer/modules/sound-modules new file mode 100644 index 00000000000..7bd30ee8e55 --- /dev/null +++ b/installer/modules/sound-modules @@ -0,0 +1,15 @@ +# Include sound drivers by default +sound/** + +# Exclude any core/shared modules that aren't pulled in by dependencies +sound/core/** - +sound/drivers/** - +sound/i2c/** - + +# Exclude synthesiser drivers +snd-adlib - +sound/**-synth - + +# Exclude soft-modem drivers +sound/**-modem - +snd-intel8x0m - diff --git a/installer/modules/speakup-modules b/installer/modules/speakup-modules new file mode 100644 index 00000000000..16822b914bc --- /dev/null +++ b/installer/modules/speakup-modules @@ -0,0 +1,15 @@ +speakup +speakup_acntpc ? +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dtlk ? +speakup_dummy +speakup_keypc ? +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt diff --git a/installer/modules/squashfs-modules b/installer/modules/squashfs-modules new file mode 100644 index 00000000000..7c1157fa31e --- /dev/null +++ b/installer/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs diff --git a/installer/modules/udf-modules b/installer/modules/udf-modules new file mode 100644 index 00000000000..97c604ff2f1 --- /dev/null +++ b/installer/modules/udf-modules @@ -0,0 +1 @@ +udf diff --git a/installer/modules/uinput-modules b/installer/modules/uinput-modules new file mode 100644 index 00000000000..42bc0053c78 --- /dev/null +++ b/installer/modules/uinput-modules @@ -0,0 +1 @@ +uinput diff --git a/installer/modules/usb-modules b/installer/modules/usb-modules new file mode 100644 index 00000000000..7e87f815327 --- /dev/null +++ b/installer/modules/usb-modules @@ -0,0 +1,13 @@ +# Include USB host drivers by default +drivers/usb/host/** + +# Exclude some obscure host drivers +hwa-hc - +sl811_cs - +sl811-hcd - +u132-hcd - +whci-hcd - + +# Include USB PHY drivers by default +drivers/phy/phy-*-usb* ? +drivers/usb/phy/* ? diff --git a/installer/modules/usb-serial-modules b/installer/modules/usb-serial-modules new file mode 100644 index 00000000000..28f3aa76006 --- /dev/null +++ b/installer/modules/usb-serial-modules @@ -0,0 +1,28 @@ +# Include USB serial drivers by default +drivers/usb/serial/* + +# Exclude drivers that are useless for serial consoles +aircable - +cyberjack - +cypress_m8 - +empeg - +garmin_gps - +ipaq - +ipw - +ir-usb - +iuu_phoenix - +kobil_sct - +metro-usb - +navman - +omninet - +opticon - +option - +qcaux - +qcserial - +sierra - +symbolserial - +usb_debug - +usb_wwan - +visor - +wishbone-serial - +xsens_mt - diff --git a/installer/modules/usb-storage-modules b/installer/modules/usb-storage-modules new file mode 100644 index 00000000000..013c58cfc14 --- /dev/null +++ b/installer/modules/usb-storage-modules @@ -0,0 +1,2 @@ +# Include USB storage drivers by default +drivers/usb/storage/* diff --git a/installer/modules/virtio-modules b/installer/modules/virtio-modules new file mode 100644 index 00000000000..bb89475252e --- /dev/null +++ b/installer/modules/virtio-modules @@ -0,0 +1,9 @@ +virtio_net +virtio_blk +virtio_balloon +virtio_scsi +virtio_input + +# Some architectures do not have PCI bus +virtio_pci ? +virtio_mmio ? diff --git a/installer/modules/xfs-modules b/installer/modules/xfs-modules new file mode 100644 index 00000000000..7bd8fb2ac47 --- /dev/null +++ b/installer/modules/xfs-modules @@ -0,0 +1,2 @@ +# Not available currently on all kernel versions, so marked optional. +xfs ? diff --git a/installer/modules/zlib-modules b/installer/modules/zlib-modules new file mode 100644 index 00000000000..322c546d199 --- /dev/null +++ b/installer/modules/zlib-modules @@ -0,0 +1 @@ +zlib_deflate diff --git a/installer/package-list b/installer/package-list new file mode 100644 index 00000000000..a170318ac0b --- /dev/null +++ b/installer/package-list @@ -0,0 +1,385 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# +Package: kernel-image +Priority: standard +Description: Linux kernel image and core modules for the Debian installer + This package contains the kernel image and core modules for the Debian + installer boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, i2c-modules, crc-modules +Provides: nic-extra-modules +Priority: standard +Description: NIC drivers + This package contains Ethernet and some paravirtualised network drivers + for the kernel. + +Package: nic-wireless-modules +Depends: kernel-image, nic-shared-modules, usb-modules, mmc-modules, pcmcia-modules, crc-modules +Priority: standard +Description: Wireless NIC drivers + This package contains wireless NIC drivers for the kernel. + Includes crypto modules only needed for wireless (WEP, WPA). + +Package: nic-shared-modules +Depends: kernel-image +Priority: standard +Description: Shared NIC drivers + This package contains NIC drivers needed by combinations of nic-modules, + nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. + +Package: serial-modules +Depends: kernel-image, pcmcia-modules +Priority: optional +Description: Serial drivers + This package contains serial drivers for the kernel. + +Package: usb-serial-modules +Depends: kernel-image, usb-modules +Priority: optional +Description: USB serial drivers + This package contains USB serial drivers for the kernel. + +Package: ppp-modules +Depends: kernel-image, serial-modules, zlib-modules, crc-modules +Priority: optional +Description: PPP drivers + This package contains PPP drivers for the kernel. + +Package: pata-modules +Depends: kernel-image, ata-modules +Priority: standard +Description: PATA drivers + This package contains PATA drivers for the kernel. + +Package: cdrom-core-modules +Depends: kernel-image, scsi-core-modules, isofs-modules +Priority: standard +Description: CDROM support + This package contains core CDROM support for the kernel. + +Package: firewire-core-modules +Depends: kernel-image, scsi-core-modules, crc-modules +Priority: standard +Description: Core FireWire drivers + This package contains core FireWire drivers for the kernel. + +Package: scsi-core-modules +Depends: kernel-image +Priority: standard +Description: Core SCSI subsystem + This package contains the core SCSI subsystem for the kernel. + +Package: scsi-modules +Depends: kernel-image, scsi-core-modules, cdrom-core-modules, ata-modules +Priority: standard +Description: SCSI drivers + This package contains SCSI drivers for the kernel. + +Package: loop-modules +Depends: kernel-image +Priority: standard +Description: Loopback filesystem support + This package contains loopback filesystem support for the kernel. + +Package: ipv6-modules +Depends: kernel-image +Priority: extra +Description: IPv6 driver + This package contains the IPv6 driver for the kernel. + +Package: btrfs-modules +Depends: kernel-image, crc-modules, zlib-modules, lzo-modules, md-modules +Priority: extra +Description: BTRFS filesystem support + This package contains the BTRFS filesystem module for the kernel. + +Package: ext4-modules +Depends: kernel-image, crc-modules +Provides: ext2-modules, ext3-modules +Priority: standard +Description: ext2/ext3/ext4 filesystem support + This package contains the ext4 filesystem module for the kernel, which + also supports ext2 and ext3. + +Package: isofs-modules +Depends: kernel-image +Priority: standard +Description: ISOFS filesystem support + This package contains the ISOFS filesystem module for the kernel. + +Package: jffs2-modules +Depends: kernel-image, zlib-modules, lzo-modules +Priority: extra +Description: JFFS2 filesystem support + This package contains the JFFS2 filesystem module for the kernel. + +Package: jfs-modules +Depends: kernel-image +Priority: standard +Description: JFS filesystem support + This package contains the JFS filesystem module for the kernel. + +Package: ntfs-modules +Depends: kernel-image +Priority: extra +Description: NTFS filesystem support + This package contains the NTFS file system module for the kernel. + +Package: xfs-modules +Depends: kernel-image, crc-modules +Priority: standard +Description: XFS filesystem support + This package contains the XFS filesystem module for the kernel. + +Package: fat-modules +Depends: kernel-image +Priority: extra +Description: FAT filesystem support + This package contains the FAT and VFAT filesystem modules for the kernel. + +Package: hfs-modules +Depends: kernel-image +Priority: extra +Description: HFS filesystem support + This package contains the HFS and HFS+ filesystem modules for the kernel. + +Package: affs-modules +Depends: kernel-image +Priority: extra +Description: Amiga filesystem support + This package contains the Amiga filesystem module for the kernel. + +Package: minix-modules +Depends: kernel-image +Priority: extra +Description: Minix filesystem support + This package contains the Minix filesystem module for the kernel. + +Package: nfs-modules +Depends: kernel-image +Priority: extra +Description: NFS filesystem support + This package contains the NFS filesystem module for the kernel. + +Package: md-modules +Depends: kernel-image, crc-modules +Priority: extra +Description: RAID and LVM support + This package contains RAID and LVM modules for the kernel. + +Package: multipath-modules +Depends: kernel-image, md-modules, scsi-core-modules +Priority: extra +Description: Multipath support + This package contains DM-Multipath modules for the kernel. + +Package: usb-modules +Depends: kernel-image +Priority: extra +Description: USB support + This package contains core USB drivers for the kernel. + +Package: usb-storage-modules +Depends: kernel-image, scsi-core-modules, usb-modules +Priority: standard +Description: USB storage support + This package contains the USB storage driver for the kernel. + +Package: pcmcia-storage-modules +Depends: kernel-image, cdrom-core-modules, pcmcia-modules, ata-modules +Priority: standard +Description: PCMCIA storage drivers + This package contains PCMCIA storage drivers for the kernel. + +Package: fb-modules +Depends: kernel-image, i2c-modules +Priority: extra +Description: Frame buffer support + This package contains Frame buffer drivers for the kernel. + +Package: input-modules +Depends: kernel-image, usb-modules, i2c-modules +Priority: extra +Description: Input devices support + This package contains input device drivers for the kernel. + +Package: event-modules +Depends: kernel-image +Priority: extra +Description: Event support + This package contains event drivers for the kernel. + +Package: mouse-modules +Depends: kernel-image, event-modules, input-modules, usb-modules +Priority: extra +Description: Mouse support + This package contains mouse drivers for the kernel. + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-wireless-modules, pcmcia-modules, mmc-core-modules +Priority: standard +Description: Common PCMCIA NIC drivers + This package contains common PCMCIA NIC drivers for the kernel. + +Package: pcmcia-modules +Depends: kernel-image +Priority: standard +Description: Common PCMCIA drivers + This package contains common PCMCIA drivers for the kernel. + +Package: nic-usb-modules +Depends: kernel-image, nic-shared-modules, nic-wireless-modules, usb-modules, crc-modules +Priority: standard +Description: USB NIC drivers + This package contains USB network adapter drivers for the kernel. + +Package: sata-modules +Depends: kernel-image, scsi-core-modules, ata-modules +Priority: standard +Description: SATA drivers + This package contains SATA drivers for the kernel. + +Package: acpi-modules +Depends: kernel-image +Priority: extra +Description: ACPI support modules + This package contains kernel modules for ACPI. + +Package: i2c-modules +Depends: kernel-image +Priority: extra +Description: i2c support modules + This package contains basic i2c support modules. + +Package: crc-modules +Depends: kernel-image +Priority: extra +Description: CRC modules + This package contains CRC support modules. + +Package: crypto-modules +Depends: kernel-image +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: crypto-dm-modules +Depends: kernel-image, md-modules +Priority: extra +Description: devicemapper crypto module + This package contains the devicemapper crypto (dm-crypt) module. + +Package: efi-modules +Depends: kernel-image +Priority: extra +Description: EFI modules + This package contains EFI modules. + +Package: ata-modules +Depends: kernel-image, scsi-core-modules +Priority: extra +Description: ATA disk modules + This package contains core ATA disk modules used by both PATA and SATA + disk drivers. + +Package: mmc-core-modules +Depends: kernel-image +Priority: extra +Description: MMC/SD/SDIO core modules + This package contains core modules for MMC/SD/SDIO support. + +Package: mmc-modules +Depends: kernel-image, mmc-core-modules, usb-modules, crc-modules +Priority: extra +Description: MMC/SD card modules + This package contains modules needed to support MMC (multimedia) and + SD cards. + +Package: nbd-modules +Depends: kernel-image +Priority: extra +Description: Network Block Device modules + This package contains the modules required for support of the Network Block + Device + +Package: squashfs-modules +Depends: kernel-image +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: speakup-modules +Depends: kernel-image +Priority: extra +Description: speakup modules + This package contains speakup modules. + +Package: rtc-modules +Depends: kernel-image +Priority: extra +Description: RTC modules + This package contains RTC modules. + +Package: virtio-modules +Depends: kernel-image, scsi-core-modules +Priority: extra +Description: virtio modules + This package contains virtio modules. + +Package: uinput-modules +Depends: kernel-image +Priority: extra +Description: uinput support + This package contains the uinput module. + +Package: sound-modules +Depends: kernel-image, i2c-modules, usb-modules, pcmcia-modules, firewire-core-modules, crc-modules +Priority: extra +Description: sound support + This package contains sound modules. + +Package: zlib-modules +Depends: kernel-image +Priority: extra +Description: zlib modules + This package contains zlib modules. + +Package: lzo-modules +Depends: kernel-image +Priority: extra +Description: lzo modules + This package contains lzo modules. + +Package: leds-modules +Depends: kernel-image +Priority: extra +Description: LED modules + This package contains LED modules. + +Package: hyperv-modules +Depends: kernel-image, input-modules, scsi-core-modules +Priority: extra +Description: Hyper-V modules + This package contains Hyper-V paravirtualised drivers for the kernel. + +Package: udf-modules +Depends: kernel-image, crc-modules +Priority: extra +Description: UDF modules + This package contains the UDF filesystem module. + +Package: fuse-modules +Depends: kernel-image +Priority: extra +Description: FUSE modules + This package contains the Filesystem in Userspace (FUSE) module. + +Package: mtd-modules +Depends: kernel-image +Priority: extra +Description: MTD modules + This package contains MTD modules. diff --git a/installer/powerpc/kernel-versions b/installer/powerpc/kernel-versions new file mode 100644 index 00000000000..50cf2120af6 --- /dev/null +++ b/installer/powerpc/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +powerpc - powerpc - - - +powerpc - powerpc64 - - - diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/affs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/affs-modules new file mode 100644 index 00000000000..f12f6ace215 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/affs-modules @@ -0,0 +1 @@ +#include "../powerpc/affs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/ata-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/ata-modules new file mode 100644 index 00000000000..39540d4b6a4 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/ata-modules @@ -0,0 +1 @@ +#include "../powerpc/ata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/btrfs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/cdrom-core-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/cdrom-core-modules new file mode 100644 index 00000000000..feed89a1a49 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/cdrom-core-modules @@ -0,0 +1 @@ +#include "../powerpc/cdrom-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/crc-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-dm-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/event-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/ext4-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/fat-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/fat-modules new file mode 100644 index 00000000000..043dc560295 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/fat-modules @@ -0,0 +1 @@ +#include "../powerpc/fat-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/firewire-core-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/firewire-core-modules new file mode 100644 index 00000000000..035ab316250 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/firewire-core-modules @@ -0,0 +1 @@ +#include "../powerpc/firewire-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/fuse-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/fuse-modules new file mode 100644 index 00000000000..49bdce41b07 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/fuse-modules @@ -0,0 +1 @@ +#include "../powerpc/fuse-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/hfs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/hfs-modules new file mode 100644 index 00000000000..a85f6914303 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/hfs-modules @@ -0,0 +1 @@ +#include "../powerpc/hfs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/input-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/input-modules new file mode 100644 index 00000000000..38a888940fa --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/input-modules @@ -0,0 +1 @@ +#include "../powerpc/input-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/isofs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/jfs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/jfs-modules new file mode 100644 index 00000000000..b71ebd35e86 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/jfs-modules @@ -0,0 +1 @@ +#include "../powerpc/jfs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/kernel-image b/installer/powerpc/modules/powerpc-powerpc-miboot/kernel-image new file mode 100644 index 00000000000..a0b7d0cf49c --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/kernel-image @@ -0,0 +1 @@ +#include "../powerpc/kernel-image" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/loop-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/loop-modules new file mode 100644 index 00000000000..e2273687f54 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/loop-modules @@ -0,0 +1 @@ +#include "../powerpc/loop-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/md-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/md-modules new file mode 100644 index 00000000000..93be33f95c5 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/md-modules @@ -0,0 +1 @@ +#include "../powerpc/md-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/mouse-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/mouse-modules new file mode 100644 index 00000000000..22aca9411c6 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/mouse-modules @@ -0,0 +1 @@ +#include "../powerpc/mouse-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/multipath-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/nbd-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/nic-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-modules new file mode 100644 index 00000000000..b32747c68e2 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-modules @@ -0,0 +1,28 @@ +3c59x +8139too +de2104x +dl2k +dmfe +e100 +fealnx +hamachi +ixgb +natsemi +ne2k-pci +ns83820 +p54pci +p54usb +prism54 ? +r8169 +s2io +starfire +tg3 ? +tlan +tulip +winbond-840 +winbond-840 +yellowfin + +broadcom ? + +8021q diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/nic-pcmcia-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-pcmcia-modules new file mode 100644 index 00000000000..3f521e9db03 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-pcmcia-modules @@ -0,0 +1 @@ +#include "../powerpc/nic-pcmcia-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/nic-shared-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-shared-modules new file mode 100644 index 00000000000..5b05e0d43cb --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/nic-shared-modules @@ -0,0 +1 @@ +#include "../powerpc/nic-shared-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/pata-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/pata-modules new file mode 100644 index 00000000000..bb9cbe3abe7 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/pata-modules @@ -0,0 +1 @@ +#include "../powerpc/pata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-modules new file mode 100644 index 00000000000..e508df66435 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-modules @@ -0,0 +1 @@ +#include "../powerpc/pcmcia-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-storage-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-storage-modules new file mode 100644 index 00000000000..f00f24605f5 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/pcmcia-storage-modules @@ -0,0 +1 @@ +#include "../powerpc/pcmcia-storage-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/ppp-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/ppp-modules new file mode 100644 index 00000000000..eb7ab74a52f --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/ppp-modules @@ -0,0 +1 @@ +#include "../powerpc/ppp-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/sata-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/sata-modules new file mode 100644 index 00000000000..591ad741022 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/sata-modules @@ -0,0 +1 @@ +#include "../powerpc/sata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-core-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-core-modules new file mode 100644 index 00000000000..c972a471740 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-core-modules @@ -0,0 +1 @@ +#include "../powerpc/scsi-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-modules new file mode 100644 index 00000000000..dd5ae9ccee6 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/scsi-modules @@ -0,0 +1 @@ +#include "../powerpc/scsi-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/serial-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/serial-modules new file mode 100644 index 00000000000..349196e30e8 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/serial-modules @@ -0,0 +1 @@ +#include "../powerpc/serial-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/squashfs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/udf-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/uinput-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/usb-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-modules new file mode 100644 index 00000000000..9c5b10a7b9e --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/usb-serial-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-serial-modules new file mode 100644 index 00000000000..e25b5586285 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-serial-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-serial-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/usb-storage-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-storage-modules new file mode 100644 index 00000000000..5f278e65f83 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/usb-storage-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-storage-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/xfs-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/xfs-modules new file mode 100644 index 00000000000..c850127e905 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/xfs-modules @@ -0,0 +1 @@ +#include "../powerpc/xfs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc-miboot/zlib-modules b/installer/powerpc/modules/powerpc-powerpc-miboot/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc-miboot/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/affs-modules b/installer/powerpc/modules/powerpc-powerpc64/affs-modules new file mode 100644 index 00000000000..f12f6ace215 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/affs-modules @@ -0,0 +1 @@ +#include "../powerpc/affs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/ata-modules b/installer/powerpc/modules/powerpc-powerpc64/ata-modules new file mode 100644 index 00000000000..39540d4b6a4 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/ata-modules @@ -0,0 +1 @@ +#include "../powerpc/ata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/btrfs-modules b/installer/powerpc/modules/powerpc-powerpc64/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/cdrom-core-modules b/installer/powerpc/modules/powerpc-powerpc64/cdrom-core-modules new file mode 100644 index 00000000000..feed89a1a49 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/cdrom-core-modules @@ -0,0 +1 @@ +#include "../powerpc/cdrom-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/crc-modules b/installer/powerpc/modules/powerpc-powerpc64/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/crypto-dm-modules b/installer/powerpc/modules/powerpc-powerpc64/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/crypto-modules b/installer/powerpc/modules/powerpc-powerpc64/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/event-modules b/installer/powerpc/modules/powerpc-powerpc64/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/ext4-modules b/installer/powerpc/modules/powerpc-powerpc64/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/fancontrol-modules b/installer/powerpc/modules/powerpc-powerpc64/fancontrol-modules new file mode 100644 index 00000000000..a3fc55cca94 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/fancontrol-modules @@ -0,0 +1,19 @@ +i2c-powermac ? +windfarm_core ? +windfarm_cpufreq_clamp ? +windfarm_lm75_sensor ? +windfarm_max6690_sensor ? +windfarm_pid ? +windfarm_pm121 ? +windfarm_pm112 ? +windfarm_pm81 ? +windfarm_pm91 ? +windfarm_pm72 ? +windfarm_rm31 ? +windfarm_smu_controls ? +windfarm_smu_sat ? +windfarm_smu_sensors ? +windfarm_ad7417_sensor ? +windfarm_fcu_controls ? +windfarm_lm87_sensor ? +windfarm_pid ? diff --git a/installer/powerpc/modules/powerpc-powerpc64/fat-modules b/installer/powerpc/modules/powerpc-powerpc64/fat-modules new file mode 100644 index 00000000000..043dc560295 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/fat-modules @@ -0,0 +1 @@ +#include "../powerpc/fat-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/firewire-core-modules b/installer/powerpc/modules/powerpc-powerpc64/firewire-core-modules new file mode 100644 index 00000000000..035ab316250 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/firewire-core-modules @@ -0,0 +1 @@ +#include "../powerpc/firewire-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/fuse-modules b/installer/powerpc/modules/powerpc-powerpc64/fuse-modules new file mode 100644 index 00000000000..49bdce41b07 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/fuse-modules @@ -0,0 +1 @@ +#include "../powerpc/fuse-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/hfs-modules b/installer/powerpc/modules/powerpc-powerpc64/hfs-modules new file mode 100644 index 00000000000..a85f6914303 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/hfs-modules @@ -0,0 +1 @@ +#include "../powerpc/hfs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/hypervisor-modules b/installer/powerpc/modules/powerpc-powerpc64/hypervisor-modules new file mode 100644 index 00000000000..29ceb6154d7 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/hypervisor-modules @@ -0,0 +1,2 @@ +hvcserver +hvcs diff --git a/installer/powerpc/modules/powerpc-powerpc64/input-modules b/installer/powerpc/modules/powerpc-powerpc64/input-modules new file mode 100644 index 00000000000..38a888940fa --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/input-modules @@ -0,0 +1 @@ +#include "../powerpc/input-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/isofs-modules b/installer/powerpc/modules/powerpc-powerpc64/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/jfs-modules b/installer/powerpc/modules/powerpc-powerpc64/jfs-modules new file mode 100644 index 00000000000..b71ebd35e86 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/jfs-modules @@ -0,0 +1 @@ +#include "../powerpc/jfs-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/kernel-image b/installer/powerpc/modules/powerpc-powerpc64/kernel-image new file mode 100644 index 00000000000..a0b7d0cf49c --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/kernel-image @@ -0,0 +1 @@ +#include "../powerpc/kernel-image" diff --git a/installer/powerpc/modules/powerpc-powerpc64/loop-modules b/installer/powerpc/modules/powerpc-powerpc64/loop-modules new file mode 100644 index 00000000000..e2273687f54 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/loop-modules @@ -0,0 +1 @@ +#include "../powerpc/loop-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/md-modules b/installer/powerpc/modules/powerpc-powerpc64/md-modules new file mode 100644 index 00000000000..93be33f95c5 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/md-modules @@ -0,0 +1 @@ +#include "../powerpc/md-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/mouse-modules b/installer/powerpc/modules/powerpc-powerpc64/mouse-modules new file mode 100644 index 00000000000..22aca9411c6 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/mouse-modules @@ -0,0 +1 @@ +#include "../powerpc/mouse-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/multipath-modules b/installer/powerpc/modules/powerpc-powerpc64/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/nbd-modules b/installer/powerpc/modules/powerpc-powerpc64/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/nic-modules b/installer/powerpc/modules/powerpc-powerpc64/nic-modules new file mode 100644 index 00000000000..95052e97766 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/nic-modules @@ -0,0 +1,7 @@ +#include "../powerpc/nic-modules" + +ehea +ibmveth +pasemi_mac ? +ps3_gelic +spidernet diff --git a/installer/powerpc/modules/powerpc-powerpc64/nic-pcmcia-modules b/installer/powerpc/modules/powerpc-powerpc64/nic-pcmcia-modules new file mode 100644 index 00000000000..7a0702cd558 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/nic-pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/nic-shared-modules b/installer/powerpc/modules/powerpc-powerpc64/nic-shared-modules new file mode 100644 index 00000000000..5b05e0d43cb --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/nic-shared-modules @@ -0,0 +1 @@ +#include "../powerpc/nic-shared-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/pata-modules b/installer/powerpc/modules/powerpc-powerpc64/pata-modules new file mode 100644 index 00000000000..bb9cbe3abe7 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/pata-modules @@ -0,0 +1 @@ +#include "../powerpc/pata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/pcmcia-modules b/installer/powerpc/modules/powerpc-powerpc64/pcmcia-modules new file mode 100644 index 00000000000..e508df66435 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/pcmcia-modules @@ -0,0 +1 @@ +#include "../powerpc/pcmcia-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/pcmcia-storage-modules b/installer/powerpc/modules/powerpc-powerpc64/pcmcia-storage-modules new file mode 100644 index 00000000000..f00f24605f5 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/pcmcia-storage-modules @@ -0,0 +1 @@ +#include "../powerpc/pcmcia-storage-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/ppp-modules b/installer/powerpc/modules/powerpc-powerpc64/ppp-modules new file mode 100644 index 00000000000..eb7ab74a52f --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/ppp-modules @@ -0,0 +1 @@ +#include "../powerpc/ppp-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/sata-modules b/installer/powerpc/modules/powerpc-powerpc64/sata-modules new file mode 100644 index 00000000000..591ad741022 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/sata-modules @@ -0,0 +1 @@ +#include "../powerpc/sata-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/scsi-core-modules b/installer/powerpc/modules/powerpc-powerpc64/scsi-core-modules new file mode 100644 index 00000000000..c972a471740 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/scsi-core-modules @@ -0,0 +1 @@ +#include "../powerpc/scsi-core-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/scsi-modules b/installer/powerpc/modules/powerpc-powerpc64/scsi-modules new file mode 100644 index 00000000000..62f9ed24d0e --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/scsi-modules @@ -0,0 +1,5 @@ +#include + +ibmvscsi +ps3disk ? +ps3rom diff --git a/installer/powerpc/modules/powerpc-powerpc64/serial-modules b/installer/powerpc/modules/powerpc-powerpc64/serial-modules new file mode 100644 index 00000000000..349196e30e8 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/serial-modules @@ -0,0 +1 @@ +#include "../powerpc/serial-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/squashfs-modules b/installer/powerpc/modules/powerpc-powerpc64/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/udf-modules b/installer/powerpc/modules/powerpc-powerpc64/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/uinput-modules b/installer/powerpc/modules/powerpc-powerpc64/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/usb-modules b/installer/powerpc/modules/powerpc-powerpc64/usb-modules new file mode 100644 index 00000000000..9c5b10a7b9e --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/usb-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/usb-serial-modules b/installer/powerpc/modules/powerpc-powerpc64/usb-serial-modules new file mode 100644 index 00000000000..e25b5586285 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/usb-serial-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-serial-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/usb-storage-modules b/installer/powerpc/modules/powerpc-powerpc64/usb-storage-modules new file mode 100644 index 00000000000..5f278e65f83 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/usb-storage-modules @@ -0,0 +1 @@ +#include "../powerpc/usb-storage-modules" diff --git a/installer/powerpc/modules/powerpc-powerpc64/virtio-modules b/installer/powerpc/modules/powerpc-powerpc64/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc-powerpc64/xfs-modules b/installer/powerpc/modules/powerpc-powerpc64/xfs-modules new file mode 100644 index 00000000000..c850127e905 --- /dev/null +++ b/installer/powerpc/modules/powerpc-powerpc64/xfs-modules @@ -0,0 +1 @@ +#include "../powerpc/xfs-modules" diff --git a/installer/powerpc/modules/powerpc/affs-modules b/installer/powerpc/modules/powerpc/affs-modules new file mode 100644 index 00000000000..3f0e4bb909e --- /dev/null +++ b/installer/powerpc/modules/powerpc/affs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/ata-modules b/installer/powerpc/modules/powerpc/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/powerpc/modules/powerpc/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/btrfs-modules b/installer/powerpc/modules/powerpc/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/powerpc/modules/powerpc/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/cdrom-core-modules b/installer/powerpc/modules/powerpc/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/powerpc/modules/powerpc/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/crc-modules b/installer/powerpc/modules/powerpc/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/powerpc/modules/powerpc/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/crypto-dm-modules b/installer/powerpc/modules/powerpc/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/powerpc/modules/powerpc/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/crypto-modules b/installer/powerpc/modules/powerpc/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/powerpc/modules/powerpc/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/event-modules b/installer/powerpc/modules/powerpc/event-modules new file mode 100644 index 00000000000..f8819afd361 --- /dev/null +++ b/installer/powerpc/modules/powerpc/event-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/ext4-modules b/installer/powerpc/modules/powerpc/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/powerpc/modules/powerpc/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/fat-modules b/installer/powerpc/modules/powerpc/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/powerpc/modules/powerpc/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/fb-modules b/installer/powerpc/modules/powerpc/fb-modules new file mode 100644 index 00000000000..29bfc4c3905 --- /dev/null +++ b/installer/powerpc/modules/powerpc/fb-modules @@ -0,0 +1,5 @@ +# 32-bit PowerMacs mostly have either ATI Rage 128 or Radeon graphics +# chips for which the offb driver doesn't work properly. aty128fb is +# currently built-in but that could plausibly change in future. +aty128fb +radeonfb diff --git a/installer/powerpc/modules/powerpc/firewire-core-modules b/installer/powerpc/modules/powerpc/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/powerpc/modules/powerpc/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/fuse-modules b/installer/powerpc/modules/powerpc/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/powerpc/modules/powerpc/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/hfs-modules b/installer/powerpc/modules/powerpc/hfs-modules new file mode 100644 index 00000000000..57d12f64921 --- /dev/null +++ b/installer/powerpc/modules/powerpc/hfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/input-modules b/installer/powerpc/modules/powerpc/input-modules new file mode 100644 index 00000000000..51e37ced9a7 --- /dev/null +++ b/installer/powerpc/modules/powerpc/input-modules @@ -0,0 +1,3 @@ +#include +atkbd +i8042 diff --git a/installer/powerpc/modules/powerpc/isofs-modules b/installer/powerpc/modules/powerpc/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/powerpc/modules/powerpc/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/jfs-modules b/installer/powerpc/modules/powerpc/jfs-modules new file mode 100644 index 00000000000..925a43a9e2a --- /dev/null +++ b/installer/powerpc/modules/powerpc/jfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/kernel-image b/installer/powerpc/modules/powerpc/kernel-image new file mode 100644 index 00000000000..b17bb591a8a --- /dev/null +++ b/installer/powerpc/modules/powerpc/kernel-image @@ -0,0 +1,2 @@ +#include +bestcomm-core ? diff --git a/installer/powerpc/modules/powerpc/loop-modules b/installer/powerpc/modules/powerpc/loop-modules new file mode 100644 index 00000000000..16446771376 --- /dev/null +++ b/installer/powerpc/modules/powerpc/loop-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/md-modules b/installer/powerpc/modules/powerpc/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/powerpc/modules/powerpc/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/mouse-modules b/installer/powerpc/modules/powerpc/mouse-modules new file mode 100644 index 00000000000..15fcb00eaa0 --- /dev/null +++ b/installer/powerpc/modules/powerpc/mouse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/multipath-modules b/installer/powerpc/modules/powerpc/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/powerpc/modules/powerpc/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/nbd-modules b/installer/powerpc/modules/powerpc/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/powerpc/modules/powerpc/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/nic-modules b/installer/powerpc/modules/powerpc/nic-modules new file mode 100644 index 00000000000..fa151067e0d --- /dev/null +++ b/installer/powerpc/modules/powerpc/nic-modules @@ -0,0 +1,8 @@ +#include + +ipddp +sunhme +airport +sungem +sungem_phy +bmac ? diff --git a/installer/powerpc/modules/powerpc/nic-pcmcia-modules b/installer/powerpc/modules/powerpc/nic-pcmcia-modules new file mode 100644 index 00000000000..7a0702cd558 --- /dev/null +++ b/installer/powerpc/modules/powerpc/nic-pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/nic-shared-modules b/installer/powerpc/modules/powerpc/nic-shared-modules new file mode 100644 index 00000000000..a6f274a444b --- /dev/null +++ b/installer/powerpc/modules/powerpc/nic-shared-modules @@ -0,0 +1,2 @@ +#include +llc diff --git a/installer/powerpc/modules/powerpc/pata-modules b/installer/powerpc/modules/powerpc/pata-modules new file mode 100644 index 00000000000..4c7d4296b8a --- /dev/null +++ b/installer/powerpc/modules/powerpc/pata-modules @@ -0,0 +1,3 @@ +#include +pata_mpc52xx ? +pata_macio ? diff --git a/installer/powerpc/modules/powerpc/pcmcia-modules b/installer/powerpc/modules/powerpc/pcmcia-modules new file mode 100644 index 00000000000..2bb5350fe14 --- /dev/null +++ b/installer/powerpc/modules/powerpc/pcmcia-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/pcmcia-storage-modules b/installer/powerpc/modules/powerpc/pcmcia-storage-modules new file mode 100644 index 00000000000..9fbaff306db --- /dev/null +++ b/installer/powerpc/modules/powerpc/pcmcia-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/ppp-modules b/installer/powerpc/modules/powerpc/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/powerpc/modules/powerpc/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/sata-modules b/installer/powerpc/modules/powerpc/sata-modules new file mode 100644 index 00000000000..071cb860bbc --- /dev/null +++ b/installer/powerpc/modules/powerpc/sata-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/scsi-core-modules b/installer/powerpc/modules/powerpc/scsi-core-modules new file mode 100644 index 00000000000..dd65d661433 --- /dev/null +++ b/installer/powerpc/modules/powerpc/scsi-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/scsi-modules b/installer/powerpc/modules/powerpc/scsi-modules new file mode 100644 index 00000000000..c75c32da5e5 --- /dev/null +++ b/installer/powerpc/modules/powerpc/scsi-modules @@ -0,0 +1,5 @@ +#include + +a100u2w +mac53c94 +mesh diff --git a/installer/powerpc/modules/powerpc/serial-modules b/installer/powerpc/modules/powerpc/serial-modules new file mode 100644 index 00000000000..6ab8b8c3551 --- /dev/null +++ b/installer/powerpc/modules/powerpc/serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/squashfs-modules b/installer/powerpc/modules/powerpc/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/powerpc/modules/powerpc/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/udf-modules b/installer/powerpc/modules/powerpc/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/powerpc/modules/powerpc/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/uinput-modules b/installer/powerpc/modules/powerpc/uinput-modules new file mode 100644 index 00000000000..58a83377944 --- /dev/null +++ b/installer/powerpc/modules/powerpc/uinput-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/usb-modules b/installer/powerpc/modules/powerpc/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/powerpc/modules/powerpc/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/usb-serial-modules b/installer/powerpc/modules/powerpc/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/powerpc/modules/powerpc/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/usb-storage-modules b/installer/powerpc/modules/powerpc/usb-storage-modules new file mode 100644 index 00000000000..272d95e2e8b --- /dev/null +++ b/installer/powerpc/modules/powerpc/usb-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/virtio-modules b/installer/powerpc/modules/powerpc/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/powerpc/modules/powerpc/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/modules/powerpc/xfs-modules b/installer/powerpc/modules/powerpc/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/powerpc/modules/powerpc/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/powerpc/modules/powerpc/zlib-modules b/installer/powerpc/modules/powerpc/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/powerpc/modules/powerpc/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/powerpc/package-list b/installer/powerpc/package-list new file mode 100644 index 00000000000..798bdf521e3 --- /dev/null +++ b/installer/powerpc/package-list @@ -0,0 +1,25 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: pata-modules +Depends: kernel-image, ata-modules, core-modules + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-modules, nic-shared-modules, nic-wireless-modules, pcmcia-modules, core-modules + +Package: hypervisor-modules +Depends: kernel-image +Priority: standard +Description: IBM 64bit hypervisor console modules + Contains drivers for the hypervisor console, used as console for linux + running in logical partitions of IBM hardware supporting it. + +Package: fancontrol-modules +Depends: kernel-image +Priority: standard +Description: Apple powermac fancontrol modules + Contains drivers for macintosh i2c bus as well as for the monitoring devices + connected to it. This allows to control the fans during installation. diff --git a/installer/ppc64/kernel-versions b/installer/ppc64/kernel-versions new file mode 100644 index 00000000000..359bd103c70 --- /dev/null +++ b/installer/ppc64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +ppc64 - powerpc64 - - - diff --git a/installer/ppc64/modules/powerpc b/installer/ppc64/modules/powerpc new file mode 120000 index 00000000000..207f2439cc9 --- /dev/null +++ b/installer/ppc64/modules/powerpc @@ -0,0 +1 @@ +../../powerpc/modules/powerpc \ No newline at end of file diff --git a/installer/ppc64/modules/ppc64 b/installer/ppc64/modules/ppc64 new file mode 120000 index 00000000000..f007b6a7880 --- /dev/null +++ b/installer/ppc64/modules/ppc64 @@ -0,0 +1 @@ +../../powerpc/modules/powerpc-powerpc64 \ No newline at end of file diff --git a/installer/ppc64/package-list b/installer/ppc64/package-list new file mode 120000 index 00000000000..d5716760226 --- /dev/null +++ b/installer/ppc64/package-list @@ -0,0 +1 @@ +../powerpc/package-list \ No newline at end of file diff --git a/installer/ppc64el/kernel-versions b/installer/ppc64el/kernel-versions new file mode 100644 index 00000000000..5f0d460d3eb --- /dev/null +++ b/installer/ppc64el/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +ppc64el - powerpc64le - - - diff --git a/installer/ppc64el/modules/ppc64el/ata-modules b/installer/ppc64el/modules/ppc64el/ata-modules new file mode 100644 index 00000000000..77a471d2f78 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/ata-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ata-modules" diff --git a/installer/ppc64el/modules/ppc64el/btrfs-modules b/installer/ppc64el/modules/ppc64el/btrfs-modules new file mode 100644 index 00000000000..4ab00bed8c2 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/btrfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/btrfs-modules" diff --git a/installer/ppc64el/modules/ppc64el/cdrom-core-modules b/installer/ppc64el/modules/ppc64el/cdrom-core-modules new file mode 100644 index 00000000000..ab06dbd9b92 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/cdrom-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/cdrom-core-modules" diff --git a/installer/ppc64el/modules/ppc64el/crc-modules b/installer/ppc64el/modules/ppc64el/crc-modules new file mode 100644 index 00000000000..faf2d628d40 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/crc-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crc-modules" diff --git a/installer/ppc64el/modules/ppc64el/crypto-dm-modules b/installer/ppc64el/modules/ppc64el/crypto-dm-modules new file mode 100644 index 00000000000..2c530b3d41e --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/crypto-dm-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crypto-dm-modules" diff --git a/installer/ppc64el/modules/ppc64el/crypto-modules b/installer/ppc64el/modules/ppc64el/crypto-modules new file mode 100644 index 00000000000..c6170b1d3e8 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/crypto-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crypto-modules" diff --git a/installer/ppc64el/modules/ppc64el/event-modules b/installer/ppc64el/modules/ppc64el/event-modules new file mode 100644 index 00000000000..b0e5f562626 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/event-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/event-modules" diff --git a/installer/ppc64el/modules/ppc64el/ext4-modules b/installer/ppc64el/modules/ppc64el/ext4-modules new file mode 100644 index 00000000000..ac5f4c066d3 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/ext4-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ext4-modules" diff --git a/installer/ppc64el/modules/ppc64el/fancontrol-modules b/installer/ppc64el/modules/ppc64el/fancontrol-modules new file mode 100644 index 00000000000..55cde68adfb --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/fancontrol-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fancontrol-modules" diff --git a/installer/ppc64el/modules/ppc64el/fat-modules b/installer/ppc64el/modules/ppc64el/fat-modules new file mode 100644 index 00000000000..9ef0e07a2f4 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/fat-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fat-modules" diff --git a/installer/ppc64el/modules/ppc64el/firewire-core-modules b/installer/ppc64el/modules/ppc64el/firewire-core-modules new file mode 100644 index 00000000000..30b2c4c7c66 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/firewire-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/firewire-core-modules" diff --git a/installer/ppc64el/modules/ppc64el/fuse-modules b/installer/ppc64el/modules/ppc64el/fuse-modules new file mode 100644 index 00000000000..73597f9e752 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/fuse-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fuse-modules" diff --git a/installer/ppc64el/modules/ppc64el/hypervisor-modules b/installer/ppc64el/modules/ppc64el/hypervisor-modules new file mode 100644 index 00000000000..f2edc4b7757 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/hypervisor-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/hypervisor-modules" diff --git a/installer/ppc64el/modules/ppc64el/input-modules b/installer/ppc64el/modules/ppc64el/input-modules new file mode 100644 index 00000000000..e4625ac7792 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/input-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/input-modules" diff --git a/installer/ppc64el/modules/ppc64el/isofs-modules b/installer/ppc64el/modules/ppc64el/isofs-modules new file mode 100644 index 00000000000..18fb993d20e --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/isofs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/isofs-modules" diff --git a/installer/ppc64el/modules/ppc64el/jfs-modules b/installer/ppc64el/modules/ppc64el/jfs-modules new file mode 100644 index 00000000000..193513f5ff7 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/jfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/jfs-modules" diff --git a/installer/ppc64el/modules/ppc64el/kernel-image b/installer/ppc64el/modules/ppc64el/kernel-image new file mode 100644 index 00000000000..93f4a3702a4 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/kernel-image @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/kernel-image" diff --git a/installer/ppc64el/modules/ppc64el/loop-modules b/installer/ppc64el/modules/ppc64el/loop-modules new file mode 100644 index 00000000000..fac3d38d443 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/loop-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/loop-modules" diff --git a/installer/ppc64el/modules/ppc64el/md-modules b/installer/ppc64el/modules/ppc64el/md-modules new file mode 100644 index 00000000000..03b10183f0e --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/md-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/md-modules" diff --git a/installer/ppc64el/modules/ppc64el/mouse-modules b/installer/ppc64el/modules/ppc64el/mouse-modules new file mode 100644 index 00000000000..163e3bab08d --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/mouse-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/mouse-modules" diff --git a/installer/ppc64el/modules/ppc64el/multipath-modules b/installer/ppc64el/modules/ppc64el/multipath-modules new file mode 100644 index 00000000000..cb7afcb659c --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/multipath-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/multipath-modules" diff --git a/installer/ppc64el/modules/ppc64el/nbd-modules b/installer/ppc64el/modules/ppc64el/nbd-modules new file mode 100644 index 00000000000..6540c0af63b --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/nbd-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/nbd-modules" diff --git a/installer/ppc64el/modules/ppc64el/nic-modules b/installer/ppc64el/modules/ppc64el/nic-modules new file mode 100644 index 00000000000..8ef5be22711 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/nic-modules @@ -0,0 +1,5 @@ +#include "../../../ppc64/modules/ppc64/nic-modules" + +airport - +ps3_gelic - +spidernet - diff --git a/installer/ppc64el/modules/ppc64el/nic-shared-modules b/installer/ppc64el/modules/ppc64el/nic-shared-modules new file mode 100644 index 00000000000..13812a86997 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/nic-shared-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/nic-shared-modules" diff --git a/installer/ppc64el/modules/ppc64el/ppp-modules b/installer/ppc64el/modules/ppc64el/ppp-modules new file mode 100644 index 00000000000..62620196758 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/ppp-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ppp-modules" diff --git a/installer/ppc64el/modules/ppc64el/sata-modules b/installer/ppc64el/modules/ppc64el/sata-modules new file mode 100644 index 00000000000..6907d272eba --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/sata-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/sata-modules" diff --git a/installer/ppc64el/modules/ppc64el/scsi-core-modules b/installer/ppc64el/modules/ppc64el/scsi-core-modules new file mode 100644 index 00000000000..dd496f79b5c --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/scsi-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/scsi-core-modules" diff --git a/installer/ppc64el/modules/ppc64el/scsi-modules b/installer/ppc64el/modules/ppc64el/scsi-modules new file mode 100644 index 00000000000..da4567b84af --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/scsi-modules @@ -0,0 +1,3 @@ +#include "../../../ppc64/modules/ppc64/scsi-modules" + +ps3rom - diff --git a/installer/ppc64el/modules/ppc64el/serial-modules b/installer/ppc64el/modules/ppc64el/serial-modules new file mode 100644 index 00000000000..22548f450ae --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/serial-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/serial-modules" diff --git a/installer/ppc64el/modules/ppc64el/squashfs-modules b/installer/ppc64el/modules/ppc64el/squashfs-modules new file mode 100644 index 00000000000..8c0c6d1c2b8 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/squashfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/squashfs-modules" diff --git a/installer/ppc64el/modules/ppc64el/udf-modules b/installer/ppc64el/modules/ppc64el/udf-modules new file mode 100644 index 00000000000..9ab96e02600 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/udf-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/udf-modules" diff --git a/installer/ppc64el/modules/ppc64el/uinput-modules b/installer/ppc64el/modules/ppc64el/uinput-modules new file mode 100644 index 00000000000..3d3929e24ac --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/uinput-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/uinput-modules" diff --git a/installer/ppc64el/modules/ppc64el/usb-modules b/installer/ppc64el/modules/ppc64el/usb-modules new file mode 100644 index 00000000000..45ac3cf89c0 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/usb-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-modules" diff --git a/installer/ppc64el/modules/ppc64el/usb-serial-modules b/installer/ppc64el/modules/ppc64el/usb-serial-modules new file mode 100644 index 00000000000..63a8412e7ea --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/usb-serial-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-serial-modules" diff --git a/installer/ppc64el/modules/ppc64el/usb-storage-modules b/installer/ppc64el/modules/ppc64el/usb-storage-modules new file mode 100644 index 00000000000..1679b922b3a --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/usb-storage-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-storage-modules" diff --git a/installer/ppc64el/modules/ppc64el/virtio-modules b/installer/ppc64el/modules/ppc64el/virtio-modules new file mode 100644 index 00000000000..cbfbd113742 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/virtio-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/virtio-modules" diff --git a/installer/ppc64el/modules/ppc64el/xfs-modules b/installer/ppc64el/modules/ppc64el/xfs-modules new file mode 100644 index 00000000000..5e8a7ce69d9 --- /dev/null +++ b/installer/ppc64el/modules/ppc64el/xfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/xfs-modules" diff --git a/installer/ppc64el/package-list b/installer/ppc64el/package-list new file mode 120000 index 00000000000..a872ee13ea7 --- /dev/null +++ b/installer/ppc64el/package-list @@ -0,0 +1 @@ +../ppc64/package-list \ No newline at end of file diff --git a/installer/s390x/kernel-versions b/installer/s390x/kernel-versions new file mode 100644 index 00000000000..bbe139d5aa7 --- /dev/null +++ b/installer/s390x/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +s390x - s390x - - - diff --git a/installer/s390x/modules/s390x/btrfs-modules b/installer/s390x/modules/s390x/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/s390x/modules/s390x/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/crc-modules b/installer/s390x/modules/s390x/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/s390x/modules/s390x/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/crypto-dm-modules b/installer/s390x/modules/s390x/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/s390x/modules/s390x/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/crypto-modules b/installer/s390x/modules/s390x/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/s390x/modules/s390x/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/dasd-extra-modules b/installer/s390x/modules/s390x/dasd-extra-modules new file mode 100644 index 00000000000..ddd10cdfb11 --- /dev/null +++ b/installer/s390x/modules/s390x/dasd-extra-modules @@ -0,0 +1 @@ +dasd_diag_mod diff --git a/installer/s390x/modules/s390x/dasd-modules b/installer/s390x/modules/s390x/dasd-modules new file mode 100644 index 00000000000..d3df219e70f --- /dev/null +++ b/installer/s390x/modules/s390x/dasd-modules @@ -0,0 +1,2 @@ +dasd_eckd_mod +dasd_fba_mod diff --git a/installer/s390x/modules/s390x/ext4-modules b/installer/s390x/modules/s390x/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/s390x/modules/s390x/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/fat-modules b/installer/s390x/modules/s390x/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/s390x/modules/s390x/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/s390x/modules/s390x/fuse-modules b/installer/s390x/modules/s390x/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/s390x/modules/s390x/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/isofs-modules b/installer/s390x/modules/s390x/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/s390x/modules/s390x/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/kernel-image b/installer/s390x/modules/s390x/kernel-image new file mode 100644 index 00000000000..fd8c3a7721e --- /dev/null +++ b/installer/s390x/modules/s390x/kernel-image @@ -0,0 +1,2 @@ +#include +vmcp ? diff --git a/installer/s390x/modules/s390x/loop-modules b/installer/s390x/modules/s390x/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/s390x/modules/s390x/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/md-modules b/installer/s390x/modules/s390x/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/s390x/modules/s390x/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/s390x/modules/s390x/multipath-modules b/installer/s390x/modules/s390x/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/s390x/modules/s390x/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/nbd-modules b/installer/s390x/modules/s390x/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/s390x/modules/s390x/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/nic-modules b/installer/s390x/modules/s390x/nic-modules new file mode 100644 index 00000000000..32056514d48 --- /dev/null +++ b/installer/s390x/modules/s390x/nic-modules @@ -0,0 +1,6 @@ +netiucv +ctcm +lcs +qeth +qeth_l2 +qeth_l3 diff --git a/installer/s390x/modules/s390x/scsi-core-modules b/installer/s390x/modules/s390x/scsi-core-modules new file mode 100644 index 00000000000..3537f82349a --- /dev/null +++ b/installer/s390x/modules/s390x/scsi-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/s390x/modules/s390x/scsi-modules b/installer/s390x/modules/s390x/scsi-modules new file mode 100644 index 00000000000..1f0171d7e7a --- /dev/null +++ b/installer/s390x/modules/s390x/scsi-modules @@ -0,0 +1 @@ +zfcp diff --git a/installer/s390x/modules/s390x/udf-modules b/installer/s390x/modules/s390x/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/s390x/modules/s390x/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/virtio-modules b/installer/s390x/modules/s390x/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/s390x/modules/s390x/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/modules/s390x/xfs-modules b/installer/s390x/modules/s390x/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/s390x/modules/s390x/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/s390x/modules/s390x/zlib-modules b/installer/s390x/modules/s390x/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/s390x/modules/s390x/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/s390x/package-list b/installer/s390x/package-list new file mode 100644 index 00000000000..74d4691e10a --- /dev/null +++ b/installer/s390x/package-list @@ -0,0 +1,19 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: dasd-modules +Depends: kernel-image +Priority: standard +Description: dasd modules + This package contains dasd modules. + +Package: dasd-extra-modules +Depends: kernel-image, dasd-modules +Priority: extra +Description: optional dasd DIAG support + This package contains the module for dasd DIAG support. The udeb is + not loaded by default as the installer does not actually support this. + It can however be useful to have available in rescue situations. diff --git a/installer/sh4/kernel-versions b/installer/sh4/kernel-versions new file mode 100644 index 00000000000..b39e3cfb6e6 --- /dev/null +++ b/installer/sh4/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +sh4 - sh7751r - y - +sh4 - sh7785lcr - y - diff --git a/installer/sh4/modules/sh4-sh7751r/btrfs-modules b/installer/sh4/modules/sh4-sh7751r/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/cdrom-core-modules b/installer/sh4/modules/sh4-sh7751r/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sh4/modules/sh4-sh7751r/crc-modules b/installer/sh4/modules/sh4-sh7751r/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/crypto-dm-modules b/installer/sh4/modules/sh4-sh7751r/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/crypto-modules b/installer/sh4/modules/sh4-sh7751r/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/ext4-modules b/installer/sh4/modules/sh4-sh7751r/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/fat-modules b/installer/sh4/modules/sh4-sh7751r/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/firewire-core-modules b/installer/sh4/modules/sh4-sh7751r/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/fuse-modules b/installer/sh4/modules/sh4-sh7751r/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/i2c-modules b/installer/sh4/modules/sh4-sh7751r/i2c-modules new file mode 100644 index 00000000000..203a607e73c --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/i2c-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/isofs-modules b/installer/sh4/modules/sh4-sh7751r/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/jfs-modules b/installer/sh4/modules/sh4-sh7751r/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/kernel-image b/installer/sh4/modules/sh4-sh7751r/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/loop-modules b/installer/sh4/modules/sh4-sh7751r/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/md-modules b/installer/sh4/modules/sh4-sh7751r/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/minix-modules b/installer/sh4/modules/sh4-sh7751r/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/multipath-modules b/installer/sh4/modules/sh4-sh7751r/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/nbd-modules b/installer/sh4/modules/sh4-sh7751r/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/nic-modules b/installer/sh4/modules/sh4-sh7751r/nic-modules new file mode 100644 index 00000000000..67761a69cc7 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/nic-modules @@ -0,0 +1,6 @@ +3c59x ? +8139too ? +e100 ? +e1000 ? +ne2k-pci ? +r8169 ? diff --git a/installer/sh4/modules/sh4-sh7751r/nic-usb-modules b/installer/sh4/modules/sh4-sh7751r/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/pata-modules b/installer/sh4/modules/sh4-sh7751r/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/ppp-modules b/installer/sh4/modules/sh4-sh7751r/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/sata-modules b/installer/sh4/modules/sh4-sh7751r/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/sound-modules b/installer/sh4/modules/sh4-sh7751r/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/speakup-modules b/installer/sh4/modules/sh4-sh7751r/speakup-modules new file mode 100644 index 00000000000..29592721a7a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/speakup-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/squashfs-modules b/installer/sh4/modules/sh4-sh7751r/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/udf-modules b/installer/sh4/modules/sh4-sh7751r/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/usb-serial-modules b/installer/sh4/modules/sh4-sh7751r/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/usb-storage-modules b/installer/sh4/modules/sh4-sh7751r/usb-storage-modules new file mode 100644 index 00000000000..8c5e81b55e3 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/usb-storage-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/virtio-modules b/installer/sh4/modules/sh4-sh7751r/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/xfs-modules b/installer/sh4/modules/sh4-sh7751r/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7751r/zlib-modules b/installer/sh4/modules/sh4-sh7751r/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/sh4/modules/sh4-sh7751r/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/btrfs-modules b/installer/sh4/modules/sh4-sh7785lcr/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/cdrom-core-modules b/installer/sh4/modules/sh4-sh7785lcr/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sh4/modules/sh4-sh7785lcr/crc-modules b/installer/sh4/modules/sh4-sh7785lcr/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/crypto-dm-modules b/installer/sh4/modules/sh4-sh7785lcr/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/crypto-modules b/installer/sh4/modules/sh4-sh7785lcr/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/ext4-modules b/installer/sh4/modules/sh4-sh7785lcr/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/fat-modules b/installer/sh4/modules/sh4-sh7785lcr/fat-modules new file mode 100644 index 00000000000..274584eb65f --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/fat-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/firewire-core-modules b/installer/sh4/modules/sh4-sh7785lcr/firewire-core-modules new file mode 100644 index 00000000000..dcac80af965 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/firewire-core-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/fuse-modules b/installer/sh4/modules/sh4-sh7785lcr/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/isofs-modules b/installer/sh4/modules/sh4-sh7785lcr/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/jfs-modules b/installer/sh4/modules/sh4-sh7785lcr/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/kernel-image b/installer/sh4/modules/sh4-sh7785lcr/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/loop-modules b/installer/sh4/modules/sh4-sh7785lcr/loop-modules new file mode 100644 index 00000000000..c1c948fa331 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/loop-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/md-modules b/installer/sh4/modules/sh4-sh7785lcr/md-modules new file mode 100644 index 00000000000..26115e10b80 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/md-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/minix-modules b/installer/sh4/modules/sh4-sh7785lcr/minix-modules new file mode 100644 index 00000000000..82b9843720a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/minix-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/multipath-modules b/installer/sh4/modules/sh4-sh7785lcr/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/nbd-modules b/installer/sh4/modules/sh4-sh7785lcr/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/nic-modules b/installer/sh4/modules/sh4-sh7785lcr/nic-modules new file mode 100644 index 00000000000..67761a69cc7 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/nic-modules @@ -0,0 +1,6 @@ +3c59x ? +8139too ? +e100 ? +e1000 ? +ne2k-pci ? +r8169 ? diff --git a/installer/sh4/modules/sh4-sh7785lcr/nic-usb-modules b/installer/sh4/modules/sh4-sh7785lcr/nic-usb-modules new file mode 100644 index 00000000000..c479669b477 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/nic-usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/pata-modules b/installer/sh4/modules/sh4-sh7785lcr/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/ppp-modules b/installer/sh4/modules/sh4-sh7785lcr/ppp-modules new file mode 100644 index 00000000000..1f26aa1ee60 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/ppp-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/sata-modules b/installer/sh4/modules/sh4-sh7785lcr/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/sound-modules b/installer/sh4/modules/sh4-sh7785lcr/sound-modules new file mode 100644 index 00000000000..68395ab3d99 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/sound-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/speakup-modules b/installer/sh4/modules/sh4-sh7785lcr/speakup-modules new file mode 100644 index 00000000000..29592721a7a --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/speakup-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/squashfs-modules b/installer/sh4/modules/sh4-sh7785lcr/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/udf-modules b/installer/sh4/modules/sh4-sh7785lcr/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/usb-serial-modules b/installer/sh4/modules/sh4-sh7785lcr/usb-serial-modules new file mode 100644 index 00000000000..c0a0dc3bd17 --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/usb-serial-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/xfs-modules b/installer/sh4/modules/sh4-sh7785lcr/xfs-modules new file mode 100644 index 00000000000..98374e2bbaf --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/xfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/modules/sh4-sh7785lcr/zlib-modules b/installer/sh4/modules/sh4-sh7785lcr/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/sh4/modules/sh4-sh7785lcr/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sh4/package-list b/installer/sh4/package-list new file mode 100644 index 00000000000..934de9c7f8b --- /dev/null +++ b/installer/sh4/package-list @@ -0,0 +1,7 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: event-modules, fb-modules, input-modules, mouse-modules, nic-shared-modules, rtc-modules, uinput-modules, usb-modules diff --git a/installer/sparc64/kernel-versions b/installer/sparc64/kernel-versions new file mode 100644 index 00000000000..4811933864c --- /dev/null +++ b/installer/sparc64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +sparc64 - sparc64 - y - diff --git a/installer/sparc64/modules/sparc64/ata-modules b/installer/sparc64/modules/sparc64/ata-modules new file mode 100644 index 00000000000..b81c0f38b74 --- /dev/null +++ b/installer/sparc64/modules/sparc64/ata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/btrfs-modules b/installer/sparc64/modules/sparc64/btrfs-modules new file mode 100644 index 00000000000..e261e138838 --- /dev/null +++ b/installer/sparc64/modules/sparc64/btrfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/cdrom-core-modules b/installer/sparc64/modules/sparc64/cdrom-core-modules new file mode 100644 index 00000000000..e264d7aa348 --- /dev/null +++ b/installer/sparc64/modules/sparc64/cdrom-core-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/crc-modules b/installer/sparc64/modules/sparc64/crc-modules new file mode 100644 index 00000000000..7e00de705e4 --- /dev/null +++ b/installer/sparc64/modules/sparc64/crc-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/crypto-dm-modules b/installer/sparc64/modules/sparc64/crypto-dm-modules new file mode 100644 index 00000000000..4c8f2354cd2 --- /dev/null +++ b/installer/sparc64/modules/sparc64/crypto-dm-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/crypto-modules b/installer/sparc64/modules/sparc64/crypto-modules new file mode 100644 index 00000000000..3a1e862b4cc --- /dev/null +++ b/installer/sparc64/modules/sparc64/crypto-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/ext4-modules b/installer/sparc64/modules/sparc64/ext4-modules new file mode 100644 index 00000000000..394c577ce40 --- /dev/null +++ b/installer/sparc64/modules/sparc64/ext4-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/fat-modules b/installer/sparc64/modules/sparc64/fat-modules new file mode 100644 index 00000000000..cce8fd30ca4 --- /dev/null +++ b/installer/sparc64/modules/sparc64/fat-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/fuse-modules b/installer/sparc64/modules/sparc64/fuse-modules new file mode 100644 index 00000000000..0b6ba0c8c8f --- /dev/null +++ b/installer/sparc64/modules/sparc64/fuse-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/input-modules b/installer/sparc64/modules/sparc64/input-modules new file mode 100644 index 00000000000..5ecb595a4a4 --- /dev/null +++ b/installer/sparc64/modules/sparc64/input-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/isofs-modules b/installer/sparc64/modules/sparc64/isofs-modules new file mode 100644 index 00000000000..da4fa9a3c77 --- /dev/null +++ b/installer/sparc64/modules/sparc64/isofs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/jfs-modules b/installer/sparc64/modules/sparc64/jfs-modules new file mode 100644 index 00000000000..7e4d912b952 --- /dev/null +++ b/installer/sparc64/modules/sparc64/jfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/kernel-image b/installer/sparc64/modules/sparc64/kernel-image new file mode 100644 index 00000000000..1d11b1921da --- /dev/null +++ b/installer/sparc64/modules/sparc64/kernel-image @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/md-modules b/installer/sparc64/modules/sparc64/md-modules new file mode 100644 index 00000000000..ade088ddbb2 --- /dev/null +++ b/installer/sparc64/modules/sparc64/md-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/multipath-modules b/installer/sparc64/modules/sparc64/multipath-modules new file mode 100644 index 00000000000..a8b69b2537a --- /dev/null +++ b/installer/sparc64/modules/sparc64/multipath-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/nbd-modules b/installer/sparc64/modules/sparc64/nbd-modules new file mode 100644 index 00000000000..3c9b3e5d426 --- /dev/null +++ b/installer/sparc64/modules/sparc64/nbd-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/nic-modules b/installer/sparc64/modules/sparc64/nic-modules new file mode 100644 index 00000000000..ed625047dc1 --- /dev/null +++ b/installer/sparc64/modules/sparc64/nic-modules @@ -0,0 +1,50 @@ +3c59x +8139too +8390 +b44 +dl2k +epic100 +eql +fealnx +mii +natsemi +ne2k-pci +ns83820 +pcnet32 +sis900 +starfire +sundance +typhoon +via-rhine +yellowfin +e100 +e1000 +e1000e +skfp +tg3 +sungem +sungem_phy +tulip +winbond-840 +dmfe +sunhme +sunqe +sunlance +sunbmac +myri_sbus ? +cassini +cxgb +sis190 +skge +uli526x +qla3xxx +atl1 +niu +igb +igbvf + +# Support for virtual network devices under Sun Logical Domains. +sunvnet ? + +pps_core +ptp diff --git a/installer/sparc64/modules/sparc64/pata-modules b/installer/sparc64/modules/sparc64/pata-modules new file mode 100644 index 00000000000..b0cd6337a28 --- /dev/null +++ b/installer/sparc64/modules/sparc64/pata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/ppp-modules b/installer/sparc64/modules/sparc64/ppp-modules new file mode 100644 index 00000000000..f1ae9b3d15a --- /dev/null +++ b/installer/sparc64/modules/sparc64/ppp-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/sata-modules b/installer/sparc64/modules/sparc64/sata-modules new file mode 100644 index 00000000000..01318c258b5 --- /dev/null +++ b/installer/sparc64/modules/sparc64/sata-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/scsi-core-modules b/installer/sparc64/modules/sparc64/scsi-core-modules new file mode 100644 index 00000000000..6026fdf46e6 --- /dev/null +++ b/installer/sparc64/modules/sparc64/scsi-core-modules @@ -0,0 +1,6 @@ +#include + +# Support for virtual disk devices as a client under Sun Logical Domains. +# Does not really belong here, but it's better than adding a new kernel +# udeb just for this module. +sunvdc ? diff --git a/installer/sparc64/modules/sparc64/scsi-modules b/installer/sparc64/modules/sparc64/scsi-modules new file mode 100644 index 00000000000..afceaf8ecfe --- /dev/null +++ b/installer/sparc64/modules/sparc64/scsi-modules @@ -0,0 +1,27 @@ +3w-9xxx +3w-xxxx +aacraid +aic79xx +aic7xxx +aic94xx +arcmsr +atp870u ? +dc395x +dmx3191d +hptiop +initio +ipr +lpfc +megaraid +megaraid_sas +mpt3sas +mptsas +mptspi +osst +qla1280 ? +qla2xxx ? +qla4xxx ? +qlogicpti ? +stex +sun_esp +sym53c8xx diff --git a/installer/sparc64/modules/sparc64/squashfs-modules b/installer/sparc64/modules/sparc64/squashfs-modules new file mode 100644 index 00000000000..42d77887ad3 --- /dev/null +++ b/installer/sparc64/modules/sparc64/squashfs-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/udf-modules b/installer/sparc64/modules/sparc64/udf-modules new file mode 100644 index 00000000000..b90d7ee9b52 --- /dev/null +++ b/installer/sparc64/modules/sparc64/udf-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/usb-modules b/installer/sparc64/modules/sparc64/usb-modules new file mode 100644 index 00000000000..c598dedd811 --- /dev/null +++ b/installer/sparc64/modules/sparc64/usb-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/usb-storage-modules b/installer/sparc64/modules/sparc64/usb-storage-modules new file mode 100644 index 00000000000..272d95e2e8b --- /dev/null +++ b/installer/sparc64/modules/sparc64/usb-storage-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/virtio-modules b/installer/sparc64/modules/sparc64/virtio-modules new file mode 100644 index 00000000000..61da39659c6 --- /dev/null +++ b/installer/sparc64/modules/sparc64/virtio-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/modules/sparc64/xfs-modules b/installer/sparc64/modules/sparc64/xfs-modules new file mode 100644 index 00000000000..c020b5d399f --- /dev/null +++ b/installer/sparc64/modules/sparc64/xfs-modules @@ -0,0 +1,2 @@ +#include + diff --git a/installer/sparc64/modules/sparc64/zlib-modules b/installer/sparc64/modules/sparc64/zlib-modules new file mode 100644 index 00000000000..e02ad64bf9c --- /dev/null +++ b/installer/sparc64/modules/sparc64/zlib-modules @@ -0,0 +1 @@ +#include diff --git a/installer/sparc64/package-list b/installer/sparc64/package-list new file mode 100644 index 00000000000..1e5e2f638fd --- /dev/null +++ b/installer/sparc64/package-list @@ -0,0 +1,15 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# + +Package: nic-modules +Priority: standard +Description: Network card modules for Sparc kernels + This package contains the drivers for the Happy Meal/Big Mac 10/100BaseT, + Sun QuadEthernet and MyriCOM Gigabit Ethernet SBus devices for SPARC + systems, as well as various PCI NIC drivers (only on sparc64.) + . + Do not install this package on a real Debian system! You probably + want a kernel-image package instead. diff --git a/lib/python/debian_linux/__init__.py b/lib/python/debian_linux/__init__.py new file mode 100644 index 00000000000..b785cebf710 --- /dev/null +++ b/lib/python/debian_linux/__init__.py @@ -0,0 +1 @@ +# Module diff --git a/lib/python/debian_linux/abi.py b/lib/python/debian_linux/abi.py new file mode 100644 index 00000000000..0c4b3bdbc7c --- /dev/null +++ b/lib/python/debian_linux/abi.py @@ -0,0 +1,42 @@ +class Symbol(object): + def __init__(self, name, module, version, export): + self.name, self.module = name, module + self.version, self.export = version, export + + def __eq__(self, other): + if not isinstance(other, Symbol): + return NotImplemented + + # Symbols are resolved to modules by depmod at installation/ + # upgrade time, not compile time, so moving a symbol between + # modules is not an ABI change. Compare everything else. + if self.name != other.name: + return False + if self.version != other.version: + return False + if self.export != other.export: + return False + + return True + + def __ne__(self, other): + ret = self.__eq__(other) + if ret is NotImplemented: + return ret + return not ret + + +class Symbols(dict): + def __init__(self, file=None): + if file: + self.read(file) + + def read(self, file): + for line in file: + version, name, module, export = line.strip().split() + self[name] = Symbol(name, module, version, export) + + def write(self, file): + for s in sorted(self.values(), key=lambda i: i.name): + file.write("%s %s %s %s\n" % + (s.version, s.name, s.module, s.export)) diff --git a/lib/python/debian_linux/config.py b/lib/python/debian_linux/config.py new file mode 100644 index 00000000000..004469af8fa --- /dev/null +++ b/lib/python/debian_linux/config.py @@ -0,0 +1,260 @@ +import collections +import os +import os.path +import pickle +import re +import sys +import textwrap + +from configparser import RawConfigParser + +__all__ = [ + 'ConfigCoreDump', + 'ConfigCoreHierarchy', + 'ConfigParser', +] + + +class SchemaItemBoolean(object): + def __call__(self, i): + i = i.strip().lower() + if i in ("true", "1"): + return True + if i in ("false", "0"): + return False + raise Error + + +class SchemaItemInteger(object): + def __call__(self, i): + try: + return int(i.strip(), 0) + except ValueError: + raise Error + + +class SchemaItemList(object): + def __init__(self, type="\s+"): + self.type = type + + def __call__(self, i): + i = i.strip() + if not i: + return [] + return [j.strip() for j in re.split(self.type, i)] + + +# Using OrderedDict instead of dict makes the pickled config reproducible +class ConfigCore(collections.OrderedDict): + def get_merge(self, section, arch, featureset, flavour, key, default=None): + temp = [] + + if arch and featureset and flavour: + temp.append(self.get((section, arch, featureset, flavour), {}).get(key)) + temp.append(self.get((section, arch, None, flavour), {}).get(key)) + if arch and featureset: + temp.append(self.get((section, arch, featureset), {}).get(key)) + if arch: + temp.append(self.get((section, arch), {}).get(key)) + if featureset: + temp.append(self.get((section, None, featureset), {}).get(key)) + temp.append(self.get((section,), {}).get(key)) + + ret = [] + + for i in temp: + if i is None: + continue + elif isinstance(i, (list, tuple)): + ret.extend(i) + elif ret: + # TODO + return ret + else: + return i + + return ret or default + + def merge(self, section, arch=None, featureset=None, flavour=None): + ret = {} + ret.update(self.get((section,), {})) + if featureset: + ret.update(self.get((section, None, featureset), {})) + if arch: + ret.update(self.get((section, arch), {})) + if arch and featureset: + ret.update(self.get((section, arch, featureset), {})) + if arch and featureset and flavour: + ret.update(self.get((section, arch, None, flavour), {})) + ret.update(self.get((section, arch, featureset, flavour), {})) + return ret + + def dump(self, fp): + pickle.dump(self, fp, 0) + + +class ConfigCoreDump(object): + def __new__(self, fp): + return pickle.load(fp) + + +class ConfigCoreHierarchy(object): + schema_base = { + 'base': { + 'arches': SchemaItemList(), + 'enabled': SchemaItemBoolean(), + 'featuresets': SchemaItemList(), + 'flavours': SchemaItemList(), + }, + } + + def __new__(cls, schema, dirs=[]): + schema_complete = cls.schema_base.copy() + for key, value in schema.items(): + schema_complete.setdefault(key, {}).update(value) + return cls.Reader(dirs, schema_complete)() + + class Reader(object): + config_name = "defines" + + def __init__(self, dirs, schema): + self.dirs, self.schema = dirs, schema + + def __call__(self): + ret = ConfigCore() + self.read(ret) + return ret + + def get_files(self, *dirs): + dirs = list(dirs) + dirs.append(self.config_name) + return (os.path.join(i, *dirs) for i in self.dirs if i) + + def read_arch(self, ret, arch): + config = ConfigParser(self.schema) + config.read(self.get_files(arch)) + + featuresets = config['base', ].get('featuresets', []) + flavours = config['base', ].get('flavours', []) + + for section in iter(config): + if section[0] in featuresets: + real = (section[-1], arch, section[0]) + elif len(section) > 1: + real = (section[-1], arch, None) + section[:-1] + else: + real = (section[-1], arch) + section[:-1] + s = ret.get(real, {}) + s.update(config[section]) + ret[tuple(real)] = s + + for featureset in featuresets: + self.read_arch_featureset(ret, arch, featureset) + + if flavours: + base = ret['base', arch] + featuresets.insert(0, 'none') + base['featuresets'] = featuresets + del base['flavours'] + ret['base', arch] = base + ret['base', arch, 'none'] = {'flavours': flavours, 'implicit-flavour': True} + + def read_arch_featureset(self, ret, arch, featureset): + config = ConfigParser(self.schema) + config.read(self.get_files(arch, featureset)) + + flavours = config['base', ].get('flavours', []) + + for section in iter(config): + real = (section[-1], arch, featureset) + section[:-1] + s = ret.get(real, {}) + s.update(config[section]) + ret[tuple(real)] = s + + def read(self, ret): + config = ConfigParser(self.schema) + config.read(self.get_files()) + + arches = config['base', ]['arches'] + featuresets = config['base', ].get('featuresets', []) + + for section in iter(config): + if section[0].startswith('featureset-'): + real = (section[-1], None, section[0][11:]) + else: + real = (section[-1],) + section[1:] + ret[real] = config[section] + + for arch in arches: + self.read_arch(ret, arch) + for featureset in featuresets: + self.read_featureset(ret, featureset) + + def read_featureset(self, ret, featureset): + config = ConfigParser(self.schema) + config.read(self.get_files('featureset-%s' % featureset)) + + for section in iter(config): + real = (section[-1], None, featureset) + s = ret.get(real, {}) + s.update(config[section]) + ret[real] = s + + +class ConfigParser(object): + __slots__ = '_config', 'schemas' + + def __init__(self, schemas): + self.schemas = schemas + + self._config = config = RawConfigParser() + + def __getitem__(self, key): + return self._convert()[key] + + def __iter__(self): + return iter(self._convert()) + + def __str__(self): + return '<%s(%s)>' % (self.__class__.__name__, self._convert()) + + def _convert(self): + ret = {} + for section in self._config.sections(): + data = {} + for key, value in self._config.items(section): + data[key] = value + section_list = section.split('_') + section_base = section_list[-1] + if section_base in self.schemas: + section_ret = tuple(section_list) + data = self._convert_one(self.schemas[section_base], data) + else: + section_ret = (section, ) + ret[section_ret] = data + return ret + + def _convert_one(self, schema, data): + ret = {} + for key, value in data.items(): + if key in schema: + value = schema[key](value) + ret[key] = value + return ret + + def keys(self): + return self._convert().keys() + + def read(self, data): + return self._config.read(data) + + +if __name__ == '__main__': + import sys + sys.path.append('debian/lib/python') + config = ConfigCoreDump(open('debian/config.defines.dump', 'rb')) + for section, items in sorted(config.items(), key=lambda a:tuple(i or '' for i in a[0])): + print(u"[%s]" % (section,)) + for item, value in sorted(items.items()): + print(u"%s: %s" % (item, value)) + print() diff --git a/lib/python/debian_linux/debian.py b/lib/python/debian_linux/debian.py new file mode 100644 index 00000000000..92576d10a49 --- /dev/null +++ b/lib/python/debian_linux/debian.py @@ -0,0 +1,467 @@ +import collections +import os.path +import re + +from . import utils + + +class Changelog(list): + _rules = r""" +^ +(?P + \w[-+0-9a-z.]+ +) +\ +\( +(?P + [^\(\)\ \t]+ +) +\) +\s+ +(?P + [-+0-9a-zA-Z.]+ +) +\;\s+urgency= +(?P + \w+ +) +""" + _re = re.compile(_rules, re.X) + + class Entry(object): + __slot__ = 'distribution', 'source', 'version', 'urgency' + + def __init__(self, distribution, source, version, urgency): + self.distribution, self.source, self.version, self.urgency = \ + distribution, source, version, urgency + + def __init__(self, dir='', version=None): + if version is None: + version = Version + f = open(os.path.join(dir, "debian/changelog"), encoding="UTF-8") + while True: + line = f.readline() + if not line: + break + match = self._re.match(line) + if not match: + continue + try: + v = version(match.group('version')) + except Exception: + if not len(self): + raise + v = Version(match.group('version')) + self.append(self.Entry(match.group('distribution'), + match.group('source'), v, + match.group('urgency'))) + + +class Version(object): + _version_rules = r""" +^ +(?: + (?P + \d+ + ) + : +)? +(?P + .+? +) +(?: + - + (?P[^-]+) +)? +$ +""" + _version_re = re.compile(_version_rules, re.X) + + def __init__(self, version): + match = self._version_re.match(version) + if match is None: + raise RuntimeError(u"Invalid debian version") + self.epoch = None + if match.group("epoch") is not None: + self.epoch = int(match.group("epoch")) + self.upstream = match.group("upstream") + self.revision = match.group("revision") + + def __str__(self): + return self.complete + + @property + def complete(self): + if self.epoch is not None: + return u"%d:%s" % (self.epoch, self.complete_noepoch) + return self.complete_noepoch + + @property + def complete_noepoch(self): + if self.revision is not None: + return u"%s-%s" % (self.upstream, self.revision) + return self.upstream + + @property + def debian(self): + from warnings import warn + warn(u"debian argument was replaced by revision", DeprecationWarning, stacklevel=2) + return self.revision + + +class VersionLinux(Version): + _version_linux_rules = r""" +^ +(?P + \d+\.\d+ +) +(?P + (?:\.\d+)? + (?:-[a-z]+\d+)? +) +(?: + ~ + (?P + .+? + ) +)? +(?: + \.dfsg\. + (?P + \d+ + ) +)? +- +\d+ +(\.\d+)? +(?: + (?P + ~exp\d+ + ) + | + (?P + [~+]deb\d+u\d+ + )? + (?P + ~bpo\d+\+\d+ + )? + | + (?P + [^-]+ + ) +) +$ +""" + _version_linux_re = re.compile(_version_linux_rules, re.X) + + def __init__(self, version): + super(VersionLinux, self).__init__(version) + match = self._version_linux_re.match(version) + if match is None: + raise RuntimeError(u"Invalid debian linux version") + d = match.groupdict() + self.linux_modifier = d['modifier'] + self.linux_version = d['version'] + if d['modifier'] is not None: + assert not d['update'] + self.linux_upstream = '-'.join((d['version'], d['modifier'])) + else: + self.linux_upstream = d['version'] + self.linux_upstream_full = self.linux_upstream + d['update'] + self.linux_dfsg = d['dfsg'] + self.linux_revision_experimental = match.group('revision_experimental') and True + self.linux_revision_security = match.group('revision_security') and True + self.linux_revision_backports = match.group('revision_backports') and True + self.linux_revision_other = match.group('revision_other') and True + + +class PackageArchitecture(collections.MutableSet): + __slots__ = '_data' + + def __init__(self, value=None): + self._data = set() + if value: + self.extend(value) + + def __contains__(self, value): + return self._data.__contains__(value) + + def __iter__(self): + return self._data.__iter__() + + def __len__(self): + return self._data.__len__() + + def __str__(self): + return ' '.join(sorted(self)) + + def add(self, value): + self._data.add(value) + + def discard(self, value): + self._data.discard(value) + + def extend(self, value): + if isinstance(value, str): + for i in re.split('\s', value.strip()): + self.add(i) + else: + raise RuntimeError + + +class PackageDescription(object): + __slots__ = "short", "long" + + def __init__(self, value=None): + self.short = [] + self.long = [] + if value is not None: + desc_split = value.split("\n", 1) + self.append_short(desc_split[0]) + if len(desc_split) == 2: + self.append(desc_split[1]) + + def __str__(self): + wrap = utils.TextWrapper(width=74, fix_sentence_endings=True).wrap + short = ', '.join(self.short) + long_pars = [] + for i in self.long: + long_pars.append(wrap(i)) + long = '\n .\n '.join(['\n '.join(i) for i in long_pars]) + return short + '\n ' + long if long else short + + def append(self, str): + str = str.strip() + if str: + self.long.extend(str.split(u"\n.\n")) + + def append_short(self, str): + for i in [i.strip() for i in str.split(u",")]: + if i: + self.short.append(i) + + def extend(self, desc): + if isinstance(desc, PackageDescription): + self.short.extend(desc.short) + self.long.extend(desc.long) + else: + raise TypeError + + +class PackageRelation(list): + def __init__(self, value=None, override_arches=None): + if value: + self.extend(value, override_arches) + + def __str__(self): + return ', '.join(str(i) for i in self) + + def _search_value(self, value): + for i in self: + if i._search_value(value): + return i + return None + + def append(self, value, override_arches=None): + if isinstance(value, str): + value = PackageRelationGroup(value, override_arches) + elif not isinstance(value, PackageRelationGroup): + raise ValueError(u"got %s" % type(value)) + j = self._search_value(value) + if j: + j._update_arches(value) + else: + super(PackageRelation, self).append(value) + + def extend(self, value, override_arches=None): + if isinstance(value, str): + value = (j.strip() for j in re.split(',', value.strip())) + for i in value: + self.append(i, override_arches) + + +class PackageRelationGroup(list): + def __init__(self, value=None, override_arches=None): + if value: + self.extend(value, override_arches) + + def __str__(self): + return ' | '.join(str(i) for i in self) + + def _search_value(self, value): + for i, j in zip(self, value): + if i.name != j.name or i.operator != j.operator or \ + i.version != j.version or i.restrictions != j.restrictions: + return None + return self + + def _update_arches(self, value): + for i, j in zip(self, value): + if i.arches: + for arch in j.arches: + if arch not in i.arches: + i.arches.append(arch) + + def append(self, value, override_arches=None): + if isinstance(value, str): + value = PackageRelationEntry(value, override_arches) + elif not isinstance(value, PackageRelationEntry): + raise ValueError + super(PackageRelationGroup, self).append(value) + + def extend(self, value, override_arches=None): + if isinstance(value, str): + value = (j.strip() for j in re.split('\|', value.strip())) + for i in value: + self.append(i, override_arches) + + +class PackageRelationEntry(object): + __slots__ = "name", "operator", "version", "arches", "restrictions" + + _re = re.compile(r'^(\S+)(?: \((<<|<=|=|!=|>=|>>)\s*([^)]+)\))?(?: \[([^]]+)\])?(?: <([^>]+)>)?$') + + class _operator(object): + OP_LT = 1 + OP_LE = 2 + OP_EQ = 3 + OP_NE = 4 + OP_GE = 5 + OP_GT = 6 + + operators = { + '<<': OP_LT, + '<=': OP_LE, + '=': OP_EQ, + '!=': OP_NE, + '>=': OP_GE, + '>>': OP_GT, + } + + operators_neg = { + OP_LT: OP_GE, + OP_LE: OP_GT, + OP_EQ: OP_NE, + OP_NE: OP_EQ, + OP_GE: OP_LT, + OP_GT: OP_LE, + } + + operators_text = dict((b, a) for a, b in operators.items()) + + __slots__ = '_op', + + def __init__(self, value): + self._op = self.operators[value] + + def __neg__(self): + return self.__class__(self.operators_text[self.operators_neg[self._op]]) + + def __str__(self): + return self.operators_text[self._op] + + def __eq__(self, other): + return type(other) == type(self) and self._op == other._op + + def __init__(self, value=None, override_arches=None): + if not isinstance(value, str): + raise ValueError + + self.parse(value) + + if override_arches: + self.arches = list(override_arches) + + def __str__(self): + ret = [self.name] + if self.operator is not None and self.version is not None: + ret.extend((' (', str(self.operator), ' ', self.version, ')')) + if self.arches: + ret.extend((' [', ' '.join(self.arches), ']')) + if self.restrictions: + ret.extend((' <', ' '.join(self.restrictions), '>')) + return ''.join(ret) + + def parse(self, value): + match = self._re.match(value) + if match is None: + raise RuntimeError(u"Can't parse dependency %s" % value) + match = match.groups() + self.name = match[0] + if match[1] is not None: + self.operator = self._operator(match[1]) + else: + self.operator = None + self.version = match[2] + if match[3] is not None: + self.arches = re.split('\s+', match[3]) + else: + self.arches = [] + if match[4] is not None: + self.restrictions = re.split('\s+', match[4]) + else: + self.restrictions = [] + + +class _ControlFileDict(dict): + def __setitem__(self, key, value): + try: + cls = self._fields[key] + if not isinstance(value, cls): + value = cls(value) + except KeyError: + pass + super(_ControlFileDict, self).__setitem__(key, value) + + def keys(self): + keys = set(super(_ControlFileDict, self).keys()) + for i in self._fields.keys(): + if i in self: + keys.remove(i) + yield i + for i in sorted(list(keys)): + yield i + + def items(self): + for i in self.keys(): + yield (i, self[i]) + + def values(self): + for i in self.keys(): + yield self[i] + + +class Package(_ControlFileDict): + _fields = collections.OrderedDict(( + ('Package', str), + ('Source', str), + ('Architecture', PackageArchitecture), + ('Section', str), + ('Priority', str), + ('Maintainer', str), + ('Uploaders', str), + ('Standards-Version', str), + ('Build-Depends', PackageRelation), + ('Build-Depends-Indep', PackageRelation), + ('Provides', PackageRelation), + ('Pre-Depends', PackageRelation), + ('Depends', PackageRelation), + ('Recommends', PackageRelation), + ('Suggests', PackageRelation), + ('Replaces', PackageRelation), + ('Breaks', PackageRelation), + ('Conflicts', PackageRelation), + ('Description', PackageDescription), + )) + + +class TestsControl(_ControlFileDict): + _fields = collections.OrderedDict(( + ('Tests', str), + ('Test-Command', str), + ('Restrictions', str), + ('Features', str), + ('Depends', PackageRelation), + ('Tests-Directory', str), + ('Classes', str), + )) diff --git a/lib/python/debian_linux/firmware.py b/lib/python/debian_linux/firmware.py new file mode 100644 index 00000000000..ece3743d395 --- /dev/null +++ b/lib/python/debian_linux/firmware.py @@ -0,0 +1,89 @@ +import re + + +class FirmwareFile(object): + def __init__(self, binary, desc=None, source=None, version=None): + self.binary = binary + self.desc = desc + self.source = source + self.version = version + + +class FirmwareSection(object): + def __init__(self, driver, files, licence): + self.driver = driver + self.files = files + self.licence = licence + + +class FirmwareWhence(list): + def __init__(self, file): + self.read(file) + + def read(self, file): + in_header = True + driver = None + files = {} + licence = None + binary = [] + desc = None + source = [] + version = None + + for line in file: + if line.startswith('----------'): + if in_header: + in_header = False + else: + # Finish old section + if driver: + self.append(FirmwareSection(driver, files, licence)) + driver = None + files = {} + licence = None + continue + + if in_header: + continue + + if line == '\n': + # End of field; end of file fields + for b in binary: + # XXX The WHENCE file isn't yet consistent in its + # association of binaries and their sources and + # metadata. This associates all sources and + # metadata in a group with each binary. + files[b] = FirmwareFile(b, desc, source, version) + binary = [] + desc = None + source = [] + version = None + continue + + match = re.match( + r'(Driver|File|Info|Licen[cs]e|Source|Version' + r'|Original licen[cs]e info(?:rmation)?):\s*(.*)\n', + line) + if match: + keyword, value = match.group(1, 2) + if keyword == 'Driver': + driver = value.split(' ')[0].lower() + elif keyword == 'File': + match = re.match(r'(\S+)(?:\s+--\s+(.*))?', value) + binary.append(match.group(1)) + desc = match.group(2) + elif keyword in ['Info', 'Version']: + version = value + elif keyword == 'Source': + source.append(value) + else: + licence = value + elif licence is not None: + licence = (licence + '\n' + + re.sub(r'^(?:[/ ]\*| \*/)?\s*(.*?)\s*$', r'\1', line)) + + # Finish last section if non-empty + for b in binary: + files[b] = FirmwareFile(b, desc, source, version) + if driver: + self.append(FirmwareSection(driver, files, licence)) diff --git a/lib/python/debian_linux/gencontrol.py b/lib/python/debian_linux/gencontrol.py new file mode 100644 index 00000000000..370dccb2692 --- /dev/null +++ b/lib/python/debian_linux/gencontrol.py @@ -0,0 +1,355 @@ +import codecs +from collections import OrderedDict + +from .debian import * + + +class PackagesList(OrderedDict): + def append(self, package): + self[package['Package']] = package + + def extend(self, packages): + for package in packages: + self[package['Package']] = package + + +class Makefile(object): + def __init__(self): + self.rules = {} + self.add('.NOTPARALLEL') + + def add(self, name, deps=None, cmds=None): + if name in self.rules: + self.rules[name].add(deps, cmds) + else: + self.rules[name] = self.Rule(name, deps, cmds) + if deps is not None: + for i in deps: + if i not in self.rules: + self.rules[i] = self.Rule(i) + + def write(self, out): + for i in sorted(self.rules.keys()): + self.rules[i].write(out) + + class Rule(object): + def __init__(self, name, deps=None, cmds=None): + self.name = name + self.deps, self.cmds = set(), [] + self.add(deps, cmds) + + def add(self, deps=None, cmds=None): + if deps is not None: + self.deps.update(deps) + if cmds is not None: + self.cmds.append(cmds) + + def write(self, out): + deps_string = '' + if self.deps: + deps = list(self.deps) + deps.sort() + deps_string = ' ' + ' '.join(deps) + + if self.cmds: + if deps_string: + out.write('%s::%s\n' % (self.name, deps_string)) + for c in self.cmds: + out.write('%s::\n' % self.name) + for i in c: + out.write('\t%s\n' % i) + else: + out.write('%s:%s\n' % (self.name, deps_string)) + + +class MakeFlags(dict): + def __repr__(self): + repr = super(flags, self).__repr__() + return "%s(%s)" % (self.__class__.__name__, repr) + + def __str__(self): + return ' '.join("%s='%s'" % i for i in sorted(self.items())) + + def copy(self): + return self.__class__(super(MakeFlags, self).copy()) + + +class Gencontrol(object): + makefile_targets = ('binary-arch', 'build-arch', 'setup') + makefile_targets_indep = ('binary-indep', 'build-indep', 'setup') + + def __init__(self, config, templates, version=Version): + self.config, self.templates = config, templates + self.changelog = Changelog(version=version) + self.vars = {} + + def __call__(self): + packages = PackagesList() + makefile = Makefile() + + self.do_source(packages) + self.do_main(packages, makefile) + self.do_extra(packages, makefile) + + self.write(packages, makefile) + + def do_source(self, packages): + source = self.templates["control.source"][0] + source['Source'] = self.changelog[0].source + packages['source'] = self.process_package(source, self.vars) + + def do_main(self, packages, makefile): + config_entry = self.config['base', ] + vars = self.vars.copy() + + makeflags = MakeFlags() + extra = {} + + self.do_main_setup(vars, makeflags, extra) + self.do_main_makefile(makefile, makeflags, extra) + self.do_main_packages(packages, vars, makeflags, extra) + self.do_main_recurse(packages, makefile, vars, makeflags, extra) + + def do_main_setup(self, vars, makeflags, extra): + pass + + def do_main_makefile(self, makefile, makeflags, extra): + makefile.add('build-indep', cmds=["$(MAKE) -f debian/rules.real build-indep %s" % makeflags]) + makefile.add('binary-indep', cmds=["$(MAKE) -f debian/rules.real binary-indep %s" % makeflags]) + + def do_main_packages(self, packages, vars, makeflags, extra): + pass + + def do_main_recurse(self, packages, makefile, vars, makeflags, extra): + for featureset in self.config['base', ]['featuresets']: + if self.config.merge('base', None, featureset).get('enabled', True): + self.do_indep_featureset(packages, makefile, featureset, + vars.copy(), makeflags.copy(), extra) + for arch in iter(self.config['base', ]['arches']): + self.do_arch(packages, makefile, arch, vars.copy(), makeflags.copy(), extra) + + def do_extra(self, packages, makefile): + templates_extra = self.templates.get("control.extra", None) + if templates_extra is None: + return + + packages_extra = self.process_packages(templates_extra, self.vars) + packages.extend(packages_extra) + extra_arches = {} + for package in packages_extra: + arches = package['Architecture'] + for arch in arches: + i = extra_arches.get(arch, []) + i.append(package) + extra_arches[arch] = i + for arch in sorted(extra_arches.keys()): + cmds = [] + for i in extra_arches[arch]: + cmds.append("$(MAKE) -f debian/rules.real install-dummy ARCH='%s' DH_OPTIONS='-p%s'" % (arch, i['Package'])) + makefile.add('binary-arch_%s' % arch, ['binary-arch_%s_extra' % arch]) + makefile.add("binary-arch_%s_extra" % arch, cmds = cmds) + + def do_indep_featureset(self, packages, makefile, featureset, vars, + makeflags, extra): + vars['localversion'] = '' + if featureset != 'none': + vars['localversion'] = '-' + featureset + + self.do_indep_featureset_setup(vars, makeflags, featureset, extra) + self.do_indep_featureset_makefile(makefile, featureset, makeflags, + extra) + self.do_indep_featureset_packages(packages, makefile, featureset, + vars, makeflags, extra) + + def do_indep_featureset_setup(self, vars, makeflags, featureset, extra): + pass + + def do_indep_featureset_makefile(self, makefile, featureset, makeflags, + extra): + makeflags['FEATURESET'] = featureset + + for i in self.makefile_targets_indep: + target1 = i + target2 = '_'.join((target1, featureset)) + target3 = '_'.join((target2, 'real')) + makefile.add(target1, [target2]) + makefile.add(target2, [target3]) + + def do_indep_featureset_packages(self, packages, makefile, featureset, + vars, makeflags, extra): + pass + + def do_arch(self, packages, makefile, arch, vars, makeflags, extra): + vars['arch'] = arch + + self.do_arch_setup(vars, makeflags, arch, extra) + self.do_arch_makefile(makefile, arch, makeflags, extra) + self.do_arch_packages(packages, makefile, arch, vars, makeflags, extra) + self.do_arch_recurse(packages, makefile, arch, vars, makeflags, extra) + + def do_arch_setup(self, vars, makeflags, arch, extra): + pass + + def do_arch_makefile(self, makefile, arch, makeflags, extra): + makeflags['ARCH'] = arch + + for i in self.makefile_targets: + target1 = i + target2 = '_'.join((target1, arch)) + target3 = '_'.join((target2, 'real')) + makefile.add(target1, [target2]) + makefile.add(target2, [target3]) + + def do_arch_packages(self, packages, makefile, arch, vars, makeflags, extra): + pass + + def do_arch_recurse(self, packages, makefile, arch, vars, makeflags, extra): + for featureset in self.config['base', arch].get('featuresets', ()): + self.do_featureset(packages, makefile, arch, featureset, vars.copy(), makeflags.copy(), extra) + + def do_featureset(self, packages, makefile, arch, featureset, vars, makeflags, extra): + config_base = self.config.merge('base', arch, featureset) + if not config_base.get('enabled', True): + return + + vars['localversion'] = '' + if featureset != 'none': + vars['localversion'] = '-' + featureset + + self.do_featureset_setup(vars, makeflags, arch, featureset, extra) + self.do_featureset_makefile(makefile, arch, featureset, makeflags, extra) + self.do_featureset_packages(packages, makefile, arch, featureset, vars, makeflags, extra) + self.do_featureset_recurse(packages, makefile, arch, featureset, vars, makeflags, extra) + + def do_featureset_setup(self, vars, makeflags, arch, featureset, extra): + pass + + def do_featureset_makefile(self, makefile, arch, featureset, makeflags, extra): + makeflags['FEATURESET'] = featureset + + for i in self.makefile_targets: + target1 = '_'.join((i, arch)) + target2 = '_'.join((target1, featureset)) + target3 = '_'.join((target2, 'real')) + makefile.add(target1, [target2]) + makefile.add(target2, [target3]) + + def do_featureset_packages(self, packages, makefile, arch, featureset, vars, makeflags, extra): + pass + + def do_featureset_recurse(self, packages, makefile, arch, featureset, vars, makeflags, extra): + for flavour in self.config['base', arch, featureset]['flavours']: + self.do_flavour(packages, makefile, arch, featureset, flavour, vars.copy(), makeflags.copy(), extra) + + def do_flavour(self, packages, makefile, arch, featureset, flavour, vars, makeflags, extra): + config_base = self.config.merge('base', arch, featureset, flavour) + + vars['localversion'] += '-' + flavour + + self.do_flavour_setup(vars, makeflags, arch, featureset, flavour, extra) + self.do_flavour_makefile(makefile, arch, featureset, flavour, makeflags, extra) + self.do_flavour_packages(packages, makefile, arch, featureset, flavour, vars, makeflags, extra) + + def do_flavour_setup(self, vars, makeflags, arch, featureset, flavour, extra): + for i in ( + ('kernel-arch', 'KERNEL_ARCH'), + ('localversion', 'LOCALVERSION'), + ): + if i[0] in vars: + makeflags[i[1]] = vars[i[0]] + + def do_flavour_makefile(self, makefile, arch, featureset, flavour, makeflags, extra): + makeflags['FLAVOUR'] = flavour + + for i in self.makefile_targets: + target1 = '_'.join((i, arch, featureset)) + target2 = '_'.join((target1, flavour)) + target3 = '_'.join((target2, 'real')) + makefile.add(target1, [target2]) + makefile.add(target2, [target3]) + + def do_flavour_packages(self, packages, makefile, arch, featureset, flavour, vars, makeflags, extra): + pass + + def process_relation(self, dep, vars): + import copy + dep = copy.deepcopy(dep) + for groups in dep: + for item in groups: + item.name = self.substitute(item.name, vars) + if item.version: + item.version = self.substitute(item.version, vars) + return dep + + def process_description(self, in_desc, vars): + desc = in_desc.__class__() + desc.short = self.substitute(in_desc.short, vars) + for i in in_desc.long: + desc.append(self.substitute(i, vars)) + return desc + + def process_package(self, in_entry, vars={}): + entry = in_entry.__class__() + for key, value in in_entry.items(): + if isinstance(value, PackageRelation): + value = self.process_relation(value, vars) + elif isinstance(value, PackageDescription): + value = self.process_description(value, vars) + else: + value = self.substitute(value, vars) + entry[key] = value + return entry + + def process_packages(self, entries, vars): + return [self.process_package(i, vars) for i in entries] + + def substitute(self, s, vars): + if isinstance(s, (list, tuple)): + return [self.substitute(i, vars) for i in s] + + def subst(match): + return vars[match.group(1)] + + return re.sub(r'@([-_a-z0-9]+)@', subst, str(s)) + + def write(self, packages, makefile): + self.write_control(packages.values()) + self.write_makefile(makefile) + + def write_config(self): + f = file("debian/config.dump", 'w') + self.config.write(f) + f.close() + + def write_control(self, list): + self.write_rfc822(codecs.open("debian/control", 'w', 'utf-8'), list) + + def write_makefile(self, makefile): + f = open("debian/rules.gen", 'w') + makefile.write(f) + f.close() + + def write_rfc822(self, f, list): + for entry in list: + for key, value in entry.items(): + f.write(u"%s: %s\n" % (key, value)) + f.write('\n') + +def merge_packages(packages, new, arch): + for new_package in new: + name = new_package['Package'] + if name in packages: + package = packages.get(name) + package['Architecture'].add(arch) + + for field in 'Depends', 'Provides', 'Suggests', 'Recommends', 'Conflicts': + if field in new_package: + if field in package: + v = package[field] + v.extend(new_package[field]) + else: + package[field] = new_package[field] + + else: + new_package['Architecture'] = arch + packages.append(new_package) diff --git a/lib/python/debian_linux/kconfig.py b/lib/python/debian_linux/kconfig.py new file mode 100644 index 00000000000..67309e3a07a --- /dev/null +++ b/lib/python/debian_linux/kconfig.py @@ -0,0 +1,91 @@ +from collections import OrderedDict + +__all__ = ( + "KconfigFile", +) + + +class KConfigEntry(object): + __slots__ = 'name', 'value', 'comments' + + def __init__(self, name, value, comments=None): + self.name, self.value = name, value + self.comments = comments or [] + + def __eq__(self, other): + return self.name == other.name and self.value == other.value + + def __hash__(self): + return hash(self.name) | hash(self.value) + + def __repr__(self): + return '<{}({!r}, {!r}, {!r})>'.format(self.__class__.__name__, self.name, self.value, self.comments) + + def __str__(self): + return 'CONFIG_{}={}'.format(self.name, self.value) + + def write(self): + for comment in self.comments: + yield '#. ' + comment + yield str(self) + + +class KConfigEntryTristate(KConfigEntry): + __slots__ = () + + VALUE_NO = False + VALUE_YES = True + VALUE_MOD = object() + + def __init__(self, name, value, comments=None): + if value == 'n' or value is None: + value = self.VALUE_NO + elif value == 'y': + value = self.VALUE_YES + elif value == 'm': + value = self.VALUE_MOD + else: + raise NotImplementedError + super(KConfigEntryTristate, self).__init__(name, value, comments) + + def __str__(self): + if self.value is self.VALUE_MOD: + return 'CONFIG_{}=m'.format(self.name) + if self.value: + return 'CONFIG_{}=y'.format(self.name) + return '# CONFIG_{} is not set'.format(self.name) + + +class KconfigFile(OrderedDict): + def __str__(self): + ret = [] + for i in self.str_iter(): + ret.append(i) + return '\n'.join(ret) + '\n' + + def read(self, f): + for line in iter(f.readlines()): + line = line.strip() + if line.startswith("CONFIG_"): + i = line.find('=') + option = line[7:i] + value = line[i + 1:] + self.set(option, value) + elif line.startswith("# CONFIG_"): + option = line[9:-11] + self.set(option, 'n') + elif line.startswith("#") or not line: + pass + else: + raise RuntimeError("Can't recognize %s" % line) + + def set(self, key, value): + if value in ('y', 'm', 'n'): + entry = KConfigEntryTristate(key, value) + else: + entry = KConfigEntry(key, value) + self[key] = entry + + def str_iter(self): + for key, value in self.items(): + yield str(value) diff --git a/lib/python/debian_linux/patches.py b/lib/python/debian_linux/patches.py new file mode 100644 index 00000000000..984e48f0edf --- /dev/null +++ b/lib/python/debian_linux/patches.py @@ -0,0 +1,180 @@ +from __future__ import print_function + +import glob +import os +import shutil +import subprocess + + +class Operation(object): + def __init__(self, name, data): + self.name, self.data = name, data + + def __call__(self, dir='.', reverse=False): + try: + if not reverse: + self.do(dir) + else: + self.do_reverse(dir) + self._log(True) + except: + self._log(False) + raise + + def _log(self, result): + if result: + s = "OK" + else: + s = "FAIL" + print(""" (%s) %-4s %s""" % (self.operation, s, self.name)) + + def do(self, dir): + raise NotImplementedError + + def do_reverse(self, dir): + raise NotImplementedError + + +class OperationPatch(Operation): + def __init__(self, name, filename, data): + super(OperationPatch, self).__init__(name, data) + self.filename = filename + + def _call(self, dir, *extraargs): + with open(self.filename) as f: + subprocess.check_call( + ("patch", "-p1", "-f", "-s", "-t", "--no-backup-if-mismatch") + extraargs, + cwd=dir, + stdin=f, + ) + + def patch_push(self, dir): + self._call(dir, '--fuzz=1') + + def patch_pop(self, dir): + self._call(dir, '-R') + + +class OperationPatchPush(OperationPatch): + operation = '+' + + do = OperationPatch.patch_push + do_reverse = OperationPatch.patch_pop + + +class OperationPatchPop(OperationPatch): + operation = '-' + + do = OperationPatch.patch_pop + do_reverse = OperationPatch.patch_push + + +class SubOperation(Operation): + def _log(self, result): + if result: + s = "OK" + else: + s = "FAIL" + print(""" %-10s %-4s %s""" % ('(%s)' % self.operation, s, self.name)) + + +class SubOperationFilesRemove(SubOperation): + operation = "remove" + + def do(self, dir): + name = os.path.join(dir, self.name) + for n in glob.iglob(name): + if os.path.isdir(n): + shutil.rmtree(n) + else: + os.unlink(n) + + +class SubOperationFilesUnifdef(SubOperation): + operation = "unifdef" + + def do(self, dir): + filename = os.path.join(dir, self.name) + ret = subprocess.call(("unifdef", "-o", filename, filename) + tuple(self.data)) + if ret == 0: + raise RuntimeError("unifdef of %s removed nothing" % self.name) + elif ret != 1: + raise RuntimeError("unifdef failed") + + +class OperationFiles(Operation): + operation = 'X' + + suboperations = { + 'remove': SubOperationFilesRemove, + 'rm': SubOperationFilesRemove, + 'unifdef': SubOperationFilesUnifdef, + } + + def __init__(self, name, filename, data): + super(OperationFiles, self).__init__(name, data) + + ops = [] + + with open(filename) as f: + for line in f: + line = line.strip() + if not line or line[0] == '#': + continue + + items = line.split() + operation, filename = items[:2] + data = items[2:] + + if operation not in self.suboperations: + raise RuntimeError('Undefined operation "%s" in series %s' % (operation, name)) + + ops.append(self.suboperations[operation](filename, data)) + + self.ops = ops + + def do(self, dir): + for i in self.ops: + i(dir=dir) + + +class PatchSeries(list): + operations = { + '+': OperationPatchPush, + '-': OperationPatchPop, + 'X': OperationFiles, + } + + def __init__(self, name, root, fp): + self.name, self.root = name, root + + for line in fp: + line = line.strip() + + if not len(line) or line[0] == '#': + continue + + items = line.split(' ') + operation, filename = items[:2] + data = items[2:] + + if operation in self.operations: + f = os.path.join(self.root, filename) + if os.path.exists(f): + self.append(self.operations[operation](filename, f, data)) + else: + raise RuntimeError("Can't find patch %s for series %s" % (filename, self.name)) + else: + raise RuntimeError('Undefined operation "%s" in series %s' % (operation, name)) + + def __call__(self, cond=bool, dir='.', reverse=False): + if not reverse: + l = self + else: + l = self[::-1] + for i in l: + if cond(i): + i(dir=dir, reverse=reverse) + + def __repr__(self): + return '<%s object for %s>' % (self.__class__.__name__, self.name) diff --git a/lib/python/debian_linux/utils.py b/lib/python/debian_linux/utils.py new file mode 100644 index 00000000000..5d6a7d47306 --- /dev/null +++ b/lib/python/debian_linux/utils.py @@ -0,0 +1,93 @@ +import codecs +import os +import re +import textwrap + + +class Templates(object): + def __init__(self, dirs=["debian/templates"]): + self.dirs = dirs + + self._cache = {} + + def __getitem__(self, key): + ret = self.get(key) + if ret is not None: + return ret + raise KeyError(key) + + def _read(self, name): + prefix, id = name.split('.', 1) + + for suffix in ['.in', '']: + for dir in self.dirs: + filename = "%s/%s%s" % (dir, name, suffix) + if os.path.exists(filename): + f = codecs.open(filename, 'r', 'utf-8') + if prefix == 'control': + return read_control(f) + if prefix == 'tests-control': + return read_tests_control(f) + return f.read() + + def get(self, key, default=None): + if key in self._cache: + return self._cache[key] + + value = self._cache.setdefault(key, self._read(key)) + if value is None: + return default + return value + + +def read_control(f): + from .debian import Package + return _read_rfc822(f, Package) + +def read_tests_control(f): + from .debian import TestsControl + return _read_rfc822(f, TestsControl) + +def _read_rfc822(f, cls): + entries = [] + eof = False + + while not eof: + e = cls() + last = None + lines = [] + while True: + line = f.readline() + if not line: + eof = True + break + # Strip comments rather than trying to preserve them + if line[0] == '#': + continue + line = line.strip('\n') + if not line: + break + if line[0] in ' \t': + if not last: + raise ValueError('Continuation line seen before first header') + lines.append(line.lstrip()) + continue + if last: + e[last] = '\n'.join(lines) + i = line.find(':') + if i < 0: + raise ValueError(u"Not a header, not a continuation: ``%s''" % line) + last = line[:i] + lines = [line[i + 1:].lstrip()] + if last: + e[last] = '\n'.join(lines) + if e: + entries.append(e) + + return entries + + +class TextWrapper(textwrap.TextWrapper): + wordsep_re = re.compile( + r'(\s+|' # any whitespace + r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash diff --git a/libcpupower-dev.install b/libcpupower-dev.install new file mode 100644 index 00000000000..b341905520f --- /dev/null +++ b/libcpupower-dev.install @@ -0,0 +1,2 @@ +usr/include/* +usr/lib/lib*.so diff --git a/libcpupower1.install b/libcpupower1.install new file mode 100644 index 00000000000..d0dbfd18ace --- /dev/null +++ b/libcpupower1.install @@ -0,0 +1 @@ +usr/lib/lib*.so.* diff --git a/libcpupower1.symbols b/libcpupower1.symbols new file mode 100644 index 00000000000..1e691c28f22 --- /dev/null +++ b/libcpupower1.symbols @@ -0,0 +1,39 @@ +libcpupower.so.1 libcpupower1 #MINVER# + cpu_topology_release@Base 4.7~rc2-1~exp1 + cpufreq_get_affected_cpus@Base 4.7~rc2-1~exp1 + cpufreq_get_available_frequencies@Base 4.7~rc2-1~exp1 + cpufreq_get_available_governors@Base 4.7~rc2-1~exp1 + cpufreq_get_driver@Base 4.7~rc2-1~exp1 + cpufreq_get_freq_hardware@Base 4.7~rc2-1~exp1 + cpufreq_get_freq_kernel@Base 4.7~rc2-1~exp1 + cpufreq_get_hardware_limits@Base 4.7~rc2-1~exp1 + cpufreq_get_policy@Base 4.7~rc2-1~exp1 + cpufreq_get_related_cpus@Base 4.7~rc2-1~exp1 + cpufreq_get_stats@Base 4.7~rc2-1~exp1 + cpufreq_get_transition_latency@Base 4.7~rc2-1~exp1 + cpufreq_get_transitions@Base 4.7~rc2-1~exp1 + cpufreq_modify_policy_governor@Base 4.7~rc2-1~exp1 + cpufreq_modify_policy_max@Base 4.7~rc2-1~exp1 + cpufreq_modify_policy_min@Base 4.7~rc2-1~exp1 + cpufreq_put_affected_cpus@Base 4.7~rc2-1~exp1 + cpufreq_put_available_frequencies@Base 4.7~rc2-1~exp1 + cpufreq_put_available_governors@Base 4.7~rc2-1~exp1 + cpufreq_put_driver@Base 4.7~rc2-1~exp1 + cpufreq_put_policy@Base 4.7~rc2-1~exp1 + cpufreq_put_related_cpus@Base 4.7~rc2-1~exp1 + cpufreq_put_stats@Base 4.7~rc2-1~exp1 + cpufreq_set_frequency@Base 4.7~rc2-1~exp1 + cpufreq_set_policy@Base 4.7~rc2-1~exp1 + cpuidle_get_driver@Base 4.7~rc2-1~exp1 + cpuidle_get_governor@Base 4.7~rc2-1~exp1 + cpuidle_is_state_disabled@Base 4.7~rc2-1~exp1 + cpuidle_state_count@Base 4.7~rc2-1~exp1 + cpuidle_state_desc@Base 4.7~rc2-1~exp1 + cpuidle_state_disable@Base 4.7~rc2-1~exp1 + cpuidle_state_latency@Base 4.7~rc2-1~exp1 + cpuidle_state_name@Base 4.7~rc2-1~exp1 + cpuidle_state_time@Base 4.7~rc2-1~exp1 + cpuidle_state_usage@Base 4.7~rc2-1~exp1 + cpupower_is_cpu_online@Base 4.7~rc2-1~exp1 + get_cpu_topology@Base 4.7~rc2-1~exp1 + sysfs_read_file@Base 4.7~rc2-1~exp1 diff --git a/liblockdep-dev.README.Debian b/liblockdep-dev.README.Debian new file mode 100644 index 00000000000..a0673a1707d --- /dev/null +++ b/liblockdep-dev.README.Debian @@ -0,0 +1,13 @@ +liblockdep for Debian +--------------------- + +liblockdep does not have proper documentation, but these articles +provide an introduction: + + https://lwn.net/Articles/536363/ + http://www.vctlabs.com/posts/2014/Jul/09/liblockdep/ + +'lockdep-design.txt' explains some more detail about what lockdep +does, both in the kernel and as liblockdep. + + -- Ben Hutchings , Fri, 14 Aug 2015 14:22:55 +0200 diff --git a/liblockdep-dev.docs b/liblockdep-dev.docs new file mode 100644 index 00000000000..15b2bbe123e --- /dev/null +++ b/liblockdep-dev.docs @@ -0,0 +1 @@ +Documentation/locking/lockdep-design.txt diff --git a/liblockdep-dev.install b/liblockdep-dev.install new file mode 100644 index 00000000000..bd857244bef --- /dev/null +++ b/liblockdep-dev.install @@ -0,0 +1,3 @@ +usr/include/liblockdep +usr/lib/*/liblockdep.a +usr/lib/*/liblockdep.so diff --git a/libusbip-dev.install b/libusbip-dev.install new file mode 100644 index 00000000000..7b2d9eb615d --- /dev/null +++ b/libusbip-dev.install @@ -0,0 +1,3 @@ +usr/lib/libusbip.la +usr/lib/libusbip.a +usr/include/usbip/* diff --git a/linux-cpupower.install b/linux-cpupower.install new file mode 100644 index 00000000000..21cca7cd9a1 --- /dev/null +++ b/linux-cpupower.install @@ -0,0 +1,2 @@ +usr/bin +usr/share/ diff --git a/linux-headers-4.8.0-0.bpo.2-4kc-malta.postinst b/linux-headers-4.8.0-0.bpo.2-4kc-malta.postinst new file mode 100644 index 00000000000..df605dc9559 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-4kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-4kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-5kc-malta.postinst b/linux-headers-4.8.0-0.bpo.2-5kc-malta.postinst new file mode 100644 index 00000000000..9f67816ba27 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-5kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-5kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-686-pae.postinst b/linux-headers-4.8.0-0.bpo.2-686-pae.postinst new file mode 100644 index 00000000000..611fb6bb4ab --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-686.postinst b/linux-headers-4.8.0-0.bpo.2-686.postinst new file mode 100644 index 00000000000..7ff983e04db --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-686.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-686"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-alpha-generic.postinst b/linux-headers-4.8.0-0.bpo.2-alpha-generic.postinst new file mode 100644 index 00000000000..44ca17af3ff --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-alpha-generic.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-alpha-generic"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-alpha-smp.postinst b/linux-headers-4.8.0-0.bpo.2-alpha-smp.postinst new file mode 100644 index 00000000000..8d6fe211cac --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-alpha-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-alpha-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-amd64.postinst b/linux-headers-4.8.0-0.bpo.2-amd64.postinst new file mode 100644 index 00000000000..66a90636398 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-arm64.postinst b/linux-headers-4.8.0-0.bpo.2-arm64.postinst new file mode 100644 index 00000000000..8aacf44fc35 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-arm64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-armmp-lpae.postinst b/linux-headers-4.8.0-0.bpo.2-armmp-lpae.postinst new file mode 100644 index 00000000000..af2dfcbe498 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-armmp-lpae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-armmp-lpae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-armmp.postinst b/linux-headers-4.8.0-0.bpo.2-armmp.postinst new file mode 100644 index 00000000000..14938c851d8 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-armmp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-armmp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-loongson-3.postinst b/linux-headers-4.8.0-0.bpo.2-loongson-3.postinst new file mode 100644 index 00000000000..56eee8d70ad --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-loongson-3.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-loongson-3"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-m68k.postinst b/linux-headers-4.8.0-0.bpo.2-m68k.postinst new file mode 100644 index 00000000000..3379d3dc156 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-m68k.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-m68k"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-marvell.postinst b/linux-headers-4.8.0-0.bpo.2-marvell.postinst new file mode 100644 index 00000000000..be8c1114e3f --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-marvell.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-marvell"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-octeon.postinst b/linux-headers-4.8.0-0.bpo.2-octeon.postinst new file mode 100644 index 00000000000..cf7580caf00 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-octeon.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-octeon"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-parisc.postinst b/linux-headers-4.8.0-0.bpo.2-parisc.postinst new file mode 100644 index 00000000000..0018ff3ba43 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-parisc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-parisc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-parisc64-smp.postinst b/linux-headers-4.8.0-0.bpo.2-parisc64-smp.postinst new file mode 100644 index 00000000000..9187de81884 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-parisc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-parisc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-powerpc-smp.postinst b/linux-headers-4.8.0-0.bpo.2-powerpc-smp.postinst new file mode 100644 index 00000000000..ec4916fda62 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-powerpc-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-powerpc-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-powerpc.postinst b/linux-headers-4.8.0-0.bpo.2-powerpc.postinst new file mode 100644 index 00000000000..c352ace1442 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-powerpc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-powerpc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-powerpc64.postinst b/linux-headers-4.8.0-0.bpo.2-powerpc64.postinst new file mode 100644 index 00000000000..a9d0b2301e0 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-powerpc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-powerpc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-powerpc64le.postinst b/linux-headers-4.8.0-0.bpo.2-powerpc64le.postinst new file mode 100644 index 00000000000..82f22bd4ffc --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-powerpc64le.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-powerpc64le"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-powerpcspe.postinst b/linux-headers-4.8.0-0.bpo.2-powerpcspe.postinst new file mode 100644 index 00000000000..f60f8337689 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-powerpcspe.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-powerpcspe"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-rt-686-pae.postinst b/linux-headers-4.8.0-0.bpo.2-rt-686-pae.postinst new file mode 100644 index 00000000000..4e60ccfbd8e --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-rt-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-rt-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-rt-amd64.postinst b/linux-headers-4.8.0-0.bpo.2-rt-amd64.postinst new file mode 100644 index 00000000000..6fc7f13124f --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-rt-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-rt-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-s390x.postinst b/linux-headers-4.8.0-0.bpo.2-s390x.postinst new file mode 100644 index 00000000000..50b55b1a265 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-s390x.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-s390x"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-sh7751r.postinst b/linux-headers-4.8.0-0.bpo.2-sh7751r.postinst new file mode 100644 index 00000000000..02664bc8a21 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-sh7751r.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-sh7751r"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-sh7785lcr.postinst b/linux-headers-4.8.0-0.bpo.2-sh7785lcr.postinst new file mode 100644 index 00000000000..86c15fad2b0 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-sh7785lcr.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-sh7785lcr"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-sparc64-smp.postinst b/linux-headers-4.8.0-0.bpo.2-sparc64-smp.postinst new file mode 100644 index 00000000000..74dba217064 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-sparc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-sparc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-sparc64.postinst b/linux-headers-4.8.0-0.bpo.2-sparc64.postinst new file mode 100644 index 00000000000..1a9f7b678c4 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-sparc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-sparc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-0.bpo.2-versatile.postinst b/linux-headers-4.8.0-0.bpo.2-versatile.postinst new file mode 100644 index 00000000000..14e6187ef19 --- /dev/null +++ b/linux-headers-4.8.0-0.bpo.2-versatile.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-0.bpo.2-versatile"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-4kc-malta.postinst b/linux-headers-4.8.0-2-4kc-malta.postinst new file mode 100644 index 00000000000..2f213facc70 --- /dev/null +++ b/linux-headers-4.8.0-2-4kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-4kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-5kc-malta.postinst b/linux-headers-4.8.0-2-5kc-malta.postinst new file mode 100644 index 00000000000..f0891d4ae1a --- /dev/null +++ b/linux-headers-4.8.0-2-5kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-5kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-686-pae.postinst b/linux-headers-4.8.0-2-686-pae.postinst new file mode 100644 index 00000000000..50c086ad912 --- /dev/null +++ b/linux-headers-4.8.0-2-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-686.postinst b/linux-headers-4.8.0-2-686.postinst new file mode 100644 index 00000000000..d5919725c7e --- /dev/null +++ b/linux-headers-4.8.0-2-686.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-686"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-alpha-generic.postinst b/linux-headers-4.8.0-2-alpha-generic.postinst new file mode 100644 index 00000000000..f192f6cd796 --- /dev/null +++ b/linux-headers-4.8.0-2-alpha-generic.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-alpha-generic"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-alpha-smp.postinst b/linux-headers-4.8.0-2-alpha-smp.postinst new file mode 100644 index 00000000000..4938f45a405 --- /dev/null +++ b/linux-headers-4.8.0-2-alpha-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-alpha-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-amd64.postinst b/linux-headers-4.8.0-2-amd64.postinst new file mode 100644 index 00000000000..2d5f0da7595 --- /dev/null +++ b/linux-headers-4.8.0-2-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-arm64.postinst b/linux-headers-4.8.0-2-arm64.postinst new file mode 100644 index 00000000000..8249e538d2e --- /dev/null +++ b/linux-headers-4.8.0-2-arm64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-armmp-lpae.postinst b/linux-headers-4.8.0-2-armmp-lpae.postinst new file mode 100644 index 00000000000..f75aaeaa145 --- /dev/null +++ b/linux-headers-4.8.0-2-armmp-lpae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-armmp-lpae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-armmp.postinst b/linux-headers-4.8.0-2-armmp.postinst new file mode 100644 index 00000000000..b0f6922f41e --- /dev/null +++ b/linux-headers-4.8.0-2-armmp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-armmp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-loongson-3.postinst b/linux-headers-4.8.0-2-loongson-3.postinst new file mode 100644 index 00000000000..4f0d723be0d --- /dev/null +++ b/linux-headers-4.8.0-2-loongson-3.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-loongson-3"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-m68k.postinst b/linux-headers-4.8.0-2-m68k.postinst new file mode 100644 index 00000000000..ac82dd49099 --- /dev/null +++ b/linux-headers-4.8.0-2-m68k.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-m68k"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-marvell.postinst b/linux-headers-4.8.0-2-marvell.postinst new file mode 100644 index 00000000000..6a93b71038c --- /dev/null +++ b/linux-headers-4.8.0-2-marvell.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-marvell"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-octeon.postinst b/linux-headers-4.8.0-2-octeon.postinst new file mode 100644 index 00000000000..94141ac6613 --- /dev/null +++ b/linux-headers-4.8.0-2-octeon.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-octeon"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-parisc.postinst b/linux-headers-4.8.0-2-parisc.postinst new file mode 100644 index 00000000000..898ae88b70f --- /dev/null +++ b/linux-headers-4.8.0-2-parisc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-parisc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-parisc64-smp.postinst b/linux-headers-4.8.0-2-parisc64-smp.postinst new file mode 100644 index 00000000000..acead9af73d --- /dev/null +++ b/linux-headers-4.8.0-2-parisc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-parisc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-powerpc-smp.postinst b/linux-headers-4.8.0-2-powerpc-smp.postinst new file mode 100644 index 00000000000..76f95fff342 --- /dev/null +++ b/linux-headers-4.8.0-2-powerpc-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-powerpc-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-powerpc.postinst b/linux-headers-4.8.0-2-powerpc.postinst new file mode 100644 index 00000000000..bbd812a4d19 --- /dev/null +++ b/linux-headers-4.8.0-2-powerpc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-powerpc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-powerpc64.postinst b/linux-headers-4.8.0-2-powerpc64.postinst new file mode 100644 index 00000000000..9d51eb5a0a7 --- /dev/null +++ b/linux-headers-4.8.0-2-powerpc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-powerpc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-powerpc64le.postinst b/linux-headers-4.8.0-2-powerpc64le.postinst new file mode 100644 index 00000000000..1aa5f73eb3d --- /dev/null +++ b/linux-headers-4.8.0-2-powerpc64le.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-powerpc64le"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-powerpcspe.postinst b/linux-headers-4.8.0-2-powerpcspe.postinst new file mode 100644 index 00000000000..6c6bc3394ad --- /dev/null +++ b/linux-headers-4.8.0-2-powerpcspe.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-powerpcspe"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-rt-686-pae.postinst b/linux-headers-4.8.0-2-rt-686-pae.postinst new file mode 100644 index 00000000000..004cfcf1e59 --- /dev/null +++ b/linux-headers-4.8.0-2-rt-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-rt-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-rt-amd64.postinst b/linux-headers-4.8.0-2-rt-amd64.postinst new file mode 100644 index 00000000000..24279f4709a --- /dev/null +++ b/linux-headers-4.8.0-2-rt-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-rt-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-s390x.postinst b/linux-headers-4.8.0-2-s390x.postinst new file mode 100644 index 00000000000..a29499e38a8 --- /dev/null +++ b/linux-headers-4.8.0-2-s390x.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-s390x"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-sh7751r.postinst b/linux-headers-4.8.0-2-sh7751r.postinst new file mode 100644 index 00000000000..a4a3b61a538 --- /dev/null +++ b/linux-headers-4.8.0-2-sh7751r.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-sh7751r"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-sh7785lcr.postinst b/linux-headers-4.8.0-2-sh7785lcr.postinst new file mode 100644 index 00000000000..433d3e24aac --- /dev/null +++ b/linux-headers-4.8.0-2-sh7785lcr.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-sh7785lcr"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-sparc64-smp.postinst b/linux-headers-4.8.0-2-sparc64-smp.postinst new file mode 100644 index 00000000000..e54f982ad2c --- /dev/null +++ b/linux-headers-4.8.0-2-sparc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-sparc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-sparc64.postinst b/linux-headers-4.8.0-2-sparc64.postinst new file mode 100644 index 00000000000..4c04429ea66 --- /dev/null +++ b/linux-headers-4.8.0-2-sparc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-sparc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.8.0-2-versatile.postinst b/linux-headers-4.8.0-2-versatile.postinst new file mode 100644 index 00000000000..c12dcd836fc --- /dev/null +++ b/linux-headers-4.8.0-2-versatile.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.8.0-2-versatile"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-4kc-malta.postinst b/linux-headers-4.9.0-1-4kc-malta.postinst new file mode 100644 index 00000000000..4dc94582d79 --- /dev/null +++ b/linux-headers-4.9.0-1-4kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-4kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-5kc-malta.postinst b/linux-headers-4.9.0-1-5kc-malta.postinst new file mode 100644 index 00000000000..db58bb38815 --- /dev/null +++ b/linux-headers-4.9.0-1-5kc-malta.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-5kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-686-pae.postinst b/linux-headers-4.9.0-1-686-pae.postinst new file mode 100644 index 00000000000..52ab6563470 --- /dev/null +++ b/linux-headers-4.9.0-1-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-686.postinst b/linux-headers-4.9.0-1-686.postinst new file mode 100644 index 00000000000..9a1a24c3273 --- /dev/null +++ b/linux-headers-4.9.0-1-686.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-686"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-alpha-generic.postinst b/linux-headers-4.9.0-1-alpha-generic.postinst new file mode 100644 index 00000000000..5f330b116db --- /dev/null +++ b/linux-headers-4.9.0-1-alpha-generic.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-alpha-generic"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-alpha-smp.postinst b/linux-headers-4.9.0-1-alpha-smp.postinst new file mode 100644 index 00000000000..02a31292117 --- /dev/null +++ b/linux-headers-4.9.0-1-alpha-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-alpha-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-amd64.postinst b/linux-headers-4.9.0-1-amd64.postinst new file mode 100644 index 00000000000..dadeb48525e --- /dev/null +++ b/linux-headers-4.9.0-1-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-arm64.postinst b/linux-headers-4.9.0-1-arm64.postinst new file mode 100644 index 00000000000..fb9cb001b8e --- /dev/null +++ b/linux-headers-4.9.0-1-arm64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-armmp-lpae.postinst b/linux-headers-4.9.0-1-armmp-lpae.postinst new file mode 100644 index 00000000000..86324b472d6 --- /dev/null +++ b/linux-headers-4.9.0-1-armmp-lpae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-armmp-lpae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-armmp.postinst b/linux-headers-4.9.0-1-armmp.postinst new file mode 100644 index 00000000000..56574d7843c --- /dev/null +++ b/linux-headers-4.9.0-1-armmp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-armmp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-loongson-3.postinst b/linux-headers-4.9.0-1-loongson-3.postinst new file mode 100644 index 00000000000..2da752b3c0a --- /dev/null +++ b/linux-headers-4.9.0-1-loongson-3.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-loongson-3"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-m68k.postinst b/linux-headers-4.9.0-1-m68k.postinst new file mode 100644 index 00000000000..77f830b87d3 --- /dev/null +++ b/linux-headers-4.9.0-1-m68k.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-m68k"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-marvell.postinst b/linux-headers-4.9.0-1-marvell.postinst new file mode 100644 index 00000000000..84933d92923 --- /dev/null +++ b/linux-headers-4.9.0-1-marvell.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-marvell"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-octeon.postinst b/linux-headers-4.9.0-1-octeon.postinst new file mode 100644 index 00000000000..78ba014fe10 --- /dev/null +++ b/linux-headers-4.9.0-1-octeon.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-octeon"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-parisc.postinst b/linux-headers-4.9.0-1-parisc.postinst new file mode 100644 index 00000000000..469682d590d --- /dev/null +++ b/linux-headers-4.9.0-1-parisc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-parisc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-parisc64-smp.postinst b/linux-headers-4.9.0-1-parisc64-smp.postinst new file mode 100644 index 00000000000..13224821074 --- /dev/null +++ b/linux-headers-4.9.0-1-parisc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-parisc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-powerpc-smp.postinst b/linux-headers-4.9.0-1-powerpc-smp.postinst new file mode 100644 index 00000000000..34b82414459 --- /dev/null +++ b/linux-headers-4.9.0-1-powerpc-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-powerpc-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-powerpc.postinst b/linux-headers-4.9.0-1-powerpc.postinst new file mode 100644 index 00000000000..1fc85dbebe6 --- /dev/null +++ b/linux-headers-4.9.0-1-powerpc.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-powerpc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-powerpc64.postinst b/linux-headers-4.9.0-1-powerpc64.postinst new file mode 100644 index 00000000000..b34d6f3ed16 --- /dev/null +++ b/linux-headers-4.9.0-1-powerpc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-powerpc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-powerpc64le.postinst b/linux-headers-4.9.0-1-powerpc64le.postinst new file mode 100644 index 00000000000..2d4fa03c570 --- /dev/null +++ b/linux-headers-4.9.0-1-powerpc64le.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-powerpc64le"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-powerpcspe.postinst b/linux-headers-4.9.0-1-powerpcspe.postinst new file mode 100644 index 00000000000..1628946b702 --- /dev/null +++ b/linux-headers-4.9.0-1-powerpcspe.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-powerpcspe"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-rt-686-pae.postinst b/linux-headers-4.9.0-1-rt-686-pae.postinst new file mode 100644 index 00000000000..9c52fefb33b --- /dev/null +++ b/linux-headers-4.9.0-1-rt-686-pae.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-rt-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-rt-amd64.postinst b/linux-headers-4.9.0-1-rt-amd64.postinst new file mode 100644 index 00000000000..55d4a0ee69f --- /dev/null +++ b/linux-headers-4.9.0-1-rt-amd64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-rt-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-s390x.postinst b/linux-headers-4.9.0-1-s390x.postinst new file mode 100644 index 00000000000..058d226ce55 --- /dev/null +++ b/linux-headers-4.9.0-1-s390x.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-s390x"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-sh7751r.postinst b/linux-headers-4.9.0-1-sh7751r.postinst new file mode 100644 index 00000000000..25421493469 --- /dev/null +++ b/linux-headers-4.9.0-1-sh7751r.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-sh7751r"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-sh7785lcr.postinst b/linux-headers-4.9.0-1-sh7785lcr.postinst new file mode 100644 index 00000000000..6b505e693f6 --- /dev/null +++ b/linux-headers-4.9.0-1-sh7785lcr.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-sh7785lcr"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-sparc64-smp.postinst b/linux-headers-4.9.0-1-sparc64-smp.postinst new file mode 100644 index 00000000000..59f5597ab65 --- /dev/null +++ b/linux-headers-4.9.0-1-sparc64-smp.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-sparc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-headers-4.9.0-1-sparc64.postinst b/linux-headers-4.9.0-1-sparc64.postinst new file mode 100644 index 00000000000..cf4fb4e5b4c --- /dev/null +++ b/linux-headers-4.9.0-1-sparc64.postinst @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "4.9.0-1-sparc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/linux-image-4.8.0-0.bpo.2-4kc-malta.postinst b/linux-image-4.8.0-0.bpo.2-4kc-malta.postinst new file mode 100644 index 00000000000..dff55b1e231 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-4kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-4kc-malta.postrm b/linux-image-4.8.0-0.bpo.2-4kc-malta.postrm new file mode 100644 index 00000000000..d07433d30f0 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-4kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-4kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-4kc-malta.preinst b/linux-image-4.8.0-0.bpo.2-4kc-malta.preinst new file mode 100644 index 00000000000..da2f65454e2 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-4kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-4kc-malta.prerm b/linux-image-4.8.0-0.bpo.2-4kc-malta.prerm new file mode 100644 index 00000000000..8557070bf3d --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-4kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-5kc-malta.postinst b/linux-image-4.8.0-0.bpo.2-5kc-malta.postinst new file mode 100644 index 00000000000..44de3c1e425 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-5kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-5kc-malta.postrm b/linux-image-4.8.0-0.bpo.2-5kc-malta.postrm new file mode 100644 index 00000000000..bcc71fd328b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-5kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-5kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-5kc-malta.preinst b/linux-image-4.8.0-0.bpo.2-5kc-malta.preinst new file mode 100644 index 00000000000..c06ec044f71 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-5kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-5kc-malta.prerm b/linux-image-4.8.0-0.bpo.2-5kc-malta.prerm new file mode 100644 index 00000000000..6c9f29039de --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-5kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-pae-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-686-pae-dbg.lintian-overrides new file mode 100644 index 00000000000..ed9571484c7 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-pae-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-686-pae-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postinst new file mode 100644 index 00000000000..379977497a6 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postrm new file mode 100644 index 00000000000..873ed0062e8 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.preinst new file mode 100644 index 00000000000..d454920f4c3 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.prerm new file mode 100644 index 00000000000..6970ab09148 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-686-unsigned.postinst new file mode 100644 index 00000000000..557ba89ca85 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-686-unsigned.postrm new file mode 100644 index 00000000000..87bc4b34964 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-686-unsigned.preinst new file mode 100644 index 00000000000..86184bd643c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-686-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-686-unsigned.prerm new file mode 100644 index 00000000000..fa70e2d4376 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-686-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-generic.postinst b/linux-image-4.8.0-0.bpo.2-alpha-generic.postinst new file mode 100644 index 00000000000..d2c18ba136b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-generic.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-generic.postrm b/linux-image-4.8.0-0.bpo.2-alpha-generic.postrm new file mode 100644 index 00000000000..d270a6f44c2 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-generic.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-generic +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-generic.preinst b/linux-image-4.8.0-0.bpo.2-alpha-generic.preinst new file mode 100644 index 00000000000..c7232bea780 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-generic.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-generic.prerm b/linux-image-4.8.0-0.bpo.2-alpha-generic.prerm new file mode 100644 index 00000000000..c46ebde4245 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-generic.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-smp.postinst b/linux-image-4.8.0-0.bpo.2-alpha-smp.postinst new file mode 100644 index 00000000000..1daee1ae1de --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-smp.postrm b/linux-image-4.8.0-0.bpo.2-alpha-smp.postrm new file mode 100644 index 00000000000..31a6c251f41 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-smp.preinst b/linux-image-4.8.0-0.bpo.2-alpha-smp.preinst new file mode 100644 index 00000000000..d817c8f9262 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-alpha-smp.prerm b/linux-image-4.8.0-0.bpo.2-alpha-smp.prerm new file mode 100644 index 00000000000..cb422a72d1e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-alpha-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-amd64-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-amd64-dbg.lintian-overrides new file mode 100644 index 00000000000..f8487ae483b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-amd64-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-amd64-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postinst new file mode 100644 index 00000000000..5f12a6b119e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postrm new file mode 100644 index 00000000000..d5308fd12f2 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-amd64-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.preinst new file mode 100644 index 00000000000..29dd6dbb6ee --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-amd64-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.prerm new file mode 100644 index 00000000000..fc1efd04667 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-arm64-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-arm64-dbg.lintian-overrides new file mode 100644 index 00000000000..8d6757d2b5c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-arm64-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-arm64-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postinst new file mode 100644 index 00000000000..ba2b8493192 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postrm new file mode 100644 index 00000000000..6184fc70c6f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-arm64-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.preinst new file mode 100644 index 00000000000..c5b4a7587df --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-arm64-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.prerm new file mode 100644 index 00000000000..b6687b72921 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-arm64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postinst new file mode 100644 index 00000000000..d3ce9f304c7 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postrm new file mode 100644 index 00000000000..7434f0e91f4 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp-lpae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.preinst new file mode 100644 index 00000000000..e1a3d2ac0c9 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.prerm new file mode 100644 index 00000000000..c568f3184ec --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-lpae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postinst new file mode 100644 index 00000000000..e3791256a7c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postrm new file mode 100644 index 00000000000..e8192a9f4c1 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.preinst new file mode 100644 index 00000000000..59058af006c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-armmp-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.prerm new file mode 100644 index 00000000000..e02ab0f7101 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-armmp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-loongson-3.postinst b/linux-image-4.8.0-0.bpo.2-loongson-3.postinst new file mode 100644 index 00000000000..19fef42169f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-loongson-3.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-loongson-3.postrm b/linux-image-4.8.0-0.bpo.2-loongson-3.postrm new file mode 100644 index 00000000000..ff7a15dbb0f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-loongson-3.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-loongson-3 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-loongson-3.preinst b/linux-image-4.8.0-0.bpo.2-loongson-3.preinst new file mode 100644 index 00000000000..8eaff3d6020 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-loongson-3.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-loongson-3.prerm b/linux-image-4.8.0-0.bpo.2-loongson-3.prerm new file mode 100644 index 00000000000..d8e08761698 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-loongson-3.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-m68k.postinst b/linux-image-4.8.0-0.bpo.2-m68k.postinst new file mode 100644 index 00000000000..77c53d4a77f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-m68k.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-m68k.postrm b/linux-image-4.8.0-0.bpo.2-m68k.postrm new file mode 100644 index 00000000000..cf1671a9d20 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-m68k.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-m68k +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-m68k.preinst b/linux-image-4.8.0-0.bpo.2-m68k.preinst new file mode 100644 index 00000000000..501154c1c15 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-m68k.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-m68k.prerm b/linux-image-4.8.0-0.bpo.2-m68k.prerm new file mode 100644 index 00000000000..47a1d4252a7 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-m68k.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-marvell.postinst b/linux-image-4.8.0-0.bpo.2-marvell.postinst new file mode 100644 index 00000000000..669f8867330 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-marvell.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-marvell.postrm b/linux-image-4.8.0-0.bpo.2-marvell.postrm new file mode 100644 index 00000000000..089661470de --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-marvell.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-marvell +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-marvell.preinst b/linux-image-4.8.0-0.bpo.2-marvell.preinst new file mode 100644 index 00000000000..ae89e09133f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-marvell.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-marvell.prerm b/linux-image-4.8.0-0.bpo.2-marvell.prerm new file mode 100644 index 00000000000..c7a44951ffe --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-marvell.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-octeon.postinst b/linux-image-4.8.0-0.bpo.2-octeon.postinst new file mode 100644 index 00000000000..92cad1d1c64 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-octeon.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-octeon.postrm b/linux-image-4.8.0-0.bpo.2-octeon.postrm new file mode 100644 index 00000000000..bc745cfe057 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-octeon.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-octeon +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-octeon.preinst b/linux-image-4.8.0-0.bpo.2-octeon.preinst new file mode 100644 index 00000000000..c862bff483d --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-octeon.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-octeon.prerm b/linux-image-4.8.0-0.bpo.2-octeon.prerm new file mode 100644 index 00000000000..98ff1fe2447 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-octeon.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc.postinst b/linux-image-4.8.0-0.bpo.2-parisc.postinst new file mode 100644 index 00000000000..b0cea8f7991 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc.postrm b/linux-image-4.8.0-0.bpo.2-parisc.postrm new file mode 100644 index 00000000000..9fb58c92d17 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc.preinst b/linux-image-4.8.0-0.bpo.2-parisc.preinst new file mode 100644 index 00000000000..aefb0098f7b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc.prerm b/linux-image-4.8.0-0.bpo.2-parisc.prerm new file mode 100644 index 00000000000..0d981f6ebf5 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc64-smp.postinst b/linux-image-4.8.0-0.bpo.2-parisc64-smp.postinst new file mode 100644 index 00000000000..d7b01662bc2 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc64-smp.postrm b/linux-image-4.8.0-0.bpo.2-parisc64-smp.postrm new file mode 100644 index 00000000000..07fd42f50da --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc64-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc64-smp.preinst b/linux-image-4.8.0-0.bpo.2-parisc64-smp.preinst new file mode 100644 index 00000000000..83045035c3e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-parisc64-smp.prerm b/linux-image-4.8.0-0.bpo.2-parisc64-smp.prerm new file mode 100644 index 00000000000..ecbc648fe8a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-parisc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postinst new file mode 100644 index 00000000000..5d73be7a79a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postrm new file mode 100644 index 00000000000..499bddf93b1 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.preinst new file mode 100644 index 00000000000..57903086298 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.prerm new file mode 100644 index 00000000000..e6316795f0e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-smp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postinst new file mode 100644 index 00000000000..f0f568e72c4 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postrm new file mode 100644 index 00000000000..4cd92260790 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.preinst new file mode 100644 index 00000000000..e0ba4ea4224 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.prerm new file mode 100644 index 00000000000..aa8856ad9f4 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postinst new file mode 100644 index 00000000000..3d72be1071a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postrm new file mode 100644 index 00000000000..55bf826e546 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.preinst new file mode 100644 index 00000000000..c0eb072d788 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.prerm new file mode 100644 index 00000000000..c008db025b9 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64.postinst b/linux-image-4.8.0-0.bpo.2-powerpc64.postinst new file mode 100644 index 00000000000..3d72be1071a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64.postrm b/linux-image-4.8.0-0.bpo.2-powerpc64.postrm new file mode 100644 index 00000000000..55bf826e546 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64.preinst b/linux-image-4.8.0-0.bpo.2-powerpc64.preinst new file mode 100644 index 00000000000..c0eb072d788 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64.prerm b/linux-image-4.8.0-0.bpo.2-powerpc64.prerm new file mode 100644 index 00000000000..c008db025b9 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postinst new file mode 100644 index 00000000000..b968e39118e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postrm new file mode 100644 index 00000000000..7fa7b95b8d8 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64le +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.preinst new file mode 100644 index 00000000000..291f5028e6a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.prerm new file mode 100644 index 00000000000..ec19e58d7df --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpc64le-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpcspe.postinst b/linux-image-4.8.0-0.bpo.2-powerpcspe.postinst new file mode 100644 index 00000000000..6fba74e5e6b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpcspe.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpcspe.postrm b/linux-image-4.8.0-0.bpo.2-powerpcspe.postrm new file mode 100644 index 00000000000..872066ea0ab --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpcspe.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpcspe +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpcspe.preinst b/linux-image-4.8.0-0.bpo.2-powerpcspe.preinst new file mode 100644 index 00000000000..5dc35a8da3e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpcspe.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-powerpcspe.prerm b/linux-image-4.8.0-0.bpo.2-powerpcspe.prerm new file mode 100644 index 00000000000..cac4abc380a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-powerpcspe.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-686-pae-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-rt-686-pae-dbg.lintian-overrides new file mode 100644 index 00000000000..28b6123e7db --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-686-pae-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-rt-686-pae-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postinst new file mode 100644 index 00000000000..8d3a95e3923 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postrm new file mode 100644 index 00000000000..d0fafd1bb83 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.preinst new file mode 100644 index 00000000000..a51ea9c845c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.prerm new file mode 100644 index 00000000000..545aa6ea02d --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-amd64-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-rt-amd64-dbg.lintian-overrides new file mode 100644 index 00000000000..1d8dc872bde --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-amd64-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-rt-amd64-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postinst new file mode 100644 index 00000000000..cbc11495d5a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postrm new file mode 100644 index 00000000000..ff831a33611 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.preinst new file mode 100644 index 00000000000..39fbb419366 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.prerm new file mode 100644 index 00000000000..25d6af6529f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-rt-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-s390x-dbg.lintian-overrides b/linux-image-4.8.0-0.bpo.2-s390x-dbg.lintian-overrides new file mode 100644 index 00000000000..60082531d3b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-s390x-dbg.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-0.bpo.2-s390x-dbg: dbg-package-missing-depends diff --git a/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postinst b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postinst new file mode 100644 index 00000000000..a162b0c7f03 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postrm b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postrm new file mode 100644 index 00000000000..f9b3651926a --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-s390x +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-s390x-unsigned.preinst b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.preinst new file mode 100644 index 00000000000..4f177f55efa --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-s390x-unsigned.prerm b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.prerm new file mode 100644 index 00000000000..607dd845c7e --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-s390x-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7751r.postinst b/linux-image-4.8.0-0.bpo.2-sh7751r.postinst new file mode 100644 index 00000000000..aa368f26ba5 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7751r.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7751r.postrm b/linux-image-4.8.0-0.bpo.2-sh7751r.postrm new file mode 100644 index 00000000000..86cc3dfb9e5 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7751r.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7751r +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7751r.preinst b/linux-image-4.8.0-0.bpo.2-sh7751r.preinst new file mode 100644 index 00000000000..5769a24e6a8 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7751r.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7751r.prerm b/linux-image-4.8.0-0.bpo.2-sh7751r.prerm new file mode 100644 index 00000000000..21a8bdd853b --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7751r.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7785lcr.postinst b/linux-image-4.8.0-0.bpo.2-sh7785lcr.postinst new file mode 100644 index 00000000000..34829d48ae8 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7785lcr.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7785lcr.postrm b/linux-image-4.8.0-0.bpo.2-sh7785lcr.postrm new file mode 100644 index 00000000000..ad5318490e1 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7785lcr.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7785lcr +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7785lcr.preinst b/linux-image-4.8.0-0.bpo.2-sh7785lcr.preinst new file mode 100644 index 00000000000..6d124982da5 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7785lcr.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sh7785lcr.prerm b/linux-image-4.8.0-0.bpo.2-sh7785lcr.prerm new file mode 100644 index 00000000000..c5e54207139 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sh7785lcr.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64-smp.postinst b/linux-image-4.8.0-0.bpo.2-sparc64-smp.postinst new file mode 100644 index 00000000000..386a49d7722 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64-smp.postrm b/linux-image-4.8.0-0.bpo.2-sparc64-smp.postrm new file mode 100644 index 00000000000..1c40de81ff4 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64-smp.preinst b/linux-image-4.8.0-0.bpo.2-sparc64-smp.preinst new file mode 100644 index 00000000000..a877d7eb45f --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64-smp.prerm b/linux-image-4.8.0-0.bpo.2-sparc64-smp.prerm new file mode 100644 index 00000000000..da759e75983 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64.postinst b/linux-image-4.8.0-0.bpo.2-sparc64.postinst new file mode 100644 index 00000000000..2a77f81af4d --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64.postrm b/linux-image-4.8.0-0.bpo.2-sparc64.postrm new file mode 100644 index 00000000000..1c7610c2af3 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64.preinst b/linux-image-4.8.0-0.bpo.2-sparc64.preinst new file mode 100644 index 00000000000..068d790942c --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-sparc64.prerm b/linux-image-4.8.0-0.bpo.2-sparc64.prerm new file mode 100644 index 00000000000..b8757014f0d --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-sparc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-versatile.postinst b/linux-image-4.8.0-0.bpo.2-versatile.postinst new file mode 100644 index 00000000000..f5b09535e26 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-versatile.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-versatile.postrm b/linux-image-4.8.0-0.bpo.2-versatile.postrm new file mode 100644 index 00000000000..9254107be31 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-versatile.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-versatile +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-versatile.preinst b/linux-image-4.8.0-0.bpo.2-versatile.preinst new file mode 100644 index 00000000000..eff864e5185 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-versatile.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-0.bpo.2-versatile.prerm b/linux-image-4.8.0-0.bpo.2-versatile.prerm new file mode 100644 index 00000000000..013df88d796 --- /dev/null +++ b/linux-image-4.8.0-0.bpo.2-versatile.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-0.bpo.2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-4kc-malta-dbgsym.lintian-overrides b/linux-image-4.8.0-2-4kc-malta-dbgsym.lintian-overrides new file mode 100644 index 00000000000..69246d72ec3 --- /dev/null +++ b/linux-image-4.8.0-2-4kc-malta-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-4kc-malta-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-4kc-malta.postinst b/linux-image-4.8.0-2-4kc-malta.postinst new file mode 100644 index 00000000000..2b7b070b3f6 --- /dev/null +++ b/linux-image-4.8.0-2-4kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-4kc-malta.postrm b/linux-image-4.8.0-2-4kc-malta.postrm new file mode 100644 index 00000000000..51dca6cc97e --- /dev/null +++ b/linux-image-4.8.0-2-4kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-4kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-4kc-malta.preinst b/linux-image-4.8.0-2-4kc-malta.preinst new file mode 100644 index 00000000000..a3cc7710867 --- /dev/null +++ b/linux-image-4.8.0-2-4kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-4kc-malta.prerm b/linux-image-4.8.0-2-4kc-malta.prerm new file mode 100644 index 00000000000..3074e8f7433 --- /dev/null +++ b/linux-image-4.8.0-2-4kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-5kc-malta-dbgsym.lintian-overrides b/linux-image-4.8.0-2-5kc-malta-dbgsym.lintian-overrides new file mode 100644 index 00000000000..db62a4bd97b --- /dev/null +++ b/linux-image-4.8.0-2-5kc-malta-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-5kc-malta-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-5kc-malta.postinst b/linux-image-4.8.0-2-5kc-malta.postinst new file mode 100644 index 00000000000..0086bf4a14b --- /dev/null +++ b/linux-image-4.8.0-2-5kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-5kc-malta.postrm b/linux-image-4.8.0-2-5kc-malta.postrm new file mode 100644 index 00000000000..ffb1c4a6707 --- /dev/null +++ b/linux-image-4.8.0-2-5kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-5kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-5kc-malta.preinst b/linux-image-4.8.0-2-5kc-malta.preinst new file mode 100644 index 00000000000..5cba088e168 --- /dev/null +++ b/linux-image-4.8.0-2-5kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-5kc-malta.prerm b/linux-image-4.8.0-2-5kc-malta.prerm new file mode 100644 index 00000000000..f1d1e69a396 --- /dev/null +++ b/linux-image-4.8.0-2-5kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-dbgsym.lintian-overrides b/linux-image-4.8.0-2-686-dbgsym.lintian-overrides new file mode 100644 index 00000000000..2131334a148 --- /dev/null +++ b/linux-image-4.8.0-2-686-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-686-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-686-pae-dbgsym.lintian-overrides b/linux-image-4.8.0-2-686-pae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..0f8d17d7b04 --- /dev/null +++ b/linux-image-4.8.0-2-686-pae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-686-pae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-686-pae-unsigned.postinst b/linux-image-4.8.0-2-686-pae-unsigned.postinst new file mode 100644 index 00000000000..fce62b60599 --- /dev/null +++ b/linux-image-4.8.0-2-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-pae-unsigned.postrm b/linux-image-4.8.0-2-686-pae-unsigned.postrm new file mode 100644 index 00000000000..90ec8e2be19 --- /dev/null +++ b/linux-image-4.8.0-2-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-pae-unsigned.preinst b/linux-image-4.8.0-2-686-pae-unsigned.preinst new file mode 100644 index 00000000000..d490d247eb4 --- /dev/null +++ b/linux-image-4.8.0-2-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-pae-unsigned.prerm b/linux-image-4.8.0-2-686-pae-unsigned.prerm new file mode 100644 index 00000000000..a8df9d95e09 --- /dev/null +++ b/linux-image-4.8.0-2-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-unsigned.postinst b/linux-image-4.8.0-2-686-unsigned.postinst new file mode 100644 index 00000000000..f702d6e4c99 --- /dev/null +++ b/linux-image-4.8.0-2-686-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-unsigned.postrm b/linux-image-4.8.0-2-686-unsigned.postrm new file mode 100644 index 00000000000..be9d3610c42 --- /dev/null +++ b/linux-image-4.8.0-2-686-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-686 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-unsigned.preinst b/linux-image-4.8.0-2-686-unsigned.preinst new file mode 100644 index 00000000000..29e596ab340 --- /dev/null +++ b/linux-image-4.8.0-2-686-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-686-unsigned.prerm b/linux-image-4.8.0-2-686-unsigned.prerm new file mode 100644 index 00000000000..0ffc99769c7 --- /dev/null +++ b/linux-image-4.8.0-2-686-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-generic-dbgsym.lintian-overrides b/linux-image-4.8.0-2-alpha-generic-dbgsym.lintian-overrides new file mode 100644 index 00000000000..64370c8f4e3 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-generic-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-alpha-generic-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-alpha-generic.postinst b/linux-image-4.8.0-2-alpha-generic.postinst new file mode 100644 index 00000000000..d33c286dc26 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-generic.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-generic.postrm b/linux-image-4.8.0-2-alpha-generic.postrm new file mode 100644 index 00000000000..56314e0b11e --- /dev/null +++ b/linux-image-4.8.0-2-alpha-generic.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-generic +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-generic.preinst b/linux-image-4.8.0-2-alpha-generic.preinst new file mode 100644 index 00000000000..657c9bddd26 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-generic.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-generic.prerm b/linux-image-4.8.0-2-alpha-generic.prerm new file mode 100644 index 00000000000..482b2f1f585 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-generic.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-smp-dbgsym.lintian-overrides b/linux-image-4.8.0-2-alpha-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c1d8e349799 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-alpha-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-alpha-smp.postinst b/linux-image-4.8.0-2-alpha-smp.postinst new file mode 100644 index 00000000000..0ce0cbdb18f --- /dev/null +++ b/linux-image-4.8.0-2-alpha-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-smp.postrm b/linux-image-4.8.0-2-alpha-smp.postrm new file mode 100644 index 00000000000..ccda08ac99a --- /dev/null +++ b/linux-image-4.8.0-2-alpha-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-smp.preinst b/linux-image-4.8.0-2-alpha-smp.preinst new file mode 100644 index 00000000000..c108c584066 --- /dev/null +++ b/linux-image-4.8.0-2-alpha-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-alpha-smp.prerm b/linux-image-4.8.0-2-alpha-smp.prerm new file mode 100644 index 00000000000..d0e1e8e043c --- /dev/null +++ b/linux-image-4.8.0-2-alpha-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-amd64-dbgsym.lintian-overrides b/linux-image-4.8.0-2-amd64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..60b2ca859ce --- /dev/null +++ b/linux-image-4.8.0-2-amd64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-amd64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-amd64-unsigned.postinst b/linux-image-4.8.0-2-amd64-unsigned.postinst new file mode 100644 index 00000000000..08dde3821f6 --- /dev/null +++ b/linux-image-4.8.0-2-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-amd64-unsigned.postrm b/linux-image-4.8.0-2-amd64-unsigned.postrm new file mode 100644 index 00000000000..6f9690ad875 --- /dev/null +++ b/linux-image-4.8.0-2-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-amd64-unsigned.preinst b/linux-image-4.8.0-2-amd64-unsigned.preinst new file mode 100644 index 00000000000..584a1052951 --- /dev/null +++ b/linux-image-4.8.0-2-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-amd64-unsigned.prerm b/linux-image-4.8.0-2-amd64-unsigned.prerm new file mode 100644 index 00000000000..faa0f79f625 --- /dev/null +++ b/linux-image-4.8.0-2-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-arm64-dbgsym.lintian-overrides b/linux-image-4.8.0-2-arm64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..a23ebc749e9 --- /dev/null +++ b/linux-image-4.8.0-2-arm64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-arm64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-arm64-unsigned.postinst b/linux-image-4.8.0-2-arm64-unsigned.postinst new file mode 100644 index 00000000000..8a1244de089 --- /dev/null +++ b/linux-image-4.8.0-2-arm64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-arm64-unsigned.postrm b/linux-image-4.8.0-2-arm64-unsigned.postrm new file mode 100644 index 00000000000..741fef0ba64 --- /dev/null +++ b/linux-image-4.8.0-2-arm64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-arm64-unsigned.preinst b/linux-image-4.8.0-2-arm64-unsigned.preinst new file mode 100644 index 00000000000..6f4b906f620 --- /dev/null +++ b/linux-image-4.8.0-2-arm64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-arm64-unsigned.prerm b/linux-image-4.8.0-2-arm64-unsigned.prerm new file mode 100644 index 00000000000..e2dad9d23af --- /dev/null +++ b/linux-image-4.8.0-2-arm64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-dbgsym.lintian-overrides b/linux-image-4.8.0-2-armmp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..69573933fe4 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-armmp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-armmp-lpae-dbgsym.lintian-overrides b/linux-image-4.8.0-2-armmp-lpae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..369fb94c066 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-lpae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-armmp-lpae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-armmp-lpae-unsigned.postinst b/linux-image-4.8.0-2-armmp-lpae-unsigned.postinst new file mode 100644 index 00000000000..63d94b6e9e9 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-lpae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-lpae-unsigned.postrm b/linux-image-4.8.0-2-armmp-lpae-unsigned.postrm new file mode 100644 index 00000000000..8b883f95b9d --- /dev/null +++ b/linux-image-4.8.0-2-armmp-lpae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp-lpae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-lpae-unsigned.preinst b/linux-image-4.8.0-2-armmp-lpae-unsigned.preinst new file mode 100644 index 00000000000..b87deed8035 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-lpae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-lpae-unsigned.prerm b/linux-image-4.8.0-2-armmp-lpae-unsigned.prerm new file mode 100644 index 00000000000..083a9f4b3f4 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-lpae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-unsigned.postinst b/linux-image-4.8.0-2-armmp-unsigned.postinst new file mode 100644 index 00000000000..708aafff802 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-unsigned.postrm b/linux-image-4.8.0-2-armmp-unsigned.postrm new file mode 100644 index 00000000000..4dbfcef3857 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-unsigned.preinst b/linux-image-4.8.0-2-armmp-unsigned.preinst new file mode 100644 index 00000000000..cc728c0c279 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-armmp-unsigned.prerm b/linux-image-4.8.0-2-armmp-unsigned.prerm new file mode 100644 index 00000000000..fba399c7c52 --- /dev/null +++ b/linux-image-4.8.0-2-armmp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-loongson-3-dbgsym.lintian-overrides b/linux-image-4.8.0-2-loongson-3-dbgsym.lintian-overrides new file mode 100644 index 00000000000..f45fb77ae69 --- /dev/null +++ b/linux-image-4.8.0-2-loongson-3-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-loongson-3-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-loongson-3.postinst b/linux-image-4.8.0-2-loongson-3.postinst new file mode 100644 index 00000000000..58732947074 --- /dev/null +++ b/linux-image-4.8.0-2-loongson-3.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-loongson-3.postrm b/linux-image-4.8.0-2-loongson-3.postrm new file mode 100644 index 00000000000..6c9582101c3 --- /dev/null +++ b/linux-image-4.8.0-2-loongson-3.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-loongson-3 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-loongson-3.preinst b/linux-image-4.8.0-2-loongson-3.preinst new file mode 100644 index 00000000000..b49f845e32b --- /dev/null +++ b/linux-image-4.8.0-2-loongson-3.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-loongson-3.prerm b/linux-image-4.8.0-2-loongson-3.prerm new file mode 100644 index 00000000000..e9be1821968 --- /dev/null +++ b/linux-image-4.8.0-2-loongson-3.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-m68k-dbgsym.lintian-overrides b/linux-image-4.8.0-2-m68k-dbgsym.lintian-overrides new file mode 100644 index 00000000000..181006b899b --- /dev/null +++ b/linux-image-4.8.0-2-m68k-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-m68k-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-m68k.postinst b/linux-image-4.8.0-2-m68k.postinst new file mode 100644 index 00000000000..6571d4ee295 --- /dev/null +++ b/linux-image-4.8.0-2-m68k.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-m68k.postrm b/linux-image-4.8.0-2-m68k.postrm new file mode 100644 index 00000000000..d17f36b8840 --- /dev/null +++ b/linux-image-4.8.0-2-m68k.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-m68k +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-m68k.preinst b/linux-image-4.8.0-2-m68k.preinst new file mode 100644 index 00000000000..dde930cef51 --- /dev/null +++ b/linux-image-4.8.0-2-m68k.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-m68k.prerm b/linux-image-4.8.0-2-m68k.prerm new file mode 100644 index 00000000000..097b6790217 --- /dev/null +++ b/linux-image-4.8.0-2-m68k.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-marvell-dbgsym.lintian-overrides b/linux-image-4.8.0-2-marvell-dbgsym.lintian-overrides new file mode 100644 index 00000000000..175331df0fb --- /dev/null +++ b/linux-image-4.8.0-2-marvell-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-marvell-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-marvell.postinst b/linux-image-4.8.0-2-marvell.postinst new file mode 100644 index 00000000000..d42cf8d44db --- /dev/null +++ b/linux-image-4.8.0-2-marvell.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-marvell.postrm b/linux-image-4.8.0-2-marvell.postrm new file mode 100644 index 00000000000..96127cf378c --- /dev/null +++ b/linux-image-4.8.0-2-marvell.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-marvell +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-marvell.preinst b/linux-image-4.8.0-2-marvell.preinst new file mode 100644 index 00000000000..01ba23df57d --- /dev/null +++ b/linux-image-4.8.0-2-marvell.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-marvell.prerm b/linux-image-4.8.0-2-marvell.prerm new file mode 100644 index 00000000000..e9dbe96ec6f --- /dev/null +++ b/linux-image-4.8.0-2-marvell.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-octeon-dbgsym.lintian-overrides b/linux-image-4.8.0-2-octeon-dbgsym.lintian-overrides new file mode 100644 index 00000000000..32b468d8368 --- /dev/null +++ b/linux-image-4.8.0-2-octeon-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-octeon-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-octeon.postinst b/linux-image-4.8.0-2-octeon.postinst new file mode 100644 index 00000000000..83f6b8fdfa0 --- /dev/null +++ b/linux-image-4.8.0-2-octeon.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-octeon.postrm b/linux-image-4.8.0-2-octeon.postrm new file mode 100644 index 00000000000..9a6a5e0a67a --- /dev/null +++ b/linux-image-4.8.0-2-octeon.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-octeon +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-octeon.preinst b/linux-image-4.8.0-2-octeon.preinst new file mode 100644 index 00000000000..c37a1ba152a --- /dev/null +++ b/linux-image-4.8.0-2-octeon.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-octeon.prerm b/linux-image-4.8.0-2-octeon.prerm new file mode 100644 index 00000000000..bc4e55c1ed7 --- /dev/null +++ b/linux-image-4.8.0-2-octeon.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc-dbgsym.lintian-overrides b/linux-image-4.8.0-2-parisc-dbgsym.lintian-overrides new file mode 100644 index 00000000000..084542c47e2 --- /dev/null +++ b/linux-image-4.8.0-2-parisc-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-parisc-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-parisc.postinst b/linux-image-4.8.0-2-parisc.postinst new file mode 100644 index 00000000000..f6ce90eff83 --- /dev/null +++ b/linux-image-4.8.0-2-parisc.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc.postrm b/linux-image-4.8.0-2-parisc.postrm new file mode 100644 index 00000000000..a7502ff2baa --- /dev/null +++ b/linux-image-4.8.0-2-parisc.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc.preinst b/linux-image-4.8.0-2-parisc.preinst new file mode 100644 index 00000000000..68c04f7d3b6 --- /dev/null +++ b/linux-image-4.8.0-2-parisc.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc.prerm b/linux-image-4.8.0-2-parisc.prerm new file mode 100644 index 00000000000..95cbf33bb70 --- /dev/null +++ b/linux-image-4.8.0-2-parisc.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc64-smp-dbgsym.lintian-overrides b/linux-image-4.8.0-2-parisc64-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..1f04b680127 --- /dev/null +++ b/linux-image-4.8.0-2-parisc64-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-parisc64-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-parisc64-smp.postinst b/linux-image-4.8.0-2-parisc64-smp.postinst new file mode 100644 index 00000000000..c07f7c0f01f --- /dev/null +++ b/linux-image-4.8.0-2-parisc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc64-smp.postrm b/linux-image-4.8.0-2-parisc64-smp.postrm new file mode 100644 index 00000000000..7b17f8c924e --- /dev/null +++ b/linux-image-4.8.0-2-parisc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc64-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc64-smp.preinst b/linux-image-4.8.0-2-parisc64-smp.preinst new file mode 100644 index 00000000000..48cb0eb5cde --- /dev/null +++ b/linux-image-4.8.0-2-parisc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-parisc64-smp.prerm b/linux-image-4.8.0-2-parisc64-smp.prerm new file mode 100644 index 00000000000..a71ad7f240f --- /dev/null +++ b/linux-image-4.8.0-2-parisc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-dbgsym.lintian-overrides b/linux-image-4.8.0-2-powerpc-dbgsym.lintian-overrides new file mode 100644 index 00000000000..63c52b6901d --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-powerpc-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-powerpc-smp-dbgsym.lintian-overrides b/linux-image-4.8.0-2-powerpc-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..63f27301da1 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-powerpc-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-powerpc-smp-unsigned.postinst b/linux-image-4.8.0-2-powerpc-smp-unsigned.postinst new file mode 100644 index 00000000000..57a0a72dda8 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-smp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-smp-unsigned.postrm b/linux-image-4.8.0-2-powerpc-smp-unsigned.postrm new file mode 100644 index 00000000000..ef617436079 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-smp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-smp-unsigned.preinst b/linux-image-4.8.0-2-powerpc-smp-unsigned.preinst new file mode 100644 index 00000000000..0d877eb5dcb --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-smp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-smp-unsigned.prerm b/linux-image-4.8.0-2-powerpc-smp-unsigned.prerm new file mode 100644 index 00000000000..ab65ef458eb --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-smp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-unsigned.postinst b/linux-image-4.8.0-2-powerpc-unsigned.postinst new file mode 100644 index 00000000000..008ed6c50ce --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-unsigned.postrm b/linux-image-4.8.0-2-powerpc-unsigned.postrm new file mode 100644 index 00000000000..9aed58ac920 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-unsigned.preinst b/linux-image-4.8.0-2-powerpc-unsigned.preinst new file mode 100644 index 00000000000..51a7062af88 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc-unsigned.prerm b/linux-image-4.8.0-2-powerpc-unsigned.prerm new file mode 100644 index 00000000000..2d88af0dcef --- /dev/null +++ b/linux-image-4.8.0-2-powerpc-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64-dbgsym.lintian-overrides b/linux-image-4.8.0-2-powerpc64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..abf133a0b6a --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-powerpc64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-powerpc64-unsigned.postinst b/linux-image-4.8.0-2-powerpc64-unsigned.postinst new file mode 100644 index 00000000000..4dbbc043263 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64-unsigned.postrm b/linux-image-4.8.0-2-powerpc64-unsigned.postrm new file mode 100644 index 00000000000..89e75af9934 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64-unsigned.preinst b/linux-image-4.8.0-2-powerpc64-unsigned.preinst new file mode 100644 index 00000000000..c44b02de15f --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64-unsigned.prerm b/linux-image-4.8.0-2-powerpc64-unsigned.prerm new file mode 100644 index 00000000000..eb97f7ca2bd --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64.postinst b/linux-image-4.8.0-2-powerpc64.postinst new file mode 100644 index 00000000000..4dbbc043263 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64.postrm b/linux-image-4.8.0-2-powerpc64.postrm new file mode 100644 index 00000000000..89e75af9934 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64.preinst b/linux-image-4.8.0-2-powerpc64.preinst new file mode 100644 index 00000000000..c44b02de15f --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64.prerm b/linux-image-4.8.0-2-powerpc64.prerm new file mode 100644 index 00000000000..eb97f7ca2bd --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64le-dbgsym.lintian-overrides b/linux-image-4.8.0-2-powerpc64le-dbgsym.lintian-overrides new file mode 100644 index 00000000000..9907c1f4dfe --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64le-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-powerpc64le-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-powerpc64le-unsigned.postinst b/linux-image-4.8.0-2-powerpc64le-unsigned.postinst new file mode 100644 index 00000000000..868940b646a --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64le-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64le-unsigned.postrm b/linux-image-4.8.0-2-powerpc64le-unsigned.postrm new file mode 100644 index 00000000000..2646e847c47 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64le-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64le +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64le-unsigned.preinst b/linux-image-4.8.0-2-powerpc64le-unsigned.preinst new file mode 100644 index 00000000000..f92a1290090 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64le-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpc64le-unsigned.prerm b/linux-image-4.8.0-2-powerpc64le-unsigned.prerm new file mode 100644 index 00000000000..3835e39df69 --- /dev/null +++ b/linux-image-4.8.0-2-powerpc64le-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpcspe-dbgsym.lintian-overrides b/linux-image-4.8.0-2-powerpcspe-dbgsym.lintian-overrides new file mode 100644 index 00000000000..2f7cf9d9b86 --- /dev/null +++ b/linux-image-4.8.0-2-powerpcspe-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-powerpcspe-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-powerpcspe.postinst b/linux-image-4.8.0-2-powerpcspe.postinst new file mode 100644 index 00000000000..f6498fd29d8 --- /dev/null +++ b/linux-image-4.8.0-2-powerpcspe.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpcspe.postrm b/linux-image-4.8.0-2-powerpcspe.postrm new file mode 100644 index 00000000000..9cbd0b72dcb --- /dev/null +++ b/linux-image-4.8.0-2-powerpcspe.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpcspe +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpcspe.preinst b/linux-image-4.8.0-2-powerpcspe.preinst new file mode 100644 index 00000000000..54429b2fa40 --- /dev/null +++ b/linux-image-4.8.0-2-powerpcspe.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-powerpcspe.prerm b/linux-image-4.8.0-2-powerpcspe.prerm new file mode 100644 index 00000000000..b00ed100c3e --- /dev/null +++ b/linux-image-4.8.0-2-powerpcspe.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-686-pae-dbgsym.lintian-overrides b/linux-image-4.8.0-2-rt-686-pae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..1984a6e836f --- /dev/null +++ b/linux-image-4.8.0-2-rt-686-pae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-rt-686-pae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-rt-686-pae-unsigned.postinst b/linux-image-4.8.0-2-rt-686-pae-unsigned.postinst new file mode 100644 index 00000000000..843a5ec5319 --- /dev/null +++ b/linux-image-4.8.0-2-rt-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-686-pae-unsigned.postrm b/linux-image-4.8.0-2-rt-686-pae-unsigned.postrm new file mode 100644 index 00000000000..7f1e48b314e --- /dev/null +++ b/linux-image-4.8.0-2-rt-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-686-pae-unsigned.preinst b/linux-image-4.8.0-2-rt-686-pae-unsigned.preinst new file mode 100644 index 00000000000..96f69c6c6dc --- /dev/null +++ b/linux-image-4.8.0-2-rt-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-686-pae-unsigned.prerm b/linux-image-4.8.0-2-rt-686-pae-unsigned.prerm new file mode 100644 index 00000000000..2b37288cdea --- /dev/null +++ b/linux-image-4.8.0-2-rt-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-amd64-dbgsym.lintian-overrides b/linux-image-4.8.0-2-rt-amd64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..a9243279873 --- /dev/null +++ b/linux-image-4.8.0-2-rt-amd64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-rt-amd64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-rt-amd64-unsigned.postinst b/linux-image-4.8.0-2-rt-amd64-unsigned.postinst new file mode 100644 index 00000000000..da8a08bb708 --- /dev/null +++ b/linux-image-4.8.0-2-rt-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-amd64-unsigned.postrm b/linux-image-4.8.0-2-rt-amd64-unsigned.postrm new file mode 100644 index 00000000000..bfdecede32c --- /dev/null +++ b/linux-image-4.8.0-2-rt-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-amd64-unsigned.preinst b/linux-image-4.8.0-2-rt-amd64-unsigned.preinst new file mode 100644 index 00000000000..0cc351f61f3 --- /dev/null +++ b/linux-image-4.8.0-2-rt-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-rt-amd64-unsigned.prerm b/linux-image-4.8.0-2-rt-amd64-unsigned.prerm new file mode 100644 index 00000000000..604d0ad0900 --- /dev/null +++ b/linux-image-4.8.0-2-rt-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-s390x-dbgsym.lintian-overrides b/linux-image-4.8.0-2-s390x-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c9f5c8f316c --- /dev/null +++ b/linux-image-4.8.0-2-s390x-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-s390x-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-s390x-unsigned.postinst b/linux-image-4.8.0-2-s390x-unsigned.postinst new file mode 100644 index 00000000000..732f6a6445d --- /dev/null +++ b/linux-image-4.8.0-2-s390x-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-s390x-unsigned.postrm b/linux-image-4.8.0-2-s390x-unsigned.postrm new file mode 100644 index 00000000000..057f7fb7ca7 --- /dev/null +++ b/linux-image-4.8.0-2-s390x-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-s390x +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-s390x-unsigned.preinst b/linux-image-4.8.0-2-s390x-unsigned.preinst new file mode 100644 index 00000000000..8504b61ec2b --- /dev/null +++ b/linux-image-4.8.0-2-s390x-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-s390x-unsigned.prerm b/linux-image-4.8.0-2-s390x-unsigned.prerm new file mode 100644 index 00000000000..173cc3c4da8 --- /dev/null +++ b/linux-image-4.8.0-2-s390x-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7751r-dbgsym.lintian-overrides b/linux-image-4.8.0-2-sh7751r-dbgsym.lintian-overrides new file mode 100644 index 00000000000..e5c461f4ac9 --- /dev/null +++ b/linux-image-4.8.0-2-sh7751r-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-sh7751r-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-sh7751r.postinst b/linux-image-4.8.0-2-sh7751r.postinst new file mode 100644 index 00000000000..40e7f5508ef --- /dev/null +++ b/linux-image-4.8.0-2-sh7751r.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7751r.postrm b/linux-image-4.8.0-2-sh7751r.postrm new file mode 100644 index 00000000000..e3b4fef48d9 --- /dev/null +++ b/linux-image-4.8.0-2-sh7751r.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7751r +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7751r.preinst b/linux-image-4.8.0-2-sh7751r.preinst new file mode 100644 index 00000000000..d65bc5fa27d --- /dev/null +++ b/linux-image-4.8.0-2-sh7751r.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7751r.prerm b/linux-image-4.8.0-2-sh7751r.prerm new file mode 100644 index 00000000000..0564c32e21b --- /dev/null +++ b/linux-image-4.8.0-2-sh7751r.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7785lcr-dbgsym.lintian-overrides b/linux-image-4.8.0-2-sh7785lcr-dbgsym.lintian-overrides new file mode 100644 index 00000000000..a0b9604c2df --- /dev/null +++ b/linux-image-4.8.0-2-sh7785lcr-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-sh7785lcr-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-sh7785lcr.postinst b/linux-image-4.8.0-2-sh7785lcr.postinst new file mode 100644 index 00000000000..81d625cf997 --- /dev/null +++ b/linux-image-4.8.0-2-sh7785lcr.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7785lcr.postrm b/linux-image-4.8.0-2-sh7785lcr.postrm new file mode 100644 index 00000000000..eeeb9e39c57 --- /dev/null +++ b/linux-image-4.8.0-2-sh7785lcr.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7785lcr +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7785lcr.preinst b/linux-image-4.8.0-2-sh7785lcr.preinst new file mode 100644 index 00000000000..9852a9a2bc5 --- /dev/null +++ b/linux-image-4.8.0-2-sh7785lcr.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sh7785lcr.prerm b/linux-image-4.8.0-2-sh7785lcr.prerm new file mode 100644 index 00000000000..a9ddad06dd9 --- /dev/null +++ b/linux-image-4.8.0-2-sh7785lcr.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64-dbgsym.lintian-overrides b/linux-image-4.8.0-2-sparc64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..039923dae97 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-sparc64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-sparc64-smp-dbgsym.lintian-overrides b/linux-image-4.8.0-2-sparc64-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..d6052724830 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-sparc64-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-sparc64-smp.postinst b/linux-image-4.8.0-2-sparc64-smp.postinst new file mode 100644 index 00000000000..39abac1bcd2 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64-smp.postrm b/linux-image-4.8.0-2-sparc64-smp.postrm new file mode 100644 index 00000000000..a2a31512eb8 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64-smp.preinst b/linux-image-4.8.0-2-sparc64-smp.preinst new file mode 100644 index 00000000000..729486dba9d --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64-smp.prerm b/linux-image-4.8.0-2-sparc64-smp.prerm new file mode 100644 index 00000000000..9ce40b50164 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64.postinst b/linux-image-4.8.0-2-sparc64.postinst new file mode 100644 index 00000000000..7ff8a8b2961 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64.postrm b/linux-image-4.8.0-2-sparc64.postrm new file mode 100644 index 00000000000..b7c40dc8f25 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64.preinst b/linux-image-4.8.0-2-sparc64.preinst new file mode 100644 index 00000000000..85a7fcd3d1e --- /dev/null +++ b/linux-image-4.8.0-2-sparc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-sparc64.prerm b/linux-image-4.8.0-2-sparc64.prerm new file mode 100644 index 00000000000..47d71656239 --- /dev/null +++ b/linux-image-4.8.0-2-sparc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-versatile-dbgsym.lintian-overrides b/linux-image-4.8.0-2-versatile-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c584d229f3e --- /dev/null +++ b/linux-image-4.8.0-2-versatile-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.8.0-2-versatile-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.8.0-2-versatile.postinst b/linux-image-4.8.0-2-versatile.postinst new file mode 100644 index 00000000000..4effc83c1a2 --- /dev/null +++ b/linux-image-4.8.0-2-versatile.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.8.0-2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-versatile.postrm b/linux-image-4.8.0-2-versatile.postrm new file mode 100644 index 00000000000..7b6e1ad8553 --- /dev/null +++ b/linux-image-4.8.0-2-versatile.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.8.0-2-versatile +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.8.0-2-versatile.preinst b/linux-image-4.8.0-2-versatile.preinst new file mode 100644 index 00000000000..2dc7df067dc --- /dev/null +++ b/linux-image-4.8.0-2-versatile.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.8.0-2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.8.0-2-versatile.prerm b/linux-image-4.8.0-2-versatile.prerm new file mode 100644 index 00000000000..77b95d42a3d --- /dev/null +++ b/linux-image-4.8.0-2-versatile.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.8.0-2-versatile +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-4kc-malta-dbgsym.lintian-overrides b/linux-image-4.9.0-1-4kc-malta-dbgsym.lintian-overrides new file mode 100644 index 00000000000..2ebd99619f9 --- /dev/null +++ b/linux-image-4.9.0-1-4kc-malta-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-4kc-malta-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-4kc-malta.postinst b/linux-image-4.9.0-1-4kc-malta.postinst new file mode 100644 index 00000000000..e8074c2ac0a --- /dev/null +++ b/linux-image-4.9.0-1-4kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-4kc-malta.postrm b/linux-image-4.9.0-1-4kc-malta.postrm new file mode 100644 index 00000000000..f48b15f382e --- /dev/null +++ b/linux-image-4.9.0-1-4kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-4kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-4kc-malta.preinst b/linux-image-4.9.0-1-4kc-malta.preinst new file mode 100644 index 00000000000..8af5465154f --- /dev/null +++ b/linux-image-4.9.0-1-4kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-4kc-malta.prerm b/linux-image-4.9.0-1-4kc-malta.prerm new file mode 100644 index 00000000000..6efedbb1f9a --- /dev/null +++ b/linux-image-4.9.0-1-4kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-4kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-5kc-malta-dbgsym.lintian-overrides b/linux-image-4.9.0-1-5kc-malta-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c75cc9afa10 --- /dev/null +++ b/linux-image-4.9.0-1-5kc-malta-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-5kc-malta-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-5kc-malta.postinst b/linux-image-4.9.0-1-5kc-malta.postinst new file mode 100644 index 00000000000..007fbf7a694 --- /dev/null +++ b/linux-image-4.9.0-1-5kc-malta.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-5kc-malta.postrm b/linux-image-4.9.0-1-5kc-malta.postrm new file mode 100644 index 00000000000..5220e03fb99 --- /dev/null +++ b/linux-image-4.9.0-1-5kc-malta.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-5kc-malta +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-5kc-malta.preinst b/linux-image-4.9.0-1-5kc-malta.preinst new file mode 100644 index 00000000000..5a1c7ec77aa --- /dev/null +++ b/linux-image-4.9.0-1-5kc-malta.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-5kc-malta.prerm b/linux-image-4.9.0-1-5kc-malta.prerm new file mode 100644 index 00000000000..5058c8e9bb9 --- /dev/null +++ b/linux-image-4.9.0-1-5kc-malta.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-5kc-malta +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-dbgsym.lintian-overrides b/linux-image-4.9.0-1-686-dbgsym.lintian-overrides new file mode 100644 index 00000000000..1c101b8807e --- /dev/null +++ b/linux-image-4.9.0-1-686-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-686-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-686-pae-dbgsym.lintian-overrides b/linux-image-4.9.0-1-686-pae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c58483a0225 --- /dev/null +++ b/linux-image-4.9.0-1-686-pae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-686-pae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-686-pae-unsigned.postinst b/linux-image-4.9.0-1-686-pae-unsigned.postinst new file mode 100644 index 00000000000..5fd4349afcf --- /dev/null +++ b/linux-image-4.9.0-1-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-pae-unsigned.postrm b/linux-image-4.9.0-1-686-pae-unsigned.postrm new file mode 100644 index 00000000000..29348350c0c --- /dev/null +++ b/linux-image-4.9.0-1-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-pae-unsigned.preinst b/linux-image-4.9.0-1-686-pae-unsigned.preinst new file mode 100644 index 00000000000..ef7dff8782e --- /dev/null +++ b/linux-image-4.9.0-1-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-pae-unsigned.prerm b/linux-image-4.9.0-1-686-pae-unsigned.prerm new file mode 100644 index 00000000000..96bb0abf91b --- /dev/null +++ b/linux-image-4.9.0-1-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-unsigned.postinst b/linux-image-4.9.0-1-686-unsigned.postinst new file mode 100644 index 00000000000..ca51bbd1b55 --- /dev/null +++ b/linux-image-4.9.0-1-686-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-unsigned.postrm b/linux-image-4.9.0-1-686-unsigned.postrm new file mode 100644 index 00000000000..5c8f71da5fa --- /dev/null +++ b/linux-image-4.9.0-1-686-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-686 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-unsigned.preinst b/linux-image-4.9.0-1-686-unsigned.preinst new file mode 100644 index 00000000000..73513f20b97 --- /dev/null +++ b/linux-image-4.9.0-1-686-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-686-unsigned.prerm b/linux-image-4.9.0-1-686-unsigned.prerm new file mode 100644 index 00000000000..a25e7277581 --- /dev/null +++ b/linux-image-4.9.0-1-686-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-generic-dbgsym.lintian-overrides b/linux-image-4.9.0-1-alpha-generic-dbgsym.lintian-overrides new file mode 100644 index 00000000000..f0c5b4a47e1 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-generic-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-alpha-generic-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-alpha-generic.postinst b/linux-image-4.9.0-1-alpha-generic.postinst new file mode 100644 index 00000000000..f2a94e8fd55 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-generic.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-generic.postrm b/linux-image-4.9.0-1-alpha-generic.postrm new file mode 100644 index 00000000000..3365b3588b1 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-generic.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-generic +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-generic.preinst b/linux-image-4.9.0-1-alpha-generic.preinst new file mode 100644 index 00000000000..41e6c5b5efe --- /dev/null +++ b/linux-image-4.9.0-1-alpha-generic.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-generic.prerm b/linux-image-4.9.0-1-alpha-generic.prerm new file mode 100644 index 00000000000..97592a530e8 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-generic.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-smp-dbgsym.lintian-overrides b/linux-image-4.9.0-1-alpha-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..1cf69478507 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-alpha-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-alpha-smp.postinst b/linux-image-4.9.0-1-alpha-smp.postinst new file mode 100644 index 00000000000..4ef63d02865 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-smp.postrm b/linux-image-4.9.0-1-alpha-smp.postrm new file mode 100644 index 00000000000..0cfad0402f0 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-smp.preinst b/linux-image-4.9.0-1-alpha-smp.preinst new file mode 100644 index 00000000000..145eb84c0f9 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-alpha-smp.prerm b/linux-image-4.9.0-1-alpha-smp.prerm new file mode 100644 index 00000000000..b0219959ae6 --- /dev/null +++ b/linux-image-4.9.0-1-alpha-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-amd64-dbgsym.lintian-overrides b/linux-image-4.9.0-1-amd64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..44414b7d4dd --- /dev/null +++ b/linux-image-4.9.0-1-amd64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-amd64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-amd64-unsigned.postinst b/linux-image-4.9.0-1-amd64-unsigned.postinst new file mode 100644 index 00000000000..1fdb8133349 --- /dev/null +++ b/linux-image-4.9.0-1-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-amd64-unsigned.postrm b/linux-image-4.9.0-1-amd64-unsigned.postrm new file mode 100644 index 00000000000..0a6b418fc12 --- /dev/null +++ b/linux-image-4.9.0-1-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-amd64-unsigned.preinst b/linux-image-4.9.0-1-amd64-unsigned.preinst new file mode 100644 index 00000000000..c65bca390e4 --- /dev/null +++ b/linux-image-4.9.0-1-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-amd64-unsigned.prerm b/linux-image-4.9.0-1-amd64-unsigned.prerm new file mode 100644 index 00000000000..c68d60c0902 --- /dev/null +++ b/linux-image-4.9.0-1-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-arm64-dbgsym.lintian-overrides b/linux-image-4.9.0-1-arm64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..f45100cdf61 --- /dev/null +++ b/linux-image-4.9.0-1-arm64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-arm64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-arm64-unsigned.postinst b/linux-image-4.9.0-1-arm64-unsigned.postinst new file mode 100644 index 00000000000..e5356677e73 --- /dev/null +++ b/linux-image-4.9.0-1-arm64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-arm64-unsigned.postrm b/linux-image-4.9.0-1-arm64-unsigned.postrm new file mode 100644 index 00000000000..39f5f619403 --- /dev/null +++ b/linux-image-4.9.0-1-arm64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-arm64-unsigned.preinst b/linux-image-4.9.0-1-arm64-unsigned.preinst new file mode 100644 index 00000000000..129d2d18b57 --- /dev/null +++ b/linux-image-4.9.0-1-arm64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-arm64-unsigned.prerm b/linux-image-4.9.0-1-arm64-unsigned.prerm new file mode 100644 index 00000000000..8b696b1456c --- /dev/null +++ b/linux-image-4.9.0-1-arm64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-dbgsym.lintian-overrides b/linux-image-4.9.0-1-armmp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..b8434d69125 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-armmp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-armmp-lpae-dbgsym.lintian-overrides b/linux-image-4.9.0-1-armmp-lpae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..1b787228031 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-lpae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-armmp-lpae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-armmp-lpae-unsigned.postinst b/linux-image-4.9.0-1-armmp-lpae-unsigned.postinst new file mode 100644 index 00000000000..d86e8374553 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-lpae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-lpae-unsigned.postrm b/linux-image-4.9.0-1-armmp-lpae-unsigned.postrm new file mode 100644 index 00000000000..3e87b7590cf --- /dev/null +++ b/linux-image-4.9.0-1-armmp-lpae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp-lpae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-lpae-unsigned.preinst b/linux-image-4.9.0-1-armmp-lpae-unsigned.preinst new file mode 100644 index 00000000000..0cd1e853f36 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-lpae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-lpae-unsigned.prerm b/linux-image-4.9.0-1-armmp-lpae-unsigned.prerm new file mode 100644 index 00000000000..92e816e64c5 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-lpae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-unsigned.postinst b/linux-image-4.9.0-1-armmp-unsigned.postinst new file mode 100644 index 00000000000..22ff71c36bd --- /dev/null +++ b/linux-image-4.9.0-1-armmp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-unsigned.postrm b/linux-image-4.9.0-1-armmp-unsigned.postrm new file mode 100644 index 00000000000..9c1085215dc --- /dev/null +++ b/linux-image-4.9.0-1-armmp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-unsigned.preinst b/linux-image-4.9.0-1-armmp-unsigned.preinst new file mode 100644 index 00000000000..65944e42819 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-armmp-unsigned.prerm b/linux-image-4.9.0-1-armmp-unsigned.prerm new file mode 100644 index 00000000000..654e73d83b2 --- /dev/null +++ b/linux-image-4.9.0-1-armmp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-loongson-3-dbgsym.lintian-overrides b/linux-image-4.9.0-1-loongson-3-dbgsym.lintian-overrides new file mode 100644 index 00000000000..93909b3d12e --- /dev/null +++ b/linux-image-4.9.0-1-loongson-3-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-loongson-3-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-loongson-3.postinst b/linux-image-4.9.0-1-loongson-3.postinst new file mode 100644 index 00000000000..66552c07fdb --- /dev/null +++ b/linux-image-4.9.0-1-loongson-3.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-loongson-3.postrm b/linux-image-4.9.0-1-loongson-3.postrm new file mode 100644 index 00000000000..b879ea40984 --- /dev/null +++ b/linux-image-4.9.0-1-loongson-3.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-loongson-3 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-loongson-3.preinst b/linux-image-4.9.0-1-loongson-3.preinst new file mode 100644 index 00000000000..b9c9b7c0045 --- /dev/null +++ b/linux-image-4.9.0-1-loongson-3.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-loongson-3.prerm b/linux-image-4.9.0-1-loongson-3.prerm new file mode 100644 index 00000000000..60c832b4c0e --- /dev/null +++ b/linux-image-4.9.0-1-loongson-3.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-loongson-3 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-m68k-dbgsym.lintian-overrides b/linux-image-4.9.0-1-m68k-dbgsym.lintian-overrides new file mode 100644 index 00000000000..51f35957aed --- /dev/null +++ b/linux-image-4.9.0-1-m68k-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-m68k-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-m68k.postinst b/linux-image-4.9.0-1-m68k.postinst new file mode 100644 index 00000000000..ba37da3e865 --- /dev/null +++ b/linux-image-4.9.0-1-m68k.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-m68k.postrm b/linux-image-4.9.0-1-m68k.postrm new file mode 100644 index 00000000000..ce834e79d58 --- /dev/null +++ b/linux-image-4.9.0-1-m68k.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-m68k +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-m68k.preinst b/linux-image-4.9.0-1-m68k.preinst new file mode 100644 index 00000000000..a3d2e884f46 --- /dev/null +++ b/linux-image-4.9.0-1-m68k.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-m68k.prerm b/linux-image-4.9.0-1-m68k.prerm new file mode 100644 index 00000000000..cdcdbb16f07 --- /dev/null +++ b/linux-image-4.9.0-1-m68k.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-m68k +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-marvell-dbgsym.lintian-overrides b/linux-image-4.9.0-1-marvell-dbgsym.lintian-overrides new file mode 100644 index 00000000000..89524ee3dec --- /dev/null +++ b/linux-image-4.9.0-1-marvell-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-marvell-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-marvell.postinst b/linux-image-4.9.0-1-marvell.postinst new file mode 100644 index 00000000000..f5f00c1a536 --- /dev/null +++ b/linux-image-4.9.0-1-marvell.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-marvell.postrm b/linux-image-4.9.0-1-marvell.postrm new file mode 100644 index 00000000000..ad79a2c2a6f --- /dev/null +++ b/linux-image-4.9.0-1-marvell.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-marvell +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-marvell.preinst b/linux-image-4.9.0-1-marvell.preinst new file mode 100644 index 00000000000..03cf505105e --- /dev/null +++ b/linux-image-4.9.0-1-marvell.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-marvell.prerm b/linux-image-4.9.0-1-marvell.prerm new file mode 100644 index 00000000000..0f221a710db --- /dev/null +++ b/linux-image-4.9.0-1-marvell.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-octeon-dbgsym.lintian-overrides b/linux-image-4.9.0-1-octeon-dbgsym.lintian-overrides new file mode 100644 index 00000000000..01b1ffdc9b3 --- /dev/null +++ b/linux-image-4.9.0-1-octeon-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-octeon-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-octeon.postinst b/linux-image-4.9.0-1-octeon.postinst new file mode 100644 index 00000000000..131a7cfca31 --- /dev/null +++ b/linux-image-4.9.0-1-octeon.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-octeon.postrm b/linux-image-4.9.0-1-octeon.postrm new file mode 100644 index 00000000000..c7ca0498535 --- /dev/null +++ b/linux-image-4.9.0-1-octeon.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-octeon +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-octeon.preinst b/linux-image-4.9.0-1-octeon.preinst new file mode 100644 index 00000000000..ab2b00cec57 --- /dev/null +++ b/linux-image-4.9.0-1-octeon.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-octeon.prerm b/linux-image-4.9.0-1-octeon.prerm new file mode 100644 index 00000000000..d0e0daddba0 --- /dev/null +++ b/linux-image-4.9.0-1-octeon.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc-dbgsym.lintian-overrides b/linux-image-4.9.0-1-parisc-dbgsym.lintian-overrides new file mode 100644 index 00000000000..8dc427e7836 --- /dev/null +++ b/linux-image-4.9.0-1-parisc-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-parisc-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-parisc.postinst b/linux-image-4.9.0-1-parisc.postinst new file mode 100644 index 00000000000..b289c5cc4f4 --- /dev/null +++ b/linux-image-4.9.0-1-parisc.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc.postrm b/linux-image-4.9.0-1-parisc.postrm new file mode 100644 index 00000000000..1b59ff42faf --- /dev/null +++ b/linux-image-4.9.0-1-parisc.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc.preinst b/linux-image-4.9.0-1-parisc.preinst new file mode 100644 index 00000000000..f9e35237e37 --- /dev/null +++ b/linux-image-4.9.0-1-parisc.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc.prerm b/linux-image-4.9.0-1-parisc.prerm new file mode 100644 index 00000000000..d15d0a2ba5b --- /dev/null +++ b/linux-image-4.9.0-1-parisc.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc64-smp-dbgsym.lintian-overrides b/linux-image-4.9.0-1-parisc64-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..69330dd3867 --- /dev/null +++ b/linux-image-4.9.0-1-parisc64-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-parisc64-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-parisc64-smp.postinst b/linux-image-4.9.0-1-parisc64-smp.postinst new file mode 100644 index 00000000000..dbeedc29ac4 --- /dev/null +++ b/linux-image-4.9.0-1-parisc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc64-smp.postrm b/linux-image-4.9.0-1-parisc64-smp.postrm new file mode 100644 index 00000000000..00481c229d6 --- /dev/null +++ b/linux-image-4.9.0-1-parisc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc64-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc64-smp.preinst b/linux-image-4.9.0-1-parisc64-smp.preinst new file mode 100644 index 00000000000..4b5d7b8a545 --- /dev/null +++ b/linux-image-4.9.0-1-parisc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-parisc64-smp.prerm b/linux-image-4.9.0-1-parisc64-smp.prerm new file mode 100644 index 00000000000..7d903692d15 --- /dev/null +++ b/linux-image-4.9.0-1-parisc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-parisc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-dbgsym.lintian-overrides b/linux-image-4.9.0-1-powerpc-dbgsym.lintian-overrides new file mode 100644 index 00000000000..ef0c7e0fc36 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-powerpc-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-powerpc-smp-dbgsym.lintian-overrides b/linux-image-4.9.0-1-powerpc-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..c746ed4f33b --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-powerpc-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-powerpc-smp-unsigned.postinst b/linux-image-4.9.0-1-powerpc-smp-unsigned.postinst new file mode 100644 index 00000000000..a12fe58e75f --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-smp-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-smp-unsigned.postrm b/linux-image-4.9.0-1-powerpc-smp-unsigned.postrm new file mode 100644 index 00000000000..c5fdf20d6c7 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-smp-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-smp-unsigned.preinst b/linux-image-4.9.0-1-powerpc-smp-unsigned.preinst new file mode 100644 index 00000000000..9d8ce9c0829 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-smp-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-smp-unsigned.prerm b/linux-image-4.9.0-1-powerpc-smp-unsigned.prerm new file mode 100644 index 00000000000..0975c7abc5d --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-smp-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-unsigned.postinst b/linux-image-4.9.0-1-powerpc-unsigned.postinst new file mode 100644 index 00000000000..5e8164f45cc --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-unsigned.postrm b/linux-image-4.9.0-1-powerpc-unsigned.postrm new file mode 100644 index 00000000000..132757e06b8 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-unsigned.preinst b/linux-image-4.9.0-1-powerpc-unsigned.preinst new file mode 100644 index 00000000000..d7b29705095 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc-unsigned.prerm b/linux-image-4.9.0-1-powerpc-unsigned.prerm new file mode 100644 index 00000000000..70ca09d42a7 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64-dbgsym.lintian-overrides b/linux-image-4.9.0-1-powerpc64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..f2819002d50 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-powerpc64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-powerpc64-unsigned.postinst b/linux-image-4.9.0-1-powerpc64-unsigned.postinst new file mode 100644 index 00000000000..ed90c90daab --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64-unsigned.postrm b/linux-image-4.9.0-1-powerpc64-unsigned.postrm new file mode 100644 index 00000000000..6f6e7623cad --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64-unsigned.preinst b/linux-image-4.9.0-1-powerpc64-unsigned.preinst new file mode 100644 index 00000000000..be885c5a296 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64-unsigned.prerm b/linux-image-4.9.0-1-powerpc64-unsigned.prerm new file mode 100644 index 00000000000..ca0c705ebc4 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64.postinst b/linux-image-4.9.0-1-powerpc64.postinst new file mode 100644 index 00000000000..ed90c90daab --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64.postrm b/linux-image-4.9.0-1-powerpc64.postrm new file mode 100644 index 00000000000..6f6e7623cad --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64.preinst b/linux-image-4.9.0-1-powerpc64.preinst new file mode 100644 index 00000000000..be885c5a296 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64.prerm b/linux-image-4.9.0-1-powerpc64.prerm new file mode 100644 index 00000000000..ca0c705ebc4 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64le-dbgsym.lintian-overrides b/linux-image-4.9.0-1-powerpc64le-dbgsym.lintian-overrides new file mode 100644 index 00000000000..2b16f7edbee --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64le-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-powerpc64le-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-powerpc64le-unsigned.postinst b/linux-image-4.9.0-1-powerpc64le-unsigned.postinst new file mode 100644 index 00000000000..035601233e8 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64le-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64le-unsigned.postrm b/linux-image-4.9.0-1-powerpc64le-unsigned.postrm new file mode 100644 index 00000000000..e3c4bc853a8 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64le-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64le +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64le-unsigned.preinst b/linux-image-4.9.0-1-powerpc64le-unsigned.preinst new file mode 100644 index 00000000000..0289ae957cd --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64le-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpc64le-unsigned.prerm b/linux-image-4.9.0-1-powerpc64le-unsigned.prerm new file mode 100644 index 00000000000..a53de55f6c2 --- /dev/null +++ b/linux-image-4.9.0-1-powerpc64le-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpcspe-dbgsym.lintian-overrides b/linux-image-4.9.0-1-powerpcspe-dbgsym.lintian-overrides new file mode 100644 index 00000000000..119a63636a6 --- /dev/null +++ b/linux-image-4.9.0-1-powerpcspe-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-powerpcspe-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-powerpcspe.postinst b/linux-image-4.9.0-1-powerpcspe.postinst new file mode 100644 index 00000000000..e163ff2e788 --- /dev/null +++ b/linux-image-4.9.0-1-powerpcspe.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpcspe.postrm b/linux-image-4.9.0-1-powerpcspe.postrm new file mode 100644 index 00000000000..a0838f0380b --- /dev/null +++ b/linux-image-4.9.0-1-powerpcspe.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpcspe +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpcspe.preinst b/linux-image-4.9.0-1-powerpcspe.preinst new file mode 100644 index 00000000000..b72ae1536d0 --- /dev/null +++ b/linux-image-4.9.0-1-powerpcspe.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-powerpcspe.prerm b/linux-image-4.9.0-1-powerpcspe.prerm new file mode 100644 index 00000000000..9002d2bf8d2 --- /dev/null +++ b/linux-image-4.9.0-1-powerpcspe.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-powerpcspe +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-686-pae-dbgsym.lintian-overrides b/linux-image-4.9.0-1-rt-686-pae-dbgsym.lintian-overrides new file mode 100644 index 00000000000..d91f4730338 --- /dev/null +++ b/linux-image-4.9.0-1-rt-686-pae-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-rt-686-pae-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-rt-686-pae-unsigned.postinst b/linux-image-4.9.0-1-rt-686-pae-unsigned.postinst new file mode 100644 index 00000000000..e70bff4f8ff --- /dev/null +++ b/linux-image-4.9.0-1-rt-686-pae-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-686-pae-unsigned.postrm b/linux-image-4.9.0-1-rt-686-pae-unsigned.postrm new file mode 100644 index 00000000000..3363e900338 --- /dev/null +++ b/linux-image-4.9.0-1-rt-686-pae-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-686-pae-unsigned.preinst b/linux-image-4.9.0-1-rt-686-pae-unsigned.preinst new file mode 100644 index 00000000000..0bd8a5ec74b --- /dev/null +++ b/linux-image-4.9.0-1-rt-686-pae-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-686-pae-unsigned.prerm b/linux-image-4.9.0-1-rt-686-pae-unsigned.prerm new file mode 100644 index 00000000000..5650534ff8d --- /dev/null +++ b/linux-image-4.9.0-1-rt-686-pae-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-amd64-dbgsym.lintian-overrides b/linux-image-4.9.0-1-rt-amd64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..ae3f1589e57 --- /dev/null +++ b/linux-image-4.9.0-1-rt-amd64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-rt-amd64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-rt-amd64-unsigned.postinst b/linux-image-4.9.0-1-rt-amd64-unsigned.postinst new file mode 100644 index 00000000000..d4b35a83103 --- /dev/null +++ b/linux-image-4.9.0-1-rt-amd64-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-amd64-unsigned.postrm b/linux-image-4.9.0-1-rt-amd64-unsigned.postrm new file mode 100644 index 00000000000..d9caf7177fb --- /dev/null +++ b/linux-image-4.9.0-1-rt-amd64-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-amd64-unsigned.preinst b/linux-image-4.9.0-1-rt-amd64-unsigned.preinst new file mode 100644 index 00000000000..fd733f6d1dc --- /dev/null +++ b/linux-image-4.9.0-1-rt-amd64-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-rt-amd64-unsigned.prerm b/linux-image-4.9.0-1-rt-amd64-unsigned.prerm new file mode 100644 index 00000000000..13f9d81f2e4 --- /dev/null +++ b/linux-image-4.9.0-1-rt-amd64-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-s390x-dbgsym.lintian-overrides b/linux-image-4.9.0-1-s390x-dbgsym.lintian-overrides new file mode 100644 index 00000000000..647a60a4da8 --- /dev/null +++ b/linux-image-4.9.0-1-s390x-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-s390x-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-s390x-unsigned.postinst b/linux-image-4.9.0-1-s390x-unsigned.postinst new file mode 100644 index 00000000000..d2374f564be --- /dev/null +++ b/linux-image-4.9.0-1-s390x-unsigned.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-s390x-unsigned.postrm b/linux-image-4.9.0-1-s390x-unsigned.postrm new file mode 100644 index 00000000000..5c6b96bb408 --- /dev/null +++ b/linux-image-4.9.0-1-s390x-unsigned.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-s390x +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-s390x-unsigned.preinst b/linux-image-4.9.0-1-s390x-unsigned.preinst new file mode 100644 index 00000000000..5bcd69bd87f --- /dev/null +++ b/linux-image-4.9.0-1-s390x-unsigned.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-s390x-unsigned.prerm b/linux-image-4.9.0-1-s390x-unsigned.prerm new file mode 100644 index 00000000000..a68e39544ad --- /dev/null +++ b/linux-image-4.9.0-1-s390x-unsigned.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7751r-dbgsym.lintian-overrides b/linux-image-4.9.0-1-sh7751r-dbgsym.lintian-overrides new file mode 100644 index 00000000000..897b3c2596d --- /dev/null +++ b/linux-image-4.9.0-1-sh7751r-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-sh7751r-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-sh7751r.postinst b/linux-image-4.9.0-1-sh7751r.postinst new file mode 100644 index 00000000000..acbadc442c7 --- /dev/null +++ b/linux-image-4.9.0-1-sh7751r.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7751r.postrm b/linux-image-4.9.0-1-sh7751r.postrm new file mode 100644 index 00000000000..261709c822f --- /dev/null +++ b/linux-image-4.9.0-1-sh7751r.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7751r +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7751r.preinst b/linux-image-4.9.0-1-sh7751r.preinst new file mode 100644 index 00000000000..081bd835632 --- /dev/null +++ b/linux-image-4.9.0-1-sh7751r.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7751r.prerm b/linux-image-4.9.0-1-sh7751r.prerm new file mode 100644 index 00000000000..7d44fe85615 --- /dev/null +++ b/linux-image-4.9.0-1-sh7751r.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7785lcr-dbgsym.lintian-overrides b/linux-image-4.9.0-1-sh7785lcr-dbgsym.lintian-overrides new file mode 100644 index 00000000000..9b5cee60d80 --- /dev/null +++ b/linux-image-4.9.0-1-sh7785lcr-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-sh7785lcr-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-sh7785lcr.postinst b/linux-image-4.9.0-1-sh7785lcr.postinst new file mode 100644 index 00000000000..67aa02f8866 --- /dev/null +++ b/linux-image-4.9.0-1-sh7785lcr.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7785lcr.postrm b/linux-image-4.9.0-1-sh7785lcr.postrm new file mode 100644 index 00000000000..3a9b0121925 --- /dev/null +++ b/linux-image-4.9.0-1-sh7785lcr.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7785lcr +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7785lcr.preinst b/linux-image-4.9.0-1-sh7785lcr.preinst new file mode 100644 index 00000000000..570252d92a6 --- /dev/null +++ b/linux-image-4.9.0-1-sh7785lcr.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sh7785lcr.prerm b/linux-image-4.9.0-1-sh7785lcr.prerm new file mode 100644 index 00000000000..dd58662f38c --- /dev/null +++ b/linux-image-4.9.0-1-sh7785lcr.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64-dbgsym.lintian-overrides b/linux-image-4.9.0-1-sparc64-dbgsym.lintian-overrides new file mode 100644 index 00000000000..fc5bb42574d --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-sparc64-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-sparc64-smp-dbgsym.lintian-overrides b/linux-image-4.9.0-1-sparc64-smp-dbgsym.lintian-overrides new file mode 100644 index 00000000000..6f81a581134 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-smp-dbgsym.lintian-overrides @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-4.9.0-1-sparc64-smp-dbgsym: dbg-package-missing-depends diff --git a/linux-image-4.9.0-1-sparc64-smp.postinst b/linux-image-4.9.0-1-sparc64-smp.postinst new file mode 100644 index 00000000000..8b308a04c24 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-smp.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64-smp.postrm b/linux-image-4.9.0-1-sparc64-smp.postrm new file mode 100644 index 00000000000..7ecc56b97a3 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-smp.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64-smp.preinst b/linux-image-4.9.0-1-sparc64-smp.preinst new file mode 100644 index 00000000000..aedc3ff2a09 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-smp.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64-smp.prerm b/linux-image-4.9.0-1-sparc64-smp.prerm new file mode 100644 index 00000000000..4c82f8972af --- /dev/null +++ b/linux-image-4.9.0-1-sparc64-smp.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64.postinst b/linux-image-4.9.0-1-sparc64.postinst new file mode 100644 index 00000000000..e92a85cb54f --- /dev/null +++ b/linux-image-4.9.0-1-sparc64.postinst @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64.postrm b/linux-image-4.9.0-1-sparc64.postrm new file mode 100644 index 00000000000..ec7c8f9d20a --- /dev/null +++ b/linux-image-4.9.0-1-sparc64.postrm @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64.preinst b/linux-image-4.9.0-1-sparc64.preinst new file mode 100644 index 00000000000..8434ffca898 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64.preinst @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/linux-image-4.9.0-1-sparc64.prerm b/linux-image-4.9.0-1-sparc64.prerm new file mode 100644 index 00000000000..cc9284ecf16 --- /dev/null +++ b/linux-image-4.9.0-1-sparc64.prerm @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=4.9.0-1-sparc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/linux-perf-4.8.lintian-overrides b/linux-perf-4.8.lintian-overrides new file mode 100644 index 00000000000..ac3d6586822 --- /dev/null +++ b/linux-perf-4.8.lintian-overrides @@ -0,0 +1,3 @@ +# These executables are needed to handle processes running in compat mode +linux-perf-4.8: binary-from-other-architecture usr/lib/perf_4.8-core/perf-read-vdso32 +linux-perf-4.8: binary-from-other-architecture usr/lib/perf_4.8-core/perf-read-vdsox32 diff --git a/linux-perf-4.9.lintian-overrides b/linux-perf-4.9.lintian-overrides new file mode 100644 index 00000000000..a9f78913be4 --- /dev/null +++ b/linux-perf-4.9.lintian-overrides @@ -0,0 +1,3 @@ +# These executables are needed to handle processes running in compat mode +linux-perf-4.9: binary-from-other-architecture usr/lib/perf_4.9-core/perf-read-vdso32 +linux-perf-4.9: binary-from-other-architecture usr/lib/perf_4.9-core/perf-read-vdsox32 diff --git a/lockdep.dirs b/lockdep.dirs new file mode 100644 index 00000000000..e7724817552 --- /dev/null +++ b/lockdep.dirs @@ -0,0 +1 @@ +usr/bin diff --git a/patches/bugfix/all/cpupower-bump-soname-version.patch b/patches/bugfix/all/cpupower-bump-soname-version.patch new file mode 100644 index 00000000000..eebb23b4467 --- /dev/null +++ b/patches/bugfix/all/cpupower-bump-soname-version.patch @@ -0,0 +1,29 @@ +From: Ben Hutchings +Date: Thu, 9 Jun 2016 23:35:08 +0100 +Subject: cpupower: Bump soname version +Forwarded: http://mid.gmane.org/20160610005619.GQ7555@decadent.org.uk + +Several functions in the libcpupower API are renamed or removed in +Linux 4.7. This is an backward-incompatible ABI change, so the +library soname should change from libcpupower.so.0 to +libcpupower.so.1. + +Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library") +Signed-off-by: Ben Hutchings +--- + tools/power/cpupower/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/power/cpupower/Makefile b/tools/power/cpupower/Makefile +index 8358863259c5..0b85f5915ce8 100644 +--- a/tools/power/cpupower/Makefile ++++ b/tools/power/cpupower/Makefile +@@ -64,7 +64,7 @@ DESTDIR ?= + + VERSION= $(shell ./utils/version-gen.sh) + LIB_MAJ= 0.0.1 +-LIB_MIN= 0 ++LIB_MIN= 1 + + PACKAGE = cpupower + PACKAGE_BUGREPORT = linux-pm@vger.kernel.org diff --git a/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch b/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch new file mode 100644 index 00000000000..887ea500175 --- /dev/null +++ b/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch @@ -0,0 +1,49 @@ +From: Ben Hutchings +Date: Thu, 03 Nov 2016 15:25:26 -0600 +Subject: cpupower: Fix checks for CPU existence +Bug: https://bugzilla.kernel.org/show_bug.cgi?id=135391 +Bug-Debian: https://bugs.debian.org/843071 + +Calls to cpufreq_cpu_exists(cpu) were converted to +cpupower_is_cpu_online(cpu) when libcpupower was introduced and the +former function was deleted. However, cpupower_is_cpu_online() +returns 1 on success whereas cpufreq_cpu_exists() returned 0 on +success. It also does not distinguish physically absent and offline +CPUs, and does not set errno. + +cpufreq-set has already been fixed (commit c25badc9ceb6). + +In cpufreq-bench, which prints an error message for offline CPUs, +properly distinguish and report the zero and negative cases. + +Reported-by: Jose +Reported-by: Julien RIVAUD +Cc: stable # 4.7+ +Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library") +Signed-off-by: Ben Hutchings +--- +--- a/tools/power/cpupower/bench/system.c ++++ b/tools/power/cpupower/bench/system.c +@@ -58,12 +58,19 @@ long long int get_time() + + int set_cpufreq_governor(char *governor, unsigned int cpu) + { ++ int rc; + + dprintf("set %s as cpufreq governor\n", governor); + +- if (cpupower_is_cpu_online(cpu) != 0) { +- perror("cpufreq_cpu_exists"); +- fprintf(stderr, "error: cpu %u does not exist\n", cpu); ++ rc = cpupower_is_cpu_online(cpu); ++ if (rc != 1) { ++ if (rc < 0) ++ fprintf(stderr, "cpupower_is_cpu_online: %s\n", ++ strerror(-rc)); ++ else ++ fprintf(stderr, ++ "error: cpu %u is offline or does not exist\n", ++ cpu); + return -1; + } + diff --git a/patches/bugfix/all/disable-some-marvell-phys.patch b/patches/bugfix/all/disable-some-marvell-phys.patch new file mode 100644 index 00000000000..697929b4e6c --- /dev/null +++ b/patches/bugfix/all/disable-some-marvell-phys.patch @@ -0,0 +1,91 @@ +From: Ian Campbell +Subject: phy/marvell: disable 4-port phys +Date: Wed, 20 Nov 2013 08:30:14 +0000 +Bug-Debian: https://bugs.debian.org/723177 +Forwarded: http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/1107774/ + +The Marvell PHY was originally disabled because it can cause networking +failures on some systems. According to Lennert Buytenhek this is because some +of the variants added did not share the same register layout. Since the known +cases are all 4-ports disable those variants (indicated by a 4 in the +penultimate position of the model name) until they can be audited for +correctness. + +[bwh: Also #if-out the init functions for these PHYs to avoid + compiler warnings] + +--- a/drivers/net/phy/marvell.c ++++ b/drivers/net/phy/marvell.c +@@ -906,6 +906,7 @@ static int m88e1118_config_init(struct p + return phy_write(phydev, MII_BMCR, BMCR_RESET); + } + ++#if 0 + static int m88e1149_config_init(struct phy_device *phydev) + { + int err; +@@ -931,7 +932,9 @@ static int m88e1149_config_init(struct p + + return phy_write(phydev, MII_BMCR, BMCR_RESET); + } ++#endif + ++#if 0 + static int m88e1145_config_init(struct phy_device *phydev) + { + int err; +@@ -1012,6 +1015,7 @@ static int m88e1145_config_init(struct p + + return 0; + } ++#endif + + /** + * fiber_lpa_to_ethtool_lpa_t +@@ -1595,6 +1599,7 @@ static struct phy_driver marvell_drivers + .get_strings = marvell_get_strings, + .get_stats = marvell_get_stats, + }, ++#if 0 + { + .phy_id = MARVELL_PHY_ID_88E1145, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1613,6 +1618,8 @@ static struct phy_driver marvell_drivers + .get_strings = marvell_get_strings, + .get_stats = marvell_get_stats, + }, ++#endif ++#if 0 + { + .phy_id = MARVELL_PHY_ID_88E1149R, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1631,6 +1638,8 @@ static struct phy_driver marvell_drivers + .get_strings = marvell_get_strings, + .get_stats = marvell_get_stats, + }, ++#endif ++#if 0 + { + .phy_id = MARVELL_PHY_ID_88E1240, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1649,6 +1658,7 @@ static struct phy_driver marvell_drivers + .get_strings = marvell_get_strings, + .get_stats = marvell_get_stats, + }, ++#endif + { + .phy_id = MARVELL_PHY_ID_88E1116R, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1735,9 +1745,9 @@ static struct mdio_device_id __maybe_unu + { MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK }, +- { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, +- { MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK }, +- { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, ++/* { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, */ ++/* { MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK }, */ ++/* { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, */ + { MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK }, diff --git a/patches/bugfix/all/ext4-fix-bug-838544.patch b/patches/bugfix/all/ext4-fix-bug-838544.patch new file mode 100644 index 00000000000..2bdf2b5b455 --- /dev/null +++ b/patches/bugfix/all/ext4-fix-bug-838544.patch @@ -0,0 +1,218 @@ +From: "Darrick J. Wong" +Date: Mon, 19 Sep 2016 22:52:16 -0700 +Subject: Re: Trouble mounting metadata_csum ext4 filesystems with v4.7.x after c9274d891869880648c4ee9365df3ecc7ba2e285: not enough inode bytes checksummed? +Origin: https://www.spinics.net/lists/linux-fsdevel/msg101888.html +Bug-Debian: https://bugs.debian.org/838544 + +[cc Ted and the ext4 list] + +On Mon, Sep 19, 2016 at 03:19:03PM +0100, Nix wrote: +> So I ran into spurious metadata corruption warnings in v4.7.2 due to the +> problem fixed by c9274d8. I applied an early version of the fix, +> rebooted, and oh dear root filesystem mount failure with invalid +> checksum errors. +> +> The problem persists in v4.7.4, as seen here in qemu emulation on a raw +> image dd'ed directly from the thing that won't boot, with a couple of +> printk()s: +> +> # mount /dev/vda /new-root/ +> [ 8.124692] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibilities +> [ 8.126977] EXT4-fs (vda): couldn't mount as ext2 due to feature incompatibilities +> [ 9.017980] Inode size 256 > good old size 128; fits in inode: 0 +> [ 8.134897] inode 8: provided: 5c50l; calculated: 36e1i +> [ 8.135098] EXT4-fs error (device vda): ext4_iget:4479: inode #8: comm mount: checksum invalid +> [ 8.138992] EXT4-fs (vda): no journal found +> [ 8.165744] UDF-fs: warning (device vda): udf_fill_super: No partition found (2) +> mount: mounting /dev/vda on /new-root/ failed: Invalid argument +> +> I added a bit of printking to show the failure of the journal inode +> checksum to pass muster. e2fsck (from e2fsprogs 1.43.1-14) is quite +> happy with this filesystem. Reverting c9274d8 makes everything happy +> again (well, it does bring the original bug back, which is a rather +> serious one, but other than that...): +> +> [ 9.823032] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibilities +> [ 9.824647] EXT4-fs (vda): couldn't mount as ext2 due to feature incompatibilities +> [ 9.832593] inode 8: provided: 5c50l; calculated: 5c50i +> [ 9.839253] inode 2: provided: d6ea92e9l; calculated: d6ea92e9i +> [ 9.846947] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: (null) +> +> So c9274d8 is clearly messing up the calculation of the checksum. +> +> The problem becomes more evident if we add more printk()s to the old +> code, so we can see what region is being checksummed: +> +> # mount /dev/vda /new-root +> [ 6.827297] inode 8: unadjusted csum of 256 bytes with seed a5df92a7: 449a5c50 +> [ 6.827596] adjusted csum: 5c50 +> [ 6.835993] inode 2: unadjusted csum of 256 bytes with seed 759c6c33: d6ea92e9 +> [ 6.836173] adjusted csum: d6ea92e9 +> [ 6.844801] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: +> +> and the new: +> +> [ 11.098013] inode 8: csum of first 124 bytes with seed a5df92a7: f375b663 +> [ 11.098205] inode 8: added csum of 2 dummy_csum bytes with seed a5df92a7: 20cfebcb +> [ 11.098420] inode 8: added csum of 2 bytes from offset 126 -- 128 to existing: d79e7432 +> [ 11.098646] inode 8: > GOOD_OLD_INODE_SIZE; added csum of 2 bytes from 128 -- 130 to existing: d10936e1 +> [ 11.098890] 8: adjusted csum: 36e1 +> [ 11.099133] EXT4-fs error (device vda): ext4_iget:4483: inode #8: comm mount: checksum invalid +> +> We are not checksumming enough bytes! We used to checksum the entire +> 256-byte inode: now, we checksum only 130 bytes of it, which isn't even +> enough to cover the 28-byte extra_isize on this filesystem and is more +> or less guaranteed to give the wrong answer. I'd fix the problem, but I +> frankly can't see how the new code is meant to be equivalent to the old +> code in any sense -- most particularly what the stuff around dummy_csum +> is meant to do -- so I thought it better to let the people who wrote it +> fix it :) + +Sh*t, I missed this during the review. So your filesystem image (thank +you!) had this to say: + +debugfs> stats +Inode size: 256 +debugfs> stat <8> +Size of extra inode fields: 0 + +Basically, a 128-byte inode inside a filesystem that allocated 256 bytes +for each inode. As you point out, the old code would checksum the entire +allocated space, whether or not the inode core used it. Obviously, you +want this since inline extended attributes live in that space: + +csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)raw, + EXT4_INODE_SIZE(inode->i_sb)); + +The new code, on the other hand, carefully checksums around the +i_checksum fields and only bothers to checksum the space between the end +of i_checksum_hi and the end of the allocated space if the inode core is +big enough to store i_checksum_hi. Since we allocated 256 bytes for +each inode, we checksum the first two bytes after byte 128 +(EXT4_GOOD_OLD_INODE_SIZE), but then we see that i_extra_size == 0 so we +never bother to checksum anything after that. This is of course wrong +since we no longer checksum the xattr space and we've deviated from the +pre-4.7.4 (documented) on-disk format. + +*FORTUNATELY* since the root inode fails the read verifier, the file (in +this case the root dir) can't be modified and therefore nothing has been +corrupted. Especially fortunate for you, the fs won't mount, reducing +the chances that any serious damage has occurred. + +I /think/ the fix in this case is to hoist the last ext4_chksum call +out of the EXT4_FITS_IN_INODE blob: + +if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) { + offset = offsetof(struct ext4_inode, i_checksum_hi); + csum = ext4_chksum(sbi, csum, (__u8 *)raw + + EXT4_GOOD_OLD_INODE_SIZE, + offset - EXT4_GOOD_OLD_INODE_SIZE); + if (EXT4_FITS_IN_INODE(raw, ei, i_checksum_hi)) { + csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum, + csum_size); + offset += csum_size; + } + csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset, + EXT4_INODE_SIZE(inode->i_sb) - offset); +} + +Can you give that a try? + +> tune2fs output for this filesystem, particularly the extra_isize and +> inode size fields are likely relevant: +> +> tune2fs 1.43.1 (08-Jun-2016) +> Filesystem volume name: root +> Last mounted on: / +> Filesystem UUID: 6c0f7fa7-d6c2-4054-bff3-3a878460bdc7 +> Filesystem magic number: 0xEF53 +> Filesystem revision #: 1 (dynamic) +> Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum +> Filesystem flags: signed_directory_hash +> Default mount options: (none) +> Filesystem state: clean +> Errors behavior: Continue +> Filesystem OS type: Linux +> Inode count: 65536 +> Block count: 262144 +> Reserved block count: 13107 +> Free blocks: 227009 +> Free inodes: 59499 +> First block: 0 +> Block size: 4096 +> Fragment size: 4096 +> Group descriptor size: 64 +> Reserved GDT blocks: 63 +> Blocks per group: 32768 +> Fragments per group: 32768 +> Inodes per group: 8192 +> Inode blocks per group: 512 +> RAID stripe width: 16 +> Flex block group size: 64 +> Filesystem created: Tue May 26 21:28:46 2009 +> Last mount time: Sun Sep 18 23:34:41 2016 +> Last write time: Mon Sep 19 13:51:59 2016 +> Mount count: 0 +> Maximum mount count: 36 +> Last checked: Mon Sep 19 13:51:59 2016 +> Check interval: 15552000 (6 months) +> Next check after: Sat Mar 18 12:51:59 2017 +> Lifetime writes: 16 GB +> Reserved blocks uid: 0 (user root) +> Reserved blocks gid: 0 (group root) +> First inode: 11 +> Inode size: 256 +> Required extra isize: 28 +> Desired extra isize: 28 +> Journal inode: 8 +> Default directory hash: half_md4 +> Directory Hash Seed: f1da2da0-057e-4ba0-a021-3d56db5b24ab +> Journal backup: inode blocks +> Checksum type: crc32c +> Checksum: 0x92acf115 +> +> This is an old, upgraded fs from before the days of checksums, but even +> so I'm surprised that with a 256-byte inode and no xattrs in use, +> EXT4_FITS_IN_INODE is false. Maybe the extra_isize isn't big enough? + +It's zero, so yes. :) + +> An lzipped e2image of the problematic filesystem is available from +> : +> I have verified that the problem recurs with this image. +> +> I can also replicate the problem in literally seconds if you need more +> debugging output. +> +> +> ... The mystery is why this isn't going wrong anywhere else: I have +> metadata_csum working on every fs on a bunch of other ext4-using +> systems, and indeed on every filesystem on this machine as well, as long +> as c9274d8 is not applied. Many of them are similarly upgraded pre-csum +> fses with the same inode size and extra_isize, but they work... + +Hard to say, but this bug only affects inodes with 0 < i_extra_size <= 4 +i.e. 128 < inode-core-size <= 130. Maybe an old ext3 fs that was +created with 256 bytes per inode but inode-core-size of 128? + +Uck. Sorry about this mess. + +--D + +[bwh: Converted to a patch] +--- +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -71,10 +71,9 @@ static __u32 ext4_inode_csum(struct inod + csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum, + csum_size); + offset += csum_size; +- csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset, +- EXT4_INODE_SIZE(inode->i_sb) - +- offset); + } ++ csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset, ++ EXT4_INODE_SIZE(inode->i_sb) - offset); + } + + return csum; diff --git a/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch b/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch new file mode 100644 index 00000000000..5ecdb4c98b6 --- /dev/null +++ b/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch @@ -0,0 +1,2660 @@ +From: Ben Hutchings +Subject: firmware: Remove redundant log messages from drivers +Date: Sun, 09 Dec 2012 16:40:31 +0000 +Forwarded: no + +Now that firmware_class logs every success and failure consistently, +many other log messages can be removed from drivers. + +This will probably need to be split up into multiple patches prior to +upstream submission. + +--- a/arch/arm/mach-netx/xc.c ++++ b/arch/arm/mach-netx/xc.c +@@ -127,10 +127,8 @@ int xc_request_firmware(struct xc *x) + + ret = request_firmware(&fw, name, x->dev); + +- if (ret < 0) { +- dev_err(x->dev, "request_firmware failed\n"); ++ if (ret) + return ret; +- } + + head = (struct fw_header *)fw->data; + if (head->magic != 0x4e657458) { +--- a/arch/cris/arch-v32/drivers/iop_fw_load.c ++++ b/arch/cris/arch-v32/drivers/iop_fw_load.c +@@ -74,12 +74,7 @@ int iop_fw_load_spu(const unsigned char + fw_name, + &iop_spu_device[spu_inst]); + if (retval != 0) +- { +- printk(KERN_ERR +- "iop_load_spu: Failed to load firmware \"%s\"\n", +- fw_name); + return retval; +- } + data = (u32 *) fw_entry->data; + + /* acquire ownership of memory controller */ +@@ -137,12 +132,7 @@ int iop_fw_load_mpu(unsigned char *fw_na + /* get firmware */ + retval = request_firmware(&fw_entry, fw_name, &iop_mpu_device); + if (retval != 0) +- { +- printk(KERN_ERR +- "iop_load_spu: Failed to load firmware \"%s\"\n", +- fw_name); + return retval; +- } + data = (u32 *) fw_entry->data; + + /* disable MPU */ +--- a/arch/x86/kernel/cpu/microcode/amd.c ++++ b/arch/x86/kernel/cpu/microcode/amd.c +@@ -917,10 +917,8 @@ static enum ucode_state request_microcod + if (c->x86 >= 0x15) + snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86); + +- if (request_firmware_direct(&fw, (const char *)fw_name, device)) { +- pr_debug("failed to load file %s\n", fw_name); ++ if (request_firmware_direct(&fw, (const char *)fw_name, device)) + goto out; +- } + + ret = UCODE_ERROR; + if (*(u32 *)fw->data != UCODE_MAGIC) { +--- a/drivers/atm/ambassador.c ++++ b/drivers/atm/ambassador.c +@@ -1929,10 +1929,8 @@ static int ucode_init(loader_block *lb, + int res; + + res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev); +- if (res) { +- PRINTK (KERN_ERR, "Cannot load microcode data"); ++ if (res) + return res; +- } + + /* First record contains just the start address */ + rec = (const struct ihex_binrec *)fw->data; +--- a/drivers/atm/fore200e.c ++++ b/drivers/atm/fore200e.c +@@ -2506,10 +2506,9 @@ static int fore200e_load_and_start_fw(st + return err; + + sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT); +- if ((err = request_firmware(&firmware, buf, device)) < 0) { +- printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name); ++ err = request_firmware(&firmware, buf, device); ++ if (err) + return err; +- } + + fw_data = (const __le32 *)firmware->data; + fw_size = firmware->size / sizeof(u32); +--- a/drivers/bluetooth/ath3k.c ++++ b/drivers/bluetooth/ath3k.c +@@ -422,10 +422,8 @@ static int ath3k_load_patch(struct usb_d + le32_to_cpu(fw_version.rom_version)); + + ret = request_firmware(&firmware, filename, &udev->dev); +- if (ret < 0) { +- BT_ERR("Patch file not found %s", filename); ++ if (ret) + return ret; +- } + + pt_rom_version = get_unaligned_le32(firmware->data + + firmware->size - 8); +@@ -485,10 +483,8 @@ static int ath3k_load_syscfg(struct usb_ + le32_to_cpu(fw_version.rom_version), clk_value, ".dfu"); + + ret = request_firmware(&firmware, filename, &udev->dev); +- if (ret < 0) { +- BT_ERR("Configuration file not found %s", filename); ++ if (ret) + return ret; +- } + + ret = ath3k_load_fwfile(udev, firmware); + release_firmware(firmware); +--- a/drivers/bluetooth/bcm203x.c ++++ b/drivers/bluetooth/bcm203x.c +@@ -189,7 +189,6 @@ static int bcm203x_probe(struct usb_inte + return -ENOMEM; + + if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) { +- BT_ERR("Mini driver request failed"); + usb_free_urb(data->urb); + return -EIO; + } +@@ -214,7 +213,6 @@ static int bcm203x_probe(struct usb_inte + release_firmware(firmware); + + if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) { +- BT_ERR("Firmware request failed"); + usb_free_urb(data->urb); + kfree(data->buffer); + return -EIO; +--- a/drivers/bluetooth/bfusb.c ++++ b/drivers/bluetooth/bfusb.c +@@ -652,10 +652,8 @@ static int bfusb_probe(struct usb_interf + skb_queue_head_init(&data->pending_q); + skb_queue_head_init(&data->completed_q); + +- if (request_firmware(&firmware, "bfubase.frm", &udev->dev) < 0) { +- BT_ERR("Firmware request failed"); ++ if (request_firmware(&firmware, "bfubase.frm", &udev->dev)) + goto done; +- } + + BT_DBG("firmware data %p size %zu", firmware->data, firmware->size); + +--- a/drivers/bluetooth/bt3c_cs.c ++++ b/drivers/bluetooth/bt3c_cs.c +@@ -566,10 +566,8 @@ static int bt3c_open(struct bt3c_info *i + + /* Load firmware */ + err = request_firmware(&firmware, "BT3CPCC.bin", &info->p_dev->dev); +- if (err < 0) { +- BT_ERR("Firmware request failed"); ++ if (err) + goto error; +- } + + err = bt3c_load_firmware(info, firmware->data, firmware->size); + +--- a/drivers/bluetooth/btmrvl_sdio.c ++++ b/drivers/bluetooth/btmrvl_sdio.c +@@ -452,8 +452,6 @@ static int btmrvl_sdio_download_helper(s + ret = request_firmware(&fw_helper, card->helper, + &card->func->dev); + if ((ret < 0) || !fw_helper) { +- BT_ERR("request_firmware(helper) failed, error code = %d", +- ret); + ret = -ENOENT; + goto done; + } +@@ -552,8 +550,6 @@ static int btmrvl_sdio_download_fw_w_hel + ret = request_firmware(&fw_firmware, card->firmware, + &card->func->dev); + if ((ret < 0) || !fw_firmware) { +- BT_ERR("request_firmware(firmware) failed, error code = %d", +- ret); + ret = -ENOENT; + goto done; + } +--- a/drivers/char/dsp56k.c ++++ b/drivers/char/dsp56k.c +@@ -140,11 +140,8 @@ static int dsp56k_upload(u_char __user * + } + err = request_firmware(&fw, fw_name, &pdev->dev); + platform_device_unregister(pdev); +- if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fw_name, err); ++ if (err) + return err; +- } + if (fw->size % 3) { + printk(KERN_ERR "Bogus length %d in image \"%s\"\n", + fw->size, fw_name); +--- a/drivers/dma/imx-sdma.c ++++ b/drivers/dma/imx-sdma.c +@@ -1433,11 +1433,8 @@ static void sdma_load_firmware(const str + const struct sdma_script_start_addrs *addr; + unsigned short *ram_code; + +- if (!fw) { +- dev_info(sdma->dev, "external firmware not found, using ROM firmware\n"); +- /* In this case we just use the ROM firmware. */ ++ if (!fw) + return; +- } + + if (fw->size < sizeof(*header)) + goto err_firmware; +--- a/drivers/gpu/drm/mga/mga_warp.c ++++ b/drivers/gpu/drm/mga/mga_warp.c +@@ -79,11 +79,8 @@ int mga_warp_install_microcode(drm_mga_p + } + rc = request_ihex_firmware(&fw, firmware_name, &pdev->dev); + platform_device_unregister(pdev); +- if (rc) { +- DRM_ERROR("mga: Failed to load microcode \"%s\"\n", +- firmware_name); ++ if (rc) + return rc; +- } + + size = 0; + where = 0; +--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +@@ -1787,10 +1787,8 @@ gf100_gr_ctor_fw_legacy(struct gf100_gr + if (ret) { + snprintf(f, sizeof(f), "nouveau/%s", fwname); + ret = request_firmware(&fw, f, device->dev); +- if (ret) { +- nvkm_error(subdev, "failed to load %s\n", fwname); ++ if (ret) + return ret; +- } + } + + fuc->size = fw->size; +--- a/drivers/gpu/drm/r128/r128_cce.c ++++ b/drivers/gpu/drm/r128/r128_cce.c +@@ -154,11 +154,8 @@ static int r128_cce_load_microcode(drm_r + } + rc = request_firmware(&fw, FIRMWARE_NAME, &pdev->dev); + platform_device_unregister(pdev); +- if (rc) { +- printk(KERN_ERR "r128_cce: Failed to load firmware \"%s\"\n", +- FIRMWARE_NAME); ++ if (rc) + return rc; +- } + + if (fw->size != 256 * 8) { + printk(KERN_ERR +--- a/drivers/gpu/drm/radeon/ni.c ++++ b/drivers/gpu/drm/radeon/ni.c +@@ -837,10 +837,6 @@ int ni_init_microcode(struct radeon_devi + + out: + if (err) { +- if (err != -EINVAL) +- printk(KERN_ERR +- "ni_cp: Failed to load firmware \"%s\"\n", +- fw_name); + release_firmware(rdev->pfp_fw); + rdev->pfp_fw = NULL; + release_firmware(rdev->me_fw); +--- a/drivers/gpu/drm/radeon/r100.c ++++ b/drivers/gpu/drm/radeon/r100.c +@@ -1041,10 +1041,7 @@ static int r100_cp_init_microcode(struct + } + + err = request_firmware(&rdev->me_fw, fw_name, rdev->dev); +- if (err) { +- printk(KERN_ERR "radeon_cp: Failed to load firmware \"%s\"\n", +- fw_name); +- } else if (rdev->me_fw->size % 8) { ++ if (err == 0 && rdev->me_fw->size % 8) { + printk(KERN_ERR + "radeon_cp: Bogus length %zu in firmware \"%s\"\n", + rdev->me_fw->size, fw_name); +--- a/drivers/gpu/drm/radeon/r600.c ++++ b/drivers/gpu/drm/radeon/r600.c +@@ -2599,10 +2599,6 @@ int r600_init_microcode(struct radeon_de + + out: + if (err) { +- if (err != -EINVAL) +- printk(KERN_ERR +- "r600_cp: Failed to load firmware \"%s\"\n", +- fw_name); + release_firmware(rdev->pfp_fw); + rdev->pfp_fw = NULL; + release_firmware(rdev->me_fw); +--- a/drivers/infiniband/hw/qib/qib_sd7220.c ++++ b/drivers/infiniband/hw/qib/qib_sd7220.c +@@ -406,10 +406,8 @@ int qib_sd7220_init(struct qib_devdata * + } + + ret = request_firmware(&fw, SD7220_FW_NAME, &dd->pcidev->dev); +- if (ret) { +- qib_dev_err(dd, "Failed to load IB SERDES image\n"); ++ if (ret) + goto done; +- } + + /* Substitute our deduced value for was_reset */ + ret = qib_ibsd_ucode_loaded(dd->pport, fw); +--- a/drivers/input/touchscreen/atmel_mxt_ts.c ++++ b/drivers/input/touchscreen/atmel_mxt_ts.c +@@ -2714,10 +2714,8 @@ static int mxt_load_fw(struct device *de + int ret; + + ret = request_firmware(&fw, fn, dev); +- if (ret) { +- dev_err(dev, "Unable to open firmware %s\n", fn); ++ if (ret) + return ret; +- } + + /* Check for incorrect enc file */ + ret = mxt_check_firmware_format(dev, fw); +--- a/drivers/isdn/hardware/mISDN/speedfax.c ++++ b/drivers/isdn/hardware/mISDN/speedfax.c +@@ -392,11 +392,8 @@ setup_instance(struct sfax_hw *card) + card->isar.owner = THIS_MODULE; + + err = request_firmware(&firmware, "isdn/ISAR.BIN", &card->pdev->dev); +- if (err < 0) { +- pr_info("%s: firmware request failed %d\n", +- card->name, err); ++ if (err) + goto error_fw; +- } + if (debug & DEBUG_HW) + pr_notice("%s: got firmware %zu bytes\n", + card->name, firmware->size); +--- a/drivers/media/tuners/tuner-xc2028.c ++++ b/drivers/media/tuners/tuner-xc2028.c +@@ -1374,7 +1374,6 @@ static void load_firmware_cb(const struc + + tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error"); + if (!fw) { +- tuner_err("Could not load firmware %s.\n", priv->fname); + priv->state = XC2028_NODEV; + return; + } +--- a/drivers/media/usb/dvb-usb/dib0700_devices.c ++++ b/drivers/media/usb/dvb-usb/dib0700_devices.c +@@ -2411,12 +2411,9 @@ static int stk9090m_frontend_attach(stru + + dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80); + +- if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) { +- deb_info("%s: Upload failed. (file not found?)\n", __func__); ++ if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) + return -ENODEV; +- } else { +- deb_info("%s: firmware read %Zu bytes.\n", __func__, state->frontend_firmware->size); +- } ++ deb_info("%s: firmware read %Zu bytes.\n", __func__, state->frontend_firmware->size); + stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size; + stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data; + +@@ -2477,12 +2474,9 @@ static int nim9090md_frontend_attach(str + msleep(20); + dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); + +- if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) { +- deb_info("%s: Upload failed. (file not found?)\n", __func__); ++ if (request_firmware(&state->frontend_firmware, "dib9090.fw", &adap->dev->udev->dev)) + return -EIO; +- } else { +- deb_info("%s: firmware read %Zu bytes.\n", __func__, state->frontend_firmware->size); +- } ++ deb_info("%s: firmware read %Zu bytes.\n", __func__, state->frontend_firmware->size); + nim9090md_config[0].microcode_B_fe_size = state->frontend_firmware->size; + nim9090md_config[0].microcode_B_fe_buffer = state->frontend_firmware->data; + nim9090md_config[1].microcode_B_fe_size = state->frontend_firmware->size; +--- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c ++++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c +@@ -80,14 +80,9 @@ int dvb_usb_download_firmware(struct usb + int ret; + const struct firmware *fw = NULL; + +- if ((ret = request_firmware(&fw, props->firmware, &udev->dev)) != 0) { +- err("did not find the firmware file. (%s) " +- "Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)", +- props->firmware,ret); ++ ret = request_firmware(&fw, props->firmware, &udev->dev); ++ if (ret) + return ret; +- } +- +- info("downloading firmware from file '%s'",props->firmware); + + switch (props->usb_ctrl) { + case CYPRESS_AN2135: +--- a/drivers/media/usb/dvb-usb/gp8psk.c ++++ b/drivers/media/usb/dvb-usb/gp8psk.c +@@ -134,20 +134,14 @@ static int gp8psk_load_bcm4500fw(struct + const u8 *ptr; + u8 *buf; + if ((ret = request_firmware(&fw, bcm4500_firmware, +- &d->udev->dev)) != 0) { +- err("did not find the bcm4500 firmware file. (%s) " +- "Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)", +- bcm4500_firmware,ret); ++ &d->udev->dev)) != 0) + return ret; +- } + + ret = -EINVAL; + + if (gp8psk_usb_out_op(d, LOAD_BCM4500,1,0,NULL, 0)) + goto out_rel_fw; + +- info("downloading bcm4500 firmware from file '%s'",bcm4500_firmware); +- + ptr = fw->data; + buf = kmalloc(64, GFP_KERNEL | GFP_DMA); + if (!buf) { +--- a/drivers/media/usb/dvb-usb/opera1.c ++++ b/drivers/media/usb/dvb-usb/opera1.c +@@ -453,9 +453,6 @@ static int opera1_xilinx_load_firmware(s + info("start downloading fpga firmware %s",filename); + + if ((ret = request_firmware(&fw, filename, &dev->dev)) != 0) { +- err("did not find the firmware file. (%s) " +- "Please see linux/Documentation/dvb/ for more details on firmware-problems.", +- filename); + return ret; + } else { + p = kmalloc(fw->size, GFP_KERNEL); +--- a/drivers/media/dvb-frontends/af9013.c ++++ b/drivers/media/dvb-frontends/af9013.c +@@ -1380,16 +1380,8 @@ static int af9013_download_firmware(stru + + /* request the firmware, this will block and timeout */ + ret = request_firmware(&fw, fw_file, state->i2c->dev.parent); +- if (ret) { +- dev_info(&state->i2c->dev, "%s: did not find the firmware " \ +- "file. (%s) Please see linux/Documentation/dvb/ for " \ +- "more details on firmware-problems. (%d)\n", +- KBUILD_MODNAME, fw_file, ret); ++ if (ret) + goto err; +- } +- +- dev_info(&state->i2c->dev, "%s: downloading firmware from file '%s'\n", +- KBUILD_MODNAME, fw_file); + + /* calc checksum */ + for (i = 0; i < fw->size; i++) +--- a/drivers/media/dvb-frontends/bcm3510.c ++++ b/drivers/media/dvb-frontends/bcm3510.c +@@ -635,10 +635,9 @@ static int bcm3510_download_firmware(str + int ret,i; + + deb_info("requesting firmware\n"); +- if ((ret = st->config->request_firmware(fe, &fw, BCM3510_DEFAULT_FIRMWARE)) < 0) { +- err("could not load firmware (%s): %d",BCM3510_DEFAULT_FIRMWARE,ret); ++ ret = st->config->request_firmware(fe, &fw, BCM3510_DEFAULT_FIRMWARE); ++ if (ret) + return ret; +- } + deb_info("got firmware: %zu\n", fw->size); + + b = fw->data; +--- a/drivers/media/dvb-frontends/cx24116.c ++++ b/drivers/media/dvb-frontends/cx24116.c +@@ -495,13 +495,8 @@ static int cx24116_firmware_ondemand(str + __func__, CX24116_DEFAULT_FIRMWARE); + ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, + state->i2c->dev.parent); +- printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", +- __func__); +- if (ret) { +- printk(KERN_ERR "%s: No firmware uploaded " +- "(timeout or file not found?)\n", __func__); ++ if (ret) + return ret; +- } + + /* Make sure we don't recurse back through here + * during loading */ +--- a/drivers/media/dvb-frontends/drxd_hard.c ++++ b/drivers/media/dvb-frontends/drxd_hard.c +@@ -905,10 +905,8 @@ static int load_firmware(struct drxd_sta + { + const struct firmware *fw; + +- if (request_firmware(&fw, fw_name, state->dev) < 0) { +- printk(KERN_ERR "drxd: firmware load failure [%s]\n", fw_name); ++ if (request_firmware(&fw, fw_name, state->dev)) + return -EIO; +- } + + state->microcode = kmemdup(fw->data, fw->size, GFP_KERNEL); + if (state->microcode == NULL) { +--- a/drivers/media/dvb-frontends/drxk_hard.c ++++ b/drivers/media/dvb-frontends/drxk_hard.c +@@ -6284,10 +6284,6 @@ static void load_firmware_cb(const struc + + dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded"); + if (!fw) { +- pr_err("Could not load firmware file %s.\n", +- state->microcode_name); +- pr_info("Copy %s to your hotplug directory!\n", +- state->microcode_name); + state->microcode_name = NULL; + + /* +--- a/drivers/media/dvb-frontends/ds3000.c ++++ b/drivers/media/dvb-frontends/ds3000.c +@@ -362,12 +362,8 @@ static int ds3000_firmware_ondemand(stru + DS3000_DEFAULT_FIRMWARE); + ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, + state->i2c->dev.parent); +- printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__); +- if (ret) { +- printk(KERN_ERR "%s: No firmware uploaded (timeout or file not " +- "found?)\n", __func__); ++ if (ret) + return ret; +- } + + ret = ds3000_load_firmware(fe, fw); + if (ret) +--- a/drivers/media/dvb-frontends/nxt200x.c ++++ b/drivers/media/dvb-frontends/nxt200x.c +@@ -891,12 +891,8 @@ static int nxt2002_init(struct dvb_front + __func__, NXT2002_DEFAULT_FIRMWARE); + ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, + state->i2c->dev.parent); +- pr_debug("%s: Waiting for firmware upload(2)...\n", __func__); +- if (ret) { +- pr_err("%s: No firmware uploaded (timeout or file not found?)" +- "\n", __func__); ++ if (ret) + return ret; +- } + + ret = nxt2002_load_firmware(fe, fw); + release_firmware(fw); +@@ -958,12 +954,8 @@ static int nxt2004_init(struct dvb_front + __func__, NXT2004_DEFAULT_FIRMWARE); + ret = request_firmware(&fw, NXT2004_DEFAULT_FIRMWARE, + state->i2c->dev.parent); +- pr_debug("%s: Waiting for firmware upload(2)...\n", __func__); +- if (ret) { +- pr_err("%s: No firmware uploaded (timeout or file not found?)" +- "\n", __func__); ++ if (ret) + return ret; +- } + + ret = nxt2004_load_firmware(fe, fw); + release_firmware(fw); +--- a/drivers/media/dvb-frontends/or51132.c ++++ b/drivers/media/dvb-frontends/or51132.c +@@ -341,11 +341,8 @@ static int or51132_set_parameters(struct + printk("or51132: Waiting for firmware upload(%s)...\n", + fwname); + ret = request_firmware(&fw, fwname, state->i2c->dev.parent); +- if (ret) { +- printk(KERN_WARNING "or51132: No firmware up" +- "loaded(timeout or file not found?)\n"); ++ if (ret) + return ret; +- } + ret = or51132_load_firmware(fe, fw); + release_firmware(fw); + if (ret) { +--- a/drivers/media/dvb-frontends/or51211.c ++++ b/drivers/media/dvb-frontends/or51211.c +@@ -375,12 +375,8 @@ static int or51211_init(struct dvb_front + OR51211_DEFAULT_FIRMWARE); + ret = config->request_firmware(fe, &fw, + OR51211_DEFAULT_FIRMWARE); +- pr_info("Got Hotplug firmware\n"); +- if (ret) { +- pr_warn("No firmware uploaded " +- "(timeout or file not found?)\n"); ++ if (ret) + return ret; +- } + + ret = or51211_load_firmware(fe, fw); + release_firmware(fw); +--- a/drivers/media/dvb-frontends/sp8870.c ++++ b/drivers/media/dvb-frontends/sp8870.c +@@ -315,10 +315,8 @@ static int sp8870_init (struct dvb_front + + /* request the firmware, this will block until someone uploads it */ + printk("sp8870: waiting for firmware upload (%s)...\n", SP8870_DEFAULT_FIRMWARE); +- if (state->config->request_firmware(fe, &fw, SP8870_DEFAULT_FIRMWARE)) { +- printk("sp8870: no firmware upload (timeout or file not found?)\n"); ++ if (state->config->request_firmware(fe, &fw, SP8870_DEFAULT_FIRMWARE)) + return -EIO; +- } + + if (sp8870_firmware_upload(state, fw)) { + printk("sp8870: writing firmware to device failed\n"); +--- a/drivers/media/dvb-frontends/sp887x.c ++++ b/drivers/media/dvb-frontends/sp887x.c +@@ -527,10 +527,8 @@ static int sp887x_init(struct dvb_fronte + /* request the firmware, this will block until someone uploads it */ + printk("sp887x: waiting for firmware upload (%s)...\n", SP887X_DEFAULT_FIRMWARE); + ret = state->config->request_firmware(fe, &fw, SP887X_DEFAULT_FIRMWARE); +- if (ret) { +- printk("sp887x: no firmware upload (timeout or file not found?)\n"); ++ if (ret) + return ret; +- } + + ret = sp887x_initial_setup(fe, fw); + release_firmware(fw); +--- a/drivers/media/dvb-frontends/tda10048.c ++++ b/drivers/media/dvb-frontends/tda10048.c +@@ -495,8 +495,6 @@ static int tda10048_firmware_upload(stru + ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, + state->i2c->dev.parent); + if (ret) { +- printk(KERN_ERR "%s: Upload failed. (file not found?)\n", +- __func__); + return -EIO; + } else { + printk(KERN_INFO "%s: firmware read %Zu bytes.\n", +--- a/drivers/media/dvb-frontends/tda1004x.c ++++ b/drivers/media/dvb-frontends/tda1004x.c +@@ -401,10 +401,8 @@ static int tda10045_fwupload(struct dvb_ + /* request the firmware, this will block until someone uploads it */ + printk(KERN_INFO "tda1004x: waiting for firmware upload (%s)...\n", TDA10045_DEFAULT_FIRMWARE); + ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE); +- if (ret) { +- printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n"); ++ if (ret) + return ret; +- } + + /* reset chip */ + tda1004x_write_mask(state, TDA1004X_CONFC4, 0x10, 0); +@@ -545,7 +543,6 @@ static int tda10046_fwupload(struct dvb_ + /* remain compatible to old bug: try to load with tda10045 image name */ + ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE); + if (ret) { +- printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n"); + return ret; + } else { + printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n", +--- a/drivers/media/dvb-frontends/tda10071.c ++++ b/drivers/media/dvb-frontends/tda10071.c +@@ -850,12 +850,8 @@ static int tda10071_init(struct dvb_fron + + /* request the firmware, this will block and timeout */ + ret = request_firmware(&fw, fw_file, &client->dev); +- if (ret) { +- dev_err(&client->dev, +- "did not find the firmware file. (%s) Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)\n", +- fw_file, ret); ++ if (ret) + goto error; +- } + + /* init */ + for (i = 0; i < ARRAY_SIZE(tab2); i++) { +--- a/drivers/media/pci/ngene/ngene-core.c ++++ b/drivers/media/pci/ngene/ngene-core.c +@@ -1260,13 +1260,8 @@ static int ngene_load_firm(struct ngene + break; + } + +- if (request_firmware(&fw, fw_name, &dev->pci_dev->dev) < 0) { +- printk(KERN_ERR DEVICE_NAME +- ": Could not load firmware file %s.\n", fw_name); +- printk(KERN_INFO DEVICE_NAME +- ": Copy %s to your hotplug directory!\n", fw_name); ++ if (request_firmware(&fw, fw_name, &dev->pci_dev->dev)) + return -1; +- } + if (size == 0) + size = fw->size; + if (size != fw->size) { +@@ -1274,8 +1269,6 @@ static int ngene_load_firm(struct ngene + ": Firmware %s has invalid size!", fw_name); + err = -1; + } else { +- printk(KERN_INFO DEVICE_NAME +- ": Loading firmware file %s.\n", fw_name); + ngene_fw = (u8 *) fw->data; + err = ngene_command_load_firmware(dev, ngene_fw, size); + } +--- a/drivers/media/common/siano/smscoreapi.c ++++ b/drivers/media/common/siano/smscoreapi.c +@@ -1162,10 +1162,8 @@ static int smscore_load_firmware_from_fi + return -EINVAL; + + rc = request_firmware(&fw, fw_filename, coredev->device); +- if (rc < 0) { +- pr_err("failed to open firmware file '%s'\n", fw_filename); ++ if (rc < 0) + return rc; +- } + pr_debug("read fw %s, buffer size=0x%zx\n", fw_filename, fw->size); + fw_buf = kmalloc(ALIGN(fw->size + sizeof(struct sms_firmware), + SMS_ALLOC_ALIGNMENT), GFP_KERNEL | GFP_DMA); +--- a/drivers/media/pci/ttpci/av7110.c ++++ b/drivers/media/pci/ttpci/av7110.c +@@ -1531,16 +1531,9 @@ static int get_firmware(struct av7110* a + /* request the av7110 firmware, this will block until someone uploads it */ + ret = request_firmware(&fw, "dvb-ttpci-01.fw", &av7110->dev->pci->dev); + if (ret) { +- if (ret == -ENOENT) { +- printk(KERN_ERR "dvb-ttpci: could not load firmware," +- " file not found: dvb-ttpci-01.fw\n"); +- printk(KERN_ERR "dvb-ttpci: usually this should be in " +- "/usr/lib/hotplug/firmware or /lib/firmware\n"); +- printk(KERN_ERR "dvb-ttpci: and can be downloaded from" ++ if (ret == -ENOENT) ++ printk(KERN_ERR "dvb-ttpci: firmware can be downloaded from" + " https://linuxtv.org/download/dvb/firmware/\n"); +- } else +- printk(KERN_ERR "dvb-ttpci: cannot request firmware" +- " (error %i)\n", ret); + return -EINVAL; + } + +--- a/drivers/media/pci/ttpci/av7110_hw.c ++++ b/drivers/media/pci/ttpci/av7110_hw.c +@@ -251,11 +251,8 @@ int av7110_bootarm(struct av7110 *av7110 + //saa7146_setgpio(dev, 3, SAA7146_GPIO_INPUT); + + ret = request_firmware(&fw, fw_name, &dev->pci->dev); +- if (ret) { +- printk(KERN_ERR "dvb-ttpci: Failed to load firmware \"%s\"\n", +- fw_name); ++ if (ret) + return ret; +- } + + mwdebi(av7110, DEBISWAB, DPRAM_BASE, fw->data, fw->size); + release_firmware(fw); +--- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c ++++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c +@@ -296,10 +296,8 @@ static int ttusb_boot_dsp(struct ttusb * + + err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin", + &ttusb->dev->dev); +- if (err) { +- printk(KERN_ERR "ttusb-budget: failed to request firmware\n"); ++ if (err) + return err; +- } + + /* BootBlock */ + b[0] = 0xaa; +--- a/drivers/media/usb/ttusb-dec/ttusb_dec.c ++++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c +@@ -1296,11 +1296,8 @@ static int ttusb_dec_boot_dsp(struct ttu + dprintk("%s\n", __func__); + + result = request_firmware(&fw_entry, dec->firmware_name, &dec->udev->dev); +- if (result) { +- printk(KERN_ERR "%s: Firmware (%s) unavailable.\n", +- __func__, dec->firmware_name); ++ if (result) + return result; +- } + + firmware = fw_entry->data; + firmware_size = fw_entry->size; +--- a/drivers/media/radio/radio-wl1273.c ++++ b/drivers/media/radio/radio-wl1273.c +@@ -514,11 +514,8 @@ static int wl1273_fm_upload_firmware_pat + * Uploading the firmware patch is not always necessary, + * so we only print an info message. + */ +- if (request_firmware(&fw_p, fw_name, dev)) { +- dev_info(dev, "%s - %s not found\n", __func__, fw_name); +- ++ if (request_firmware(&fw_p, fw_name, dev)) + return 0; +- } + + ptr = (__u8 *) fw_p->data; + packet_num = ptr[0]; +--- a/drivers/media/radio/wl128x/fmdrv_common.c ++++ b/drivers/media/radio/wl128x/fmdrv_common.c +@@ -1249,10 +1249,8 @@ static int fm_download_firmware(struct f + + ret = request_firmware(&fw_entry, fw_name, + &fmdev->radio_dev->dev); +- if (ret < 0) { +- fmerr("Unable to read firmware(%s) content\n", fw_name); ++ if (ret) + return ret; +- } + fmdbg("Firmware(%s) length : %zu bytes\n", fw_name, fw_entry->size); + + fw_data = (void *)fw_entry->data; +--- a/drivers/media/pci/bt8xx/bttv-cards.c ++++ b/drivers/media/pci/bt8xx/bttv-cards.c +@@ -3912,10 +3912,8 @@ static int pvr_boot(struct bttv *btv) + int rc; + + rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev); +- if (rc != 0) { +- pr_warn("%d: no altera firmware [via hotplug]\n", btv->c.nr); ++ if (rc != 0) + return rc; +- } + rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size); + pr_info("%d: altera firmware upload %s\n", + btv->c.nr, (rc < 0) ? "failed" : "ok"); +--- a/drivers/media/usb/cpia2/cpia2_core.c ++++ b/drivers/media/usb/cpia2/cpia2_core.c +@@ -907,11 +907,8 @@ static int apply_vp_patch(struct camera_ + struct cpia2_command cmd; + + ret = request_firmware(&fw, fw_name, &cam->dev->dev); +- if (ret) { +- printk(KERN_ERR "cpia2: failed to load VP patch \"%s\"\n", +- fw_name); ++ if (ret) + return ret; +- } + + cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP; + cmd.direction = TRANSFER_WRITE; +--- a/drivers/media/pci/cx18/cx18-av-firmware.c ++++ b/drivers/media/pci/cx18/cx18-av-firmware.c +@@ -85,10 +85,8 @@ int cx18_av_loadfw(struct cx18 *cx) + int i; + int retries1 = 0; + +- if (request_firmware(&fw, FWFILE, &cx->pci_dev->dev) != 0) { +- CX18_ERR_DEV(sd, "unable to open firmware %s\n", FWFILE); ++ if (request_firmware(&fw, FWFILE, &cx->pci_dev->dev) != 0) + return -EINVAL; +- } + + /* The firmware load often has byte errors, so allow for several + retries, both at byte level and at the firmware load level. */ +--- a/drivers/media/pci/cx18/cx18-dvb.c ++++ b/drivers/media/pci/cx18/cx18-dvb.c +@@ -141,9 +141,7 @@ static int yuan_mpc718_mt352_reqfw(struc + int ret; + + ret = request_firmware(fw, fn, &cx->pci_dev->dev); +- if (ret) +- CX18_ERR("Unable to open firmware file %s\n", fn); +- else { ++ if (!ret) { + size_t sz = (*fw)->size; + if (sz < 2 || sz > 64 || (sz % 2) != 0) { + CX18_ERR("Firmware %s has a bad size: %lu bytes\n", +@@ -156,7 +154,7 @@ static int yuan_mpc718_mt352_reqfw(struc + + if (ret) { + CX18_ERR("The MPC718 board variant with the MT352 DVB-T" +- "demodualtor will not work without it\n"); ++ "demodulator will not work without firmware\n"); + CX18_ERR("Run 'linux/Documentation/dvb/get_dvb_firmware " + "mpc718' if you need the firmware\n"); + } +--- a/drivers/media/pci/cx18/cx18-firmware.c ++++ b/drivers/media/pci/cx18/cx18-firmware.c +@@ -106,11 +106,8 @@ static int load_cpu_fw_direct(const char + u32 __iomem *dst = (u32 __iomem *)mem; + const u32 *src; + +- if (request_firmware(&fw, fn, &cx->pci_dev->dev)) { +- CX18_ERR("Unable to open firmware %s\n", fn); +- CX18_ERR("Did you put the firmware in the hotplug firmware directory?\n"); ++ if (request_firmware(&fw, fn, &cx->pci_dev->dev)) + return -ENOMEM; +- } + + src = (const u32 *)fw->data; + +@@ -151,8 +148,6 @@ static int load_apu_fw_direct(const char + int sz; + + if (request_firmware(&fw, fn, &cx->pci_dev->dev)) { +- CX18_ERR("unable to open firmware %s\n", fn); +- CX18_ERR("did you put the firmware in the hotplug firmware directory?\n"); + cx18_setup_page(cx, 0); + return -ENOMEM; + } +--- a/drivers/media/usb/cx231xx/cx231xx-417.c ++++ b/drivers/media/usb/cx231xx/cx231xx-417.c +@@ -999,11 +999,6 @@ static int cx231xx_load_firmware(struct + dev->dev); + + if (retval != 0) { +- dev_err(dev->dev, +- "ERROR: Hotplug firmware request failed (%s).\n", +- CX231xx_FIRM_IMAGE_NAME); +- dev_err(dev->dev, +- "Please fix your hotplug setup, the board will not work without firmware loaded!\n"); + vfree(p_current_fw); + vfree(p_buffer); + return retval; +--- a/drivers/media/pci/cx23885/cx23885-417.c ++++ b/drivers/media/pci/cx23885/cx23885-417.c +@@ -931,14 +931,8 @@ static int cx23885_load_firmware(struct + retval = request_firmware(&firmware, CX23885_FIRM_IMAGE_NAME, + &dev->pci->dev); + +- if (retval != 0) { +- printk(KERN_ERR +- "ERROR: Hotplug firmware request failed (%s).\n", +- CX23885_FIRM_IMAGE_NAME); +- printk(KERN_ERR "Please fix your hotplug setup, the board will " +- "not work without firmware loaded!\n"); ++ if (retval != 0) + return -1; +- } + + if (firmware->size != CX23885_FIRM_IMAGE_SIZE) { + printk(KERN_ERR "ERROR: Firmware size mismatch " +--- a/drivers/media/pci/cx23885/cx23885-cards.c ++++ b/drivers/media/pci/cx23885/cx23885-cards.c +@@ -2341,11 +2341,7 @@ void cx23885_card_setup(struct cx23885_d + cinfo.rev, filename); + + ret = request_firmware(&fw, filename, &dev->pci->dev); +- if (ret != 0) +- printk(KERN_ERR "did not find the firmware file. (%s) " +- "Please see linux/Documentation/dvb/ for more details " +- "on firmware-problems.", filename); +- else ++ if (ret == 0) + altera_init(&netup_config, fw); + + release_firmware(fw); +--- a/drivers/media/i2c/cx25840/cx25840-firmware.c ++++ b/drivers/media/i2c/cx25840/cx25840-firmware.c +@@ -126,10 +126,8 @@ int cx25840_loadfw(struct i2c_client *cl + if (is_cx231xx(state) && max_buf_size > 16) + max_buf_size = 16; + +- if (request_firmware(&fw, fwname, FWDEV(client)) != 0) { +- v4l_err(client, "unable to open firmware %s\n", fwname); ++ if (request_firmware(&fw, fwname, FWDEV(client)) != 0) + return -EINVAL; +- } + + start_fw_load(client); + +--- a/drivers/media/pci/cx88/cx88-blackbird.c ++++ b/drivers/media/pci/cx88/cx88-blackbird.c +@@ -444,12 +444,8 @@ static int blackbird_load_firmware(struc + &dev->pci->dev); + + +- if (retval != 0) { +- pr_err("Hotplug firmware request failed (%s).\n", +- CX2341X_FIRM_ENC_FILENAME); +- pr_err("Please fix your hotplug setup, the board will not work without firmware loaded!\n"); ++ if (retval != 0) + return -EIO; +- } + + if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) { + pr_err("Firmware size mismatch (have %zd, expected %d)\n", +--- a/drivers/media/usb/gspca/vicam.c ++++ b/drivers/media/usb/gspca/vicam.c +@@ -243,10 +243,8 @@ static int sd_init(struct gspca_dev *gsp + + ret = request_ihex_firmware(&fw, VICAM_FIRMWARE, + &gspca_dev->dev->dev); +- if (ret) { +- pr_err("Failed to load \"vicam/firmware.fw\": %d\n", ret); ++ if (ret) + return ret; +- } + + firmware_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); + if (!firmware_buf) { +--- a/drivers/media/pci/ivtv/ivtv-firmware.c ++++ b/drivers/media/pci/ivtv/ivtv-firmware.c +@@ -80,8 +80,6 @@ retry: + release_firmware(fw); + return size; + } +- IVTV_ERR("Unable to open firmware %s (must be %ld bytes)\n", fn, size); +- IVTV_ERR("Did you put the firmware in the hotplug firmware directory?\n"); + return -ENOMEM; + } + +--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c ++++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c +@@ -1382,29 +1382,6 @@ static int pvr2_locate_firmware(struct p + "request_firmware fatal error with code=%d",ret); + return ret; + } +- pvr2_trace(PVR2_TRACE_ERROR_LEGS, +- "***WARNING***" +- " Device %s firmware" +- " seems to be missing.", +- fwtypename); +- pvr2_trace(PVR2_TRACE_ERROR_LEGS, +- "Did you install the pvrusb2 firmware files" +- " in their proper location?"); +- if (fwcount == 1) { +- pvr2_trace(PVR2_TRACE_ERROR_LEGS, +- "request_firmware unable to locate %s file %s", +- fwtypename,fwnames[0]); +- } else { +- pvr2_trace(PVR2_TRACE_ERROR_LEGS, +- "request_firmware unable to locate" +- " one of the following %s files:", +- fwtypename); +- for (idx = 0; idx < fwcount; idx++) { +- pvr2_trace(PVR2_TRACE_ERROR_LEGS, +- "request_firmware: Failed to find %s", +- fwnames[idx]); +- } +- } + return ret; + } + +--- a/drivers/media/usb/s2255/s2255drv.c ++++ b/drivers/media/usb/s2255/s2255drv.c +@@ -2308,10 +2308,8 @@ static int s2255_probe(struct usb_interf + } + /* load the first chunk */ + if (request_firmware(&dev->fw_data->fw, +- FIRMWARE_FILE_NAME, &dev->udev->dev)) { +- dev_err(&interface->dev, "sensoray 2255 failed to get firmware\n"); ++ FIRMWARE_FILE_NAME, &dev->udev->dev)) + goto errorREQFW; +- } + /* check the firmware is valid */ + fw_size = dev->fw_data->fw->size; + pdata = (__le32 *) &dev->fw_data->fw->data[fw_size - 8]; +--- a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c ++++ b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c +@@ -95,10 +95,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc + } + } + +- if (err != 0) { +- mfc_err("Firmware is not present in the /lib/firmware directory nor compiled in kernel\n"); ++ if (err != 0) + return -EINVAL; +- } + if (fw_blob->size > dev->fw_size) { + mfc_err("MFC firmware is too big to be loaded\n"); + release_firmware(fw_blob); +--- a/drivers/media/pci/saa7164/saa7164-fw.c ++++ b/drivers/media/pci/saa7164/saa7164-fw.c +@@ -420,11 +420,8 @@ int saa7164_downloadfirmware(struct saa7 + __func__, fwname); + + ret = request_firmware(&fw, fwname, &dev->pci->dev); +- if (ret) { +- printk(KERN_ERR "%s() Upload failed. " +- "(file not found?)\n", __func__); ++ if (ret) + return -ENOMEM; +- } + + printk(KERN_INFO "%s() firmware read %Zu bytes.\n", + __func__, fw->size); +--- a/drivers/misc/ti-st/st_kim.c ++++ b/drivers/misc/ti-st/st_kim.c +@@ -302,11 +302,8 @@ static long download_firmware(struct kim + request_firmware(&kim_gdata->fw_entry, bts_scr_name, + &kim_gdata->kim_pdev->dev); + if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) || +- (kim_gdata->fw_entry->size == 0))) { +- pr_err(" request_firmware failed(errno %ld) for %s", err, +- bts_scr_name); ++ (kim_gdata->fw_entry->size == 0))) + return -EINVAL; +- } + ptr = (void *)kim_gdata->fw_entry->data; + len = kim_gdata->fw_entry->size; + /* bts_header to remove out magic number and +--- a/drivers/net/can/softing/softing_fw.c ++++ b/drivers/net/can/softing/softing_fw.c +@@ -237,11 +237,8 @@ int softing_load_app_fw(const char *file + int8_t type_end = 0, type_entrypoint = 0; + + ret = request_firmware(&fw, file, &card->pdev->dev); +- if (ret) { +- dev_alert(&card->pdev->dev, "request_firmware(%s) got %i\n", +- file, ret); ++ if (ret) + return ret; +- } + dev_dbg(&card->pdev->dev, "firmware(%s) got %lu bytes\n", + file, (unsigned long)fw->size); + /* parse the firmware */ +--- a/drivers/net/ethernet/3com/typhoon.c ++++ b/drivers/net/ethernet/3com/typhoon.c +@@ -1279,11 +1279,8 @@ typhoon_request_firmware(struct typhoon + return 0; + + err = request_firmware(&typhoon_fw, FIRMWARE_NAME, &tp->pdev->dev); +- if (err) { +- netdev_err(tp->dev, "Failed to load firmware \"%s\"\n", +- FIRMWARE_NAME); ++ if (err) + return err; +- } + + image_data = typhoon_fw->data; + remaining = typhoon_fw->size; +--- a/drivers/net/ethernet/adaptec/starfire.c ++++ b/drivers/net/ethernet/adaptec/starfire.c +@@ -1016,11 +1016,8 @@ static int netdev_open(struct net_device + #endif /* VLAN_SUPPORT */ + + retval = request_firmware(&fw_rx, FIRMWARE_RX, &np->pci_dev->dev); +- if (retval) { +- printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n", +- FIRMWARE_RX); ++ if (retval) + goto out_init; +- } + if (fw_rx->size % 4) { + printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", + fw_rx->size, FIRMWARE_RX); +@@ -1028,11 +1025,8 @@ static int netdev_open(struct net_device + goto out_rx; + } + retval = request_firmware(&fw_tx, FIRMWARE_TX, &np->pci_dev->dev); +- if (retval) { +- printk(KERN_ERR "starfire: Failed to load firmware \"%s\"\n", +- FIRMWARE_TX); ++ if (retval) + goto out_rx; +- } + if (fw_tx->size % 4) { + printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", + fw_tx->size, FIRMWARE_TX); +--- a/drivers/net/ethernet/alteon/acenic.c ++++ b/drivers/net/ethernet/alteon/acenic.c +@@ -2888,11 +2888,8 @@ static int ace_load_firmware(struct net_ + fw_name = "acenic/tg1.bin"; + + ret = request_firmware(&fw, fw_name, &ap->pdev->dev); +- if (ret) { +- printk(KERN_ERR "%s: Failed to load firmware \"%s\"\n", +- ap->name, fw_name); ++ if (ret) + return ret; +- } + + fw_data = (void *)fw->data; + +--- a/drivers/net/ethernet/broadcom/bnx2.c ++++ b/drivers/net/ethernet/broadcom/bnx2.c +@@ -3726,16 +3726,13 @@ static int bnx2_request_uncached_firmwar + } + + rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev); +- if (rc) { +- pr_err("Can't load firmware file \"%s\"\n", mips_fw_file); ++ if (rc) + goto out; +- } + + rc = request_firmware(&bp->rv2p_firmware, rv2p_fw_file, &bp->pdev->dev); +- if (rc) { +- pr_err("Can't load firmware file \"%s\"\n", rv2p_fw_file); ++ if (rc) + goto err_release_mips_firmware; +- } ++ + mips_fw = (const struct bnx2_mips_fw_file *) bp->mips_firmware->data; + rv2p_fw = (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data; + if (bp->mips_firmware->size < sizeof(*mips_fw) || +--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c ++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +@@ -13489,11 +13489,8 @@ static int bnx2x_init_firmware(struct bn + BNX2X_DEV_INFO("Loading %s\n", fw_file_name); + + rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev); +- if (rc) { +- BNX2X_ERR("Can't load firmware file %s\n", +- fw_file_name); ++ if (rc) + goto request_firmware_exit; +- } + + rc = bnx2x_check_firmware(bp); + if (rc) { +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -11346,11 +11346,8 @@ static int tg3_request_firmware(struct t + { + const struct tg3_firmware_hdr *fw_hdr; + +- if (request_firmware(&tp->fw, tp->fw_needed, &tp->pdev->dev)) { +- netdev_err(tp->dev, "Failed to load firmware \"%s\"\n", +- tp->fw_needed); ++ if (request_firmware(&tp->fw, tp->fw_needed, &tp->pdev->dev)) + return -ENOENT; +- } + + fw_hdr = (struct tg3_firmware_hdr *)tp->fw->data; + +--- a/drivers/net/ethernet/brocade/bna/cna_fwimg.c ++++ b/drivers/net/ethernet/brocade/bna/cna_fwimg.c +@@ -32,10 +32,8 @@ cna_read_firmware(struct pci_dev *pdev, + const struct firmware *fw; + u32 n; + +- if (request_firmware(&fw, fw_name, &pdev->dev)) { +- dev_alert(&pdev->dev, "can't load firmware %s\n", fw_name); ++ if (request_firmware(&fw, fw_name, &pdev->dev)) + goto error; +- } + + *bfi_image = (u32 *)fw->data; + *bfi_image_size = fw->size/sizeof(u32); +--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c ++++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +@@ -1037,12 +1037,8 @@ int t3_get_edc_fw(struct cphy *phy, int + fw_name = get_edc_fw_name(edc_idx); + if (fw_name) + ret = request_firmware(&fw, fw_name, &adapter->pdev->dev); +- if (ret < 0) { +- dev_err(&adapter->pdev->dev, +- "could not upgrade firmware: unable to load %s\n", +- fw_name); ++ if (ret) + return ret; +- } + + /* check size, take checksum in account */ + if (fw->size > size + 4) { +@@ -1079,11 +1075,8 @@ static int upgrade_fw(struct adapter *ad + struct device *dev = &adap->pdev->dev; + + ret = request_firmware(&fw, FW_FNAME, dev); +- if (ret < 0) { +- dev_err(dev, "could not upgrade firmware: unable to load %s\n", +- FW_FNAME); ++ if (ret) + return ret; +- } + ret = t3_load_fw(adap, fw->data, fw->size); + release_firmware(fw); + +@@ -1128,11 +1121,8 @@ static int update_tpsram(struct adapter + snprintf(buf, sizeof(buf), TPSRAM_NAME, rev); + + ret = request_firmware(&tpsram, buf, dev); +- if (ret < 0) { +- dev_err(dev, "could not load TP SRAM: unable to load %s\n", +- buf); ++ if (ret) + return ret; +- } + + ret = t3_check_tpsram(adap, tpsram->data, tpsram->size); + if (ret) +--- a/drivers/net/ethernet/intel/e100.c ++++ b/drivers/net/ethernet/intel/e100.c +@@ -1290,9 +1290,6 @@ static const struct firmware *e100_reque + + if (err) { + if (required) { +- netif_err(nic, probe, nic->netdev, +- "Failed to load firmware \"%s\": %d\n", +- fw_name, err); + return ERR_PTR(err); + } else { + netif_info(nic, probe, nic->netdev, +--- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c ++++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +@@ -596,8 +596,6 @@ static int myri10ge_load_hotplug_firmwar + unsigned i; + + if ((status = request_firmware(&fw, mgp->fw_name, dev)) < 0) { +- dev_err(dev, "Unable to load %s firmware image via hotplug\n", +- mgp->fw_name); + status = -EINVAL; + goto abort_with_nothing; + } +--- a/drivers/net/ethernet/smsc/smc91c92_cs.c ++++ b/drivers/net/ethernet/smsc/smc91c92_cs.c +@@ -647,10 +647,8 @@ static int osi_load_firmware(struct pcmc + int i, err; + + err = request_firmware(&fw, FIRMWARE_NAME, &link->dev); +- if (err) { +- pr_err("Failed to load firmware \"%s\"\n", FIRMWARE_NAME); ++ if (err) + return err; +- } + + /* Download the Seven of Diamonds firmware */ + for (i = 0; i < fw->size; i++) { +--- a/drivers/net/ethernet/sun/cassini.c ++++ b/drivers/net/ethernet/sun/cassini.c +@@ -816,11 +816,8 @@ static void cas_saturn_firmware_init(str + return; + + err = request_firmware(&fw, fw_name, &cp->pdev->dev); +- if (err) { +- pr_err("Failed to load firmware \"%s\"\n", +- fw_name); ++ if (err) + return; +- } + if (fw->size < 2) { + pr_err("bogus length %zu in \"%s\"\n", + fw->size, fw_name); +--- a/drivers/net/hamradio/yam.c ++++ b/drivers/net/hamradio/yam.c +@@ -372,11 +372,8 @@ static unsigned char *add_mcs(unsigned c + } + err = request_firmware(&fw, fw_name[predef], &pdev->dev); + platform_device_unregister(pdev); +- if (err) { +- printk(KERN_ERR "Failed to load firmware \"%s\"\n", +- fw_name[predef]); ++ if (err) + return NULL; +- } + if (fw->size != YAM_FPGA_SIZE) { + printk(KERN_ERR "Bogus length %zu in firmware \"%s\"\n", + fw->size, fw_name[predef]); +--- a/drivers/net/usb/kaweth.c ++++ b/drivers/net/usb/kaweth.c +@@ -392,10 +392,8 @@ static int kaweth_download_firmware(stru + int ret; + + ret = request_firmware(&fw, fwname, &kaweth->dev->dev); +- if (ret) { +- dev_err(&kaweth->intf->dev, "Firmware request failed\n"); ++ if (ret) + return ret; +- } + + if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) { + dev_err(&kaweth->intf->dev, "Firmware too big: %zu\n", +--- a/drivers/net/wimax/i2400m/fw.c ++++ b/drivers/net/wimax/i2400m/fw.c +@@ -1582,11 +1582,8 @@ int i2400m_dev_bootstrap(struct i2400m * + } + d_printf(1, dev, "trying firmware %s (%d)\n", fw_name, itr); + ret = request_firmware(&fw, fw_name, dev); +- if (ret < 0) { +- dev_err(dev, "fw %s: cannot load file: %d\n", +- fw_name, ret); ++ if (ret) + continue; +- } + i2400m->fw_name = fw_name; + ret = i2400m_fw_bootstrap(i2400m, fw, flags); + release_firmware(fw); +@@ -1629,8 +1626,6 @@ void i2400m_fw_cache(struct i2400m *i240 + kref_init(&i2400m_fw->kref); + result = request_firmware(&i2400m_fw->fw, i2400m->fw_name, dev); + if (result < 0) { +- dev_err(dev, "firmware %s: failed to cache: %d\n", +- i2400m->fw_name, result); + kfree(i2400m_fw); + i2400m_fw = (void *) ~0; + } else +--- a/drivers/net/wireless/atmel/at76c50x-usb.c ++++ b/drivers/net/wireless/atmel/at76c50x-usb.c +@@ -1622,13 +1622,8 @@ static struct fwentry *at76_load_firmwar + + at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname); + ret = request_firmware(&fwe->fw, fwe->fwname, &udev->dev); +- if (ret < 0) { +- dev_err(&udev->dev, "firmware %s not found!\n", +- fwe->fwname); +- dev_err(&udev->dev, +- "you may need to download the firmware from http://developer.berlios.de/projects/at76c503a/\n"); ++ if (ret) + goto exit; +- } + + at76_dbg(DBG_FW, "got it."); + fwh = (struct at76_fw_header *)(fwe->fw->data); +--- a/drivers/net/wireless/ath/ath9k/hif_usb.c ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.c +@@ -1160,9 +1160,6 @@ static void ath9k_hif_usb_firmware_cb(co + if (!ret) + return; + +- dev_err(&hif_dev->udev->dev, +- "ath9k_htc: Failed to get firmware %s\n", +- hif_dev->fw_name); + goto err_fw; + } + +--- a/drivers/net/wireless/ath/carl9170/usb.c ++++ b/drivers/net/wireless/ath/carl9170/usb.c +@@ -1031,7 +1031,6 @@ static void carl9170_usb_firmware_step2( + return; + } + +- dev_err(&ar->udev->dev, "firmware not found.\n"); + carl9170_usb_firmware_failed(ar); + } + +--- a/drivers/net/wireless/atmel/atmel.c ++++ b/drivers/net/wireless/atmel/atmel.c +@@ -3917,12 +3917,8 @@ static int reset_atmel_card(struct net_d + strcpy(priv->firmware_id, "atmel_at76c502.bin"); + } + err = request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev); +- if (err != 0) { +- printk(KERN_ALERT +- "%s: firmware %s is missing, cannot continue.\n", +- dev->name, priv->firmware_id); ++ if (err != 0) + return err; +- } + } else { + int fw_index = 0; + int success = 0; +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c +@@ -2253,19 +2253,8 @@ int b43_do_request_fw(struct b43_request + } + err = request_firmware(&ctx->blob, ctx->fwname, + ctx->dev->dev->dev); +- if (err == -ENOENT) { +- snprintf(ctx->errors[ctx->req_type], +- sizeof(ctx->errors[ctx->req_type]), +- "Firmware file \"%s\" not found\n", +- ctx->fwname); ++ if (err) + return err; +- } else if (err) { +- snprintf(ctx->errors[ctx->req_type], +- sizeof(ctx->errors[ctx->req_type]), +- "Firmware file \"%s\" request failed (err=%d)\n", +- ctx->fwname, err); +- return err; +- } + fw_ready: + if (ctx->blob->size < sizeof(struct b43_fw_header)) + goto err_format; +--- a/drivers/net/wireless/broadcom/b43legacy/main.c ++++ b/drivers/net/wireless/broadcom/b43legacy/main.c +@@ -1554,11 +1554,8 @@ static int do_request_fw(struct b43legac + } else { + err = request_firmware(fw, path, dev->dev->dev); + } +- if (err) { +- b43legacyerr(dev->wl, "Firmware file \"%s\" not found " +- "or load failed.\n", path); ++ if (err) + return err; +- } + if ((*fw)->size < sizeof(struct b43legacy_fw_header)) + goto err_format; + hdr = (struct b43legacy_fw_header *)((*fw)->data); +--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +@@ -378,19 +378,13 @@ static int brcms_request_fw(struct brcms + sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i], + UCODE_LOADER_API_VER); + status = request_firmware(&wl->fw.fw_bin[i], fw_name, device); +- if (status) { +- wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n", +- KBUILD_MODNAME, fw_name); ++ if (status) + return status; +- } + sprintf(fw_name, "%s_hdr-%d.fw", brcms_firmwares[i], + UCODE_LOADER_API_VER); + status = request_firmware(&wl->fw.fw_hdr[i], fw_name, device); +- if (status) { +- wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n", +- KBUILD_MODNAME, fw_name); ++ if (status) + return status; +- } + wl->fw.hdr_num_entries[i] = + wl->fw.fw_hdr[i]->size / (sizeof(struct firmware_hdr)); + } +--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c ++++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c +@@ -8418,12 +8418,8 @@ static int ipw2100_get_firmware(struct i + + rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev); + +- if (rc < 0) { +- printk(KERN_ERR DRV_NAME ": " +- "%s: Firmware '%s' not available or load failed.\n", +- priv->net_dev->name, fw_name); ++ if (rc) + return rc; +- } + IPW_DEBUG_INFO("firmware data %p size %zd\n", fw->fw_entry->data, + fw->fw_entry->size); + +--- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c ++++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c +@@ -3418,10 +3418,8 @@ static int ipw_get_fw(struct ipw_priv *p + + /* ask firmware_class module to get the boot firmware off disk */ + rc = request_firmware(raw, name, &priv->pci_dev->dev); +- if (rc < 0) { +- IPW_ERROR("%s request_firmware failed: Reason %d\n", name, rc); ++ if (rc) + return rc; +- } + + if ((*raw)->size < sizeof(*fw)) { + IPW_ERROR("%s is too small (%zd)\n", name, (*raw)->size); +--- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c ++++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c +@@ -1861,7 +1861,6 @@ il3945_read_ucode(struct il_priv *il) + sprintf(buf, "%s%u%s", name_pre, idx, ".ucode"); + ret = request_firmware(&ucode_raw, buf, &il->pci_dev->dev); + if (ret < 0) { +- IL_ERR("%s firmware file req failed: %d\n", buf, ret); + if (ret == -ENOENT) + continue; + else +--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c ++++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +@@ -224,10 +224,8 @@ static int iwl_request_firmware(struct i + sprintf(tag, "%d", drv->fw_index); + } + +- if (drv->fw_index < drv->cfg->ucode_api_min) { +- IWL_ERR(drv, "no suitable firmware found!\n"); ++ if (drv->fw_index < drv->cfg->ucode_api_min) + return -ENOENT; +- } + + snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode", + name_pre, tag); +--- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c ++++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c +@@ -818,8 +818,6 @@ static int if_usb_prog_firmware(struct i + kernel_param_lock(THIS_MODULE); + ret = request_firmware(&cardp->fw, lbtf_fw_name, &cardp->udev->dev); + if (ret < 0) { +- pr_err("request_firmware() failed with %#x\n", ret); +- pr_err("firmware %s not found\n", lbtf_fw_name); + kernel_param_unlock(THIS_MODULE); + goto done; + } +--- a/drivers/net/wireless/marvell/mwifiex/main.c ++++ b/drivers/net/wireless/marvell/mwifiex/main.c +@@ -524,11 +524,8 @@ static void mwifiex_fw_dpc(const struct + bool init_failed = false; + struct wireless_dev *wdev; + +- if (!firmware) { +- mwifiex_dbg(adapter, ERROR, +- "Failed to get firmware %s\n", adapter->fw_name); ++ if (!firmware) + goto err_dnld_fw; +- } + + memset(&fw, 0, sizeof(struct mwifiex_fw_image)); + adapter->firmware = firmware; +--- a/drivers/net/wireless/marvell/mwl8k.c ++++ b/drivers/net/wireless/marvell/mwl8k.c +@@ -5714,16 +5714,12 @@ static int mwl8k_firmware_load_success(s + static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) + { + struct mwl8k_priv *priv = context; +- struct mwl8k_device_info *di = priv->device_info; + int rc; + + switch (priv->fw_state) { + case FW_STATE_INIT: +- if (!fw) { +- printk(KERN_ERR "%s: Error requesting helper fw %s\n", +- pci_name(priv->pdev), di->helper_image); ++ if (!fw) + goto fail; +- } + priv->fw_helper = fw; + rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode, + true); +@@ -5758,11 +5754,8 @@ static void mwl8k_fw_state_machine(const + break; + + case FW_STATE_LOADING_ALT: +- if (!fw) { +- printk(KERN_ERR "%s: Error requesting alt fw %s\n", +- pci_name(priv->pdev), di->helper_image); ++ if (!fw) + goto fail; +- } + priv->fw_ucode = fw; + rc = mwl8k_firmware_load_success(priv); + if (rc) +@@ -5800,10 +5793,8 @@ retry: + + /* Ask userland hotplug daemon for the device firmware */ + rc = mwl8k_request_firmware(priv, fw_image, nowait); +- if (rc) { +- wiphy_err(hw->wiphy, "Firmware files not found\n"); ++ if (rc) + return rc; +- } + + if (nowait) + return rc; +--- a/drivers/net/wireless/intersil/orinoco/fw.c ++++ b/drivers/net/wireless/intersil/orinoco/fw.c +@@ -132,7 +132,6 @@ orinoco_dl_firmware(struct orinoco_priva + err = request_firmware(&fw_entry, firmware, priv->dev); + + if (err) { +- dev_err(dev, "Cannot find firmware %s\n", firmware); + err = -ENOENT; + goto free; + } +@@ -292,10 +291,8 @@ symbol_dl_firmware(struct orinoco_privat + const struct firmware *fw_entry; + + if (!orinoco_cached_fw_get(priv, true)) { +- if (request_firmware(&fw_entry, fw->pri_fw, priv->dev) != 0) { +- dev_err(dev, "Cannot find firmware: %s\n", fw->pri_fw); ++ if (request_firmware(&fw_entry, fw->pri_fw, priv->dev) != 0) + return -ENOENT; +- } + } else + fw_entry = orinoco_cached_fw_get(priv, true); + +@@ -311,10 +308,8 @@ symbol_dl_firmware(struct orinoco_privat + } + + if (!orinoco_cached_fw_get(priv, false)) { +- if (request_firmware(&fw_entry, fw->sta_fw, priv->dev) != 0) { +- dev_err(dev, "Cannot find firmware: %s\n", fw->sta_fw); ++ if (request_firmware(&fw_entry, fw->sta_fw, priv->dev) != 0) + return -ENOENT; +- } + } else + fw_entry = orinoco_cached_fw_get(priv, false); + +--- a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c ++++ b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c +@@ -1667,7 +1667,6 @@ static int ezusb_probe(struct usb_interf + if (ezusb_firmware_download(upriv, &firmware) < 0) + goto error; + } else { +- err("No firmware to download"); + goto error; + } + +--- a/drivers/net/wireless/intersil/p54/p54pci.c ++++ b/drivers/net/wireless/intersil/p54/p54pci.c +@@ -499,7 +499,6 @@ static void p54p_firmware_step2(const st + int err; + + if (!fw) { +- dev_err(&pdev->dev, "Cannot find firmware (isl3886pci)\n"); + err = -ENOENT; + goto out; + } +--- a/drivers/net/wireless/intersil/p54/p54spi.c ++++ b/drivers/net/wireless/intersil/p54/p54spi.c +@@ -170,10 +170,8 @@ static int p54spi_request_firmware(struc + /* FIXME: should driver use it's own struct device? */ + ret = request_firmware(&priv->firmware, "3826.arm", &priv->spi->dev); + +- if (ret < 0) { +- dev_err(&priv->spi->dev, "request_firmware() failed: %d", ret); ++ if (ret) + return ret; +- } + + ret = p54_parse_firmware(dev, priv->firmware); + if (ret) { +--- a/drivers/net/wireless/intersil/p54/p54usb.c ++++ b/drivers/net/wireless/intersil/p54/p54usb.c +@@ -929,7 +929,6 @@ static void p54u_load_firmware_cb(const + err = p54u_start_ops(priv); + } else { + err = -ENOENT; +- dev_err(&udev->dev, "Firmware not found.\n"); + } + + if (err) { +--- a/drivers/net/wireless/intersil/prism54/islpci_dev.c ++++ b/drivers/net/wireless/intersil/prism54/islpci_dev.c +@@ -92,12 +92,9 @@ isl_upload_firmware(islpci_private *priv + const u32 *fw_ptr; + + rc = request_firmware(&fw_entry, priv->firmware, PRISM_FW_PDEV); +- if (rc) { +- printk(KERN_ERR +- "%s: request_firmware() failed for '%s'\n", +- "prism54", priv->firmware); ++ if (rc) + return rc; +- } ++ + /* prepare the Direct Memory Base register */ + reg = ISL38XX_DEV_FIRMWARE_ADDRES; + +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c +@@ -49,10 +49,8 @@ static int rt2x00lib_request_firmware(st + rt2x00_info(rt2x00dev, "Loading firmware file '%s'\n", fw_name); + + retval = request_firmware(&fw, fw_name, device); +- if (retval) { +- rt2x00_err(rt2x00dev, "Failed to request Firmware\n"); ++ if (retval) + return retval; +- } + + if (!fw || !fw->size || !fw->data) { + rt2x00_err(rt2x00dev, "Failed to read Firmware\n"); +--- a/drivers/net/wireless/realtek/rtlwifi/core.c ++++ b/drivers/net/wireless/realtek/rtlwifi/core.c +@@ -111,7 +111,6 @@ static void rtl_fw_do_work(const struct + if (!err) + goto found_alt; + } +- pr_err("Selected firmware is not available\n"); + rtlpriv->max_fw_size = 0; + return; + } +--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c ++++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c +@@ -95,7 +95,6 @@ static void rtl92se_fw_cb(const struct f + "Firmware callback routine entered!\n"); + complete(&rtlpriv->firmware_loading_complete); + if (!firmware) { +- pr_err("Firmware %s not available\n", fw_name); + rtlpriv->max_fw_size = 0; + return; + } +--- a/drivers/net/wireless/ti/wl1251/main.c ++++ b/drivers/net/wireless/ti/wl1251/main.c +@@ -71,10 +71,8 @@ static int wl1251_fetch_firmware(struct + + ret = request_firmware(&fw, WL1251_FW_NAME, dev); + +- if (ret < 0) { +- wl1251_error("could not get firmware: %d", ret); ++ if (ret) + return ret; +- } + + if (fw->size % 4) { + wl1251_error("firmware size is not multiple of 32 bits: %zu", +@@ -110,10 +108,8 @@ static int wl1251_fetch_nvs(struct wl125 + + ret = request_firmware(&fw, WL1251_NVS_NAME, dev); + +- if (ret < 0) { +- wl1251_error("could not get nvs file: %d", ret); ++ if (ret) + return ret; +- } + + if (fw->size % 4) { + wl1251_error("nvs size is not multiple of 32 bits: %zu", +--- a/drivers/net/wireless/ti/wlcore/main.c ++++ b/drivers/net/wireless/ti/wlcore/main.c +@@ -756,10 +756,8 @@ static int wl12xx_fetch_firmware(struct + + ret = request_firmware(&fw, fw_name, wl->dev); + +- if (ret < 0) { +- wl1271_error("could not get firmware %s: %d", fw_name, ret); ++ if (ret) + return ret; +- } + + if (fw->size % 4) { + wl1271_error("firmware size is not multiple of 32 bits: %zu", +--- a/drivers/net/wireless/zydas/zd1201.c ++++ b/drivers/net/wireless/zydas/zd1201.c +@@ -65,8 +65,6 @@ static int zd1201_fw_upload(struct usb_d + + err = request_firmware(&fw_entry, fwfile, &dev->dev); + if (err) { +- dev_err(&dev->dev, "Failed to load %s firmware file!\n", fwfile); +- dev_err(&dev->dev, "Make sure the hotplug firmware loader is installed.\n"); + dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info.\n"); + return err; + } +--- a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c ++++ b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c +@@ -120,16 +120,9 @@ static void int_urb_complete(struct urb + static int request_fw_file( + const struct firmware **fw, const char *name, struct device *device) + { +- int r; +- + dev_dbg_f(device, "fw name %s\n", name); + +- r = request_firmware(fw, name, device); +- if (r) +- dev_err(device, +- "Could not load firmware file %s. Error number %d\n", +- name, r); +- return r; ++ return request_firmware(fw, name, device); + } + + static inline u16 get_bcdDevice(const struct usb_device *udev) +--- a/drivers/scsi/advansys.c ++++ b/drivers/scsi/advansys.c +@@ -4107,8 +4107,6 @@ static int AscInitAsc1000Driver(ASC_DVC_ + + err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); + if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); + asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM; + return err; + } +@@ -4473,8 +4471,6 @@ static int AdvInitAsc3550Driver(ADV_DVC_ + + err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); + if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); + asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; + return err; + } +@@ -4973,8 +4969,6 @@ static int AdvInitAsc38C0800Driver(ADV_D + + err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); + if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); + asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; + return err; + } +@@ -5461,8 +5455,6 @@ static int AdvInitAsc38C1600Driver(ADV_D + + err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); + if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); + asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; + return err; + } +--- a/drivers/scsi/aic94xx/aic94xx_init.c ++++ b/drivers/scsi/aic94xx/aic94xx_init.c +@@ -384,8 +384,6 @@ static ssize_t asd_store_update_bios(str + filename_ptr, + &asd_ha->pcidev->dev); + if (err) { +- asd_printk("Failed to load bios image file %s, error %d\n", +- filename_ptr, err); + err = FAIL_OPEN_BIOS_FILE; + goto out1; + } +--- a/drivers/scsi/aic94xx/aic94xx_seq.c ++++ b/drivers/scsi/aic94xx/aic94xx_seq.c +@@ -1317,11 +1317,8 @@ int asd_init_seqs(struct asd_ha_struct * + + err = asd_request_firmware(asd_ha); + +- if (err) { +- asd_printk("Failed to load sequencer firmware file %s, error %d\n", +- SAS_RAZOR_SEQUENCER_FW_FILE, err); ++ if (err) + return err; +- } + + err = asd_seq_download_seqs(asd_ha); + if (err) { +--- a/drivers/scsi/bfa/bfad.c ++++ b/drivers/scsi/bfa/bfad.c +@@ -1758,7 +1758,6 @@ bfad_read_firmware(struct pci_dev *pdev, + const struct firmware *fw; + + if (request_firmware(&fw, fw_name, &pdev->dev)) { +- printk(KERN_ALERT "Can't locate firmware %s\n", fw_name); + *bfi_image = NULL; + goto out; + } +--- a/drivers/scsi/ipr.c ++++ b/drivers/scsi/ipr.c +@@ -4041,10 +4041,8 @@ static ssize_t ipr_store_update_fw(struc + if (endline) + *endline = '\0'; + +- if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) { +- dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname); ++ if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) + return -EIO; +- } + + image_hdr = (struct ipr_ucode_image_header *)fw_entry->data; + +--- a/drivers/scsi/pm8001/pm8001_ctl.c ++++ b/drivers/scsi/pm8001/pm8001_ctl.c +@@ -685,10 +685,6 @@ static ssize_t pm8001_store_update_fw(st + pm8001_ha->dev); + + if (ret) { +- PM8001_FAIL_DBG(pm8001_ha, +- pm8001_printk( +- "Failed to load firmware image file %s, error %d\n", +- filename_ptr, ret)); + pm8001_ha->fw_status = FAIL_OPEN_BIOS_FILE; + goto out; + } +--- a/drivers/scsi/qla1280.c ++++ b/drivers/scsi/qla1280.c +@@ -1552,8 +1552,6 @@ qla1280_request_firmware(struct scsi_qla + err = request_firmware(&fw, fwname, &ha->pdev->dev); + + if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); + fw = ERR_PTR(err); + goto unlock; + } +--- a/drivers/scsi/qla2xxx/qla_init.c ++++ b/drivers/scsi/qla2xxx/qla_init.c +@@ -5656,8 +5656,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, + /* Load firmware blob. */ + blob = qla2x00_request_firmware(vha); + if (!blob) { +- ql_log(ql_log_info, vha, 0x0083, +- "Firmware image unavailable.\n"); + ql_log(ql_log_info, vha, 0x0084, + "Firmware images can be retrieved from: "QLA_FW_URL ".\n"); + return QLA_FUNCTION_FAILED; +@@ -5759,8 +5757,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * + /* Load firmware blob. */ + blob = qla2x00_request_firmware(vha); + if (!blob) { +- ql_log(ql_log_warn, vha, 0x0090, +- "Firmware image unavailable.\n"); + ql_log(ql_log_warn, vha, 0x0091, + "Firmware images can be retrieved from: " + QLA_FW_URL ".\n"); +--- a/drivers/scsi/qla2xxx/qla_nx.c ++++ b/drivers/scsi/qla2xxx/qla_nx.c +@@ -2460,11 +2460,8 @@ try_blob_fw: + + /* Load firmware blob. */ + blob = ha->hablob = qla2x00_request_firmware(vha); +- if (!blob) { +- ql_log(ql_log_fatal, vha, 0x00a3, +- "Firmware image not present.\n"); ++ if (!blob) + goto fw_load_failed; +- } + + /* Validating firmware blob */ + if (qla82xx_validate_firmware_blob(vha, +--- a/drivers/scsi/qla2xxx/qla_os.c ++++ b/drivers/scsi/qla2xxx/qla_os.c +@@ -5641,8 +5641,6 @@ qla2x00_request_firmware(scsi_qla_host_t + goto out; + + if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) { +- ql_log(ql_log_warn, vha, 0x0063, +- "Failed to load firmware image (%s).\n", blob->name); + blob->fw = NULL; + blob = NULL; + goto out; +--- a/drivers/scsi/qlogicpti.c ++++ b/drivers/scsi/qlogicpti.c +@@ -475,11 +475,8 @@ static int qlogicpti_load_firmware(struc + int i, timeout; + + err = request_firmware(&fw, fwname, &qpti->op->dev); +- if (err) { +- printk(KERN_ERR "Failed to load image \"%s\" err %d\n", +- fwname, err); ++ if (err) + return err; +- } + if (fw->size % 2) { + printk(KERN_ERR "Bogus length %zu in image \"%s\"\n", + fw->size, fwname); +--- a/drivers/media/usb/go7007/go7007-driver.c ++++ b/drivers/media/usb/go7007/go7007-driver.c +@@ -92,10 +92,8 @@ static int go7007_load_encoder(struct go + u16 intr_val, intr_data; + + if (go->boot_fw == NULL) { +- if (request_firmware(&fw_entry, fw_name, go->dev)) { +- v4l2_err(go, "unable to load firmware from file \"%s\"\n", fw_name); ++ if (request_firmware(&fw_entry, fw_name, go->dev)) + return -1; +- } + if (fw_entry->size < 16 || memcmp(fw_entry->data, "WISGO7007FW", 11)) { + v4l2_err(go, "file \"%s\" does not appear to be go7007 firmware\n", fw_name); + release_firmware(fw_entry); +--- a/drivers/media/usb/go7007/go7007-fw.c ++++ b/drivers/media/usb/go7007/go7007-fw.c +@@ -1570,12 +1570,8 @@ int go7007_construct_fw_image(struct go7 + default: + return -1; + } +- if (request_firmware(&fw_entry, GO7007_FW_NAME, go->dev)) { +- dev_err(go->dev, +- "unable to load firmware from file \"%s\"\n", +- GO7007_FW_NAME); ++ if (request_firmware(&fw_entry, GO7007_FW_NAME, go->dev)) + return -1; +- } + code = kzalloc(codespace * 2, GFP_KERNEL); + if (code == NULL) + goto fw_failed; +--- a/drivers/media/usb/go7007/go7007-loader.c ++++ b/drivers/media/usb/go7007/go7007-loader.c +@@ -75,11 +75,8 @@ static int go7007_loader_probe(struct us + + dev_info(&interface->dev, "loading firmware %s\n", fw1); + +- if (request_firmware(&fw, fw1, &usbdev->dev)) { +- dev_err(&interface->dev, +- "unable to load firmware from file \"%s\"\n", fw1); ++ if (request_firmware(&fw, fw1, &usbdev->dev)) + goto failed2; +- } + ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); + release_firmware(fw); + if (0 != ret) { +@@ -90,11 +87,8 @@ static int go7007_loader_probe(struct us + if (fw2 == NULL) + return 0; + +- if (request_firmware(&fw, fw2, &usbdev->dev)) { +- dev_err(&interface->dev, +- "unable to load firmware from file \"%s\"\n", fw2); ++ if (request_firmware(&fw, fw2, &usbdev->dev)) + goto failed2; +- } + ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); + release_firmware(fw); + if (0 != ret) { +--- a/drivers/staging/media/lirc/lirc_zilog.c ++++ b/drivers/staging/media/lirc/lirc_zilog.c +@@ -762,9 +762,6 @@ static int fw_load(struct IR_tx *tx) + /* Request codeset data file */ + ret = request_firmware(&fw_entry, "haup-ir-blaster.bin", tx->ir->l.dev); + if (ret != 0) { +- dev_err(tx->ir->l.dev, +- "firmware haup-ir-blaster.bin not available (%d)\n", +- ret); + ret = ret < 0 ? ret : -EFAULT; + goto out; + } +--- a/drivers/staging/rtl8192u/r819xU_firmware.c ++++ b/drivers/staging/rtl8192u/r819xU_firmware.c +@@ -244,10 +244,8 @@ bool init_firmware(struct net_device *de + */ + if (rst_opt == OPT_SYSTEM_RESET) { + rc = request_firmware(&fw_entry, fw_name[init_step], &priv->udev->dev); +- if (rc < 0) { +- RT_TRACE(COMP_ERR, "request firmware fail!\n"); ++ if (rc) + goto download_firmware_fail; +- } + + if (fw_entry->size > sizeof(pfirmware->firmware_buf)) { + RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n"); +--- a/drivers/staging/rtl8712/hal_init.c ++++ b/drivers/staging/rtl8712/hal_init.c +@@ -67,8 +67,6 @@ int rtl871x_load_fw(struct _adapter *pad + dev_info(dev, "r8712u: Loading firmware from \"%s\"\n", firmware_file); + rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev, + GFP_KERNEL, padapter, rtl871x_load_fw_cb); +- if (rc) +- dev_err(dev, "r8712u: Firmware request error %d\n", rc); + return rc; + } + MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); +--- a/drivers/staging/slicoss/slicoss.c ++++ b/drivers/staging/slicoss/slicoss.c +@@ -376,11 +376,8 @@ static int slic_card_download_gbrcv(stru + } + + ret = request_firmware(&fw, file, &adapter->pcidev->dev); +- if (ret) { +- dev_err(&adapter->pcidev->dev, +- "Failed to load firmware %s\n", file); ++ if (ret) + return ret; +- } + + rcvucodelen = *(u32 *)(fw->data + index); + index += 4; +@@ -454,11 +451,8 @@ static int slic_card_download(struct ada + return -ENOENT; + } + ret = request_firmware(&fw, file, &adapter->pcidev->dev); +- if (ret) { +- dev_err(&adapter->pcidev->dev, +- "Failed to load firmware %s\n", file); ++ if (ret) + return ret; +- } + numsects = *(u32 *)(fw->data + index); + index += 4; + for (i = 0; i < numsects; i++) { +--- a/drivers/staging/vt6656/firmware.c ++++ b/drivers/staging/vt6656/firmware.c +@@ -49,11 +49,8 @@ int vnt_download_firmware(struct vnt_pri + dev_dbg(dev, "---->Download firmware\n"); + + rc = request_firmware(&fw, FIRMWARE_NAME, dev); +- if (rc) { +- dev_err(dev, "firmware file %s request failed (%d)\n", +- FIRMWARE_NAME, rc); +- goto out; +- } ++ if (rc) ++ goto out; + + buffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL); + if (!buffer) +--- a/drivers/tty/cyclades.c ++++ b/drivers/tty/cyclades.c +@@ -3495,10 +3495,8 @@ static int cyz_load_fw(struct pci_dev *p + int retval; + + retval = request_firmware(&fw, "cyzfirm.bin", &pdev->dev); +- if (retval) { +- dev_err(&pdev->dev, "can't get firmware\n"); ++ if (retval) + goto err; +- } + + /* Check whether the firmware is already loaded and running. If + positive, skip this board */ +--- a/drivers/tty/moxa.c ++++ b/drivers/tty/moxa.c +@@ -866,13 +866,8 @@ static int moxa_init_board(struct moxa_b + } + + ret = request_firmware(&fw, file, dev); +- if (ret) { +- printk(KERN_ERR "MOXA: request_firmware failed. Make sure " +- "you've placed '%s' file into your firmware " +- "loader directory (e.g. /lib/firmware)\n", +- file); ++ if (ret) + goto err_free; +- } + + ret = moxa_load_fw(brd, fw); + +--- a/drivers/tty/serial/icom.c ++++ b/drivers/tty/serial/icom.c +@@ -374,7 +374,6 @@ static void load_code(struct icom_port * + + /* Load Call Setup into Adapter */ + if (request_firmware(&fw, "icom_call_setup.bin", &dev->dev) < 0) { +- dev_err(&dev->dev,"Unable to load icom_call_setup.bin firmware image\n"); + status = -1; + goto load_code_exit; + } +@@ -394,7 +393,6 @@ static void load_code(struct icom_port * + + /* Load Resident DCE portion of Adapter */ + if (request_firmware(&fw, "icom_res_dce.bin", &dev->dev) < 0) { +- dev_err(&dev->dev,"Unable to load icom_res_dce.bin firmware image\n"); + status = -1; + goto load_code_exit; + } +@@ -439,7 +437,6 @@ static void load_code(struct icom_port * + } + + if (request_firmware(&fw, "icom_asc.bin", &dev->dev) < 0) { +- dev_err(&dev->dev,"Unable to load icom_asc.bin firmware image\n"); + status = -1; + goto load_code_exit; + } +--- a/drivers/tty/serial/ucc_uart.c ++++ b/drivers/tty/serial/ucc_uart.c +@@ -1167,10 +1167,8 @@ static void uart_firmware_cont(const str + struct device *dev = context; + int ret; + +- if (!fw) { +- dev_err(dev, "firmware not found\n"); ++ if (!fw) + return; +- } + + firmware = (struct qe_firmware *) fw->data; + +--- a/drivers/usb/atm/cxacru.c ++++ b/drivers/usb/atm/cxacru.c +@@ -1088,8 +1088,6 @@ static int cxacru_find_firmware(struct c + return -ENOENT; + } + +- usb_info(usbatm, "found firmware %s\n", buf); +- + return 0; + } + +--- a/drivers/usb/atm/ueagle-atm.c ++++ b/drivers/usb/atm/ueagle-atm.c +@@ -649,10 +649,8 @@ static void uea_upload_pre_firmware(cons + int ret, size; + + uea_enters(usb); +- if (!fw_entry) { +- uea_err(usb, "firmware is not available\n"); ++ if (!fw_entry) + goto err; +- } + + pfw = fw_entry->data; + size = fw_entry->size; +@@ -747,10 +745,6 @@ static int uea_load_firmware(struct usb_ + ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, + GFP_KERNEL, usb, + uea_upload_pre_firmware); +- if (ret) +- uea_err(usb, "firmware %s is not available\n", fw_name); +- else +- uea_info(usb, "loading firmware %s\n", fw_name); + + uea_leaves(usb); + return ret; +@@ -912,12 +906,8 @@ static int request_dsp(struct uea_softc + } + + ret = request_firmware(&sc->dsp_firm, dsp_name, &sc->usb_dev->dev); +- if (ret < 0) { +- uea_err(INS_TO_USBDEV(sc), +- "requesting firmware %s failed with error %d\n", +- dsp_name, ret); ++ if (ret) + return ret; +- } + + if (UEA_CHIP_VERSION(sc) == EAGLE_IV) + ret = check_dsp_e4(sc->dsp_firm->data, sc->dsp_firm->size); +@@ -1630,12 +1620,8 @@ static int request_cmvs_old(struct uea_s + + cmvs_file_name(sc, cmv_name, 1); + ret = request_firmware(fw, cmv_name, &sc->usb_dev->dev); +- if (ret < 0) { +- uea_err(INS_TO_USBDEV(sc), +- "requesting firmware %s failed with error %d\n", +- cmv_name, ret); ++ if (ret) + return ret; +- } + + data = (u8 *) (*fw)->data; + size = (*fw)->size; +@@ -1672,9 +1658,6 @@ static int request_cmvs(struct uea_softc + "try to get older cmvs\n", cmv_name); + return request_cmvs_old(sc, cmvs, fw); + } +- uea_err(INS_TO_USBDEV(sc), +- "requesting firmware %s failed with error %d\n", +- cmv_name, ret); + return ret; + } + +@@ -1957,11 +1940,8 @@ static int load_XILINX_firmware(struct u + uea_enters(INS_TO_USBDEV(sc)); + + ret = request_firmware(&fw_entry, fw_name, &sc->usb_dev->dev); +- if (ret) { +- uea_err(INS_TO_USBDEV(sc), "firmware %s is not available\n", +- fw_name); ++ if (ret) + goto err0; +- } + + pfw = fw_entry->data; + size = fw_entry->size; +--- a/drivers/usb/misc/emi26.c ++++ b/drivers/usb/misc/emi26.c +@@ -88,21 +88,17 @@ static int emi26_load_firmware (struct u + + err = request_ihex_firmware(&loader_fw, "emi26/loader.fw", &dev->dev); + if (err) +- goto nofw; ++ goto wraperr; + + err = request_ihex_firmware(&bitstream_fw, "emi26/bitstream.fw", + &dev->dev); + if (err) +- goto nofw; ++ goto wraperr; + + err = request_ihex_firmware(&firmware_fw, "emi26/firmware.fw", + &dev->dev); +- if (err) { +- nofw: +- dev_err(&dev->dev, "%s - request_firmware() failed\n", +- __func__); ++ if (err) + goto wraperr; +- } + + /* Assert reset (stop the CPU in the EMI) */ + err = emi26_set_reset(dev,1); +--- a/drivers/usb/misc/ezusb.c ++++ b/drivers/usb/misc/ezusb.c +@@ -79,12 +79,8 @@ static int ezusb_ihex_firmware_download( + const struct ihex_binrec *record; + + if (request_ihex_firmware(&firmware, firmware_path, +- &dev->dev)) { +- dev_err(&dev->dev, +- "%s - request \"%s\" failed\n", +- __func__, firmware_path); ++ &dev->dev)) + goto out; +- } + + ret = ezusb_set_reset(dev, fx.cpucs_reg, 0); + if (ret < 0) +--- a/drivers/usb/misc/isight_firmware.c ++++ b/drivers/usb/misc/isight_firmware.c +@@ -48,7 +48,6 @@ static int isight_firmware_load(struct u + return -ENOMEM; + + if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) { +- printk(KERN_ERR "Unable to load isight firmware\n"); + ret = -ENODEV; + goto out; + } +--- a/drivers/usb/serial/io_edgeport.c ++++ b/drivers/usb/serial/io_edgeport.c +@@ -299,11 +299,8 @@ static void update_edgeport_E2PROM(struc + + response = request_ihex_firmware(&fw, fw_name, + &edge_serial->serial->dev->dev); +- if (response) { +- dev_err(dev, "Failed to load image \"%s\" err %d\n", +- fw_name, response); ++ if (response) + return; +- } + + rec = (const struct ihex_binrec *)fw->data; + BootMajorVersion = rec->data[0]; +--- a/drivers/usb/serial/io_ti.c ++++ b/drivers/usb/serial/io_ti.c +@@ -1014,8 +1014,6 @@ static int download_fw(struct edgeport_s + + status = request_firmware(&fw, fw_name, dev); + if (status) { +- dev_err(dev, "Failed to load image \"%s\" err %d\n", +- fw_name, status); + return status; + } + +--- a/drivers/usb/serial/ti_usb_3410_5052.c ++++ b/drivers/usb/serial/ti_usb_3410_5052.c +@@ -1702,10 +1702,8 @@ static int ti_download_firmware(struct t + } + + check_firmware: +- if (status) { +- dev_err(&dev->dev, "%s - firmware not found\n", __func__); ++ if (status) + return -ENOENT; +- } + if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { + dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size); + release_firmware(fw_p); +--- a/drivers/video/fbdev/broadsheetfb.c ++++ b/drivers/video/fbdev/broadsheetfb.c +@@ -743,10 +743,8 @@ static ssize_t broadsheet_loadstore_wave + return -EINVAL; + + err = request_firmware(&fw_entry, "broadsheet.wbf", dev); +- if (err < 0) { +- dev_err(dev, "Failed to get broadsheet waveform\n"); ++ if (err) + goto err_failed; +- } + + /* try to enforce reasonable min max on waveform */ + if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) { +--- a/drivers/video/fbdev/metronomefb.c ++++ b/drivers/video/fbdev/metronomefb.c +@@ -679,10 +679,8 @@ static int metronomefb_probe(struct plat + a) request the waveform file from userspace + b) process waveform and decode into metromem */ + retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev); +- if (retval < 0) { +- dev_err(&dev->dev, "Failed to get waveform\n"); ++ if (retval) + goto err_csum_table; +- } + + retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 3, 31, + par); +--- a/sound/drivers/vx/vx_hwdep.c ++++ b/sound/drivers/vx/vx_hwdep.c +@@ -71,10 +71,8 @@ int snd_vx_setup_firmware(struct vx_core + if (! fw_files[chip->type][i]) + continue; + sprintf(path, "vx/%s", fw_files[chip->type][i]); +- if (request_firmware(&fw, path, chip->dev)) { +- snd_printk(KERN_ERR "vx: can't load firmware %s\n", path); ++ if (request_firmware(&fw, path, chip->dev)) + return -ENOENT; +- } + err = chip->ops->load_dsp(chip, i, fw); + if (err < 0) { + release_firmware(fw); +--- a/sound/isa/msnd/msnd_pinnacle.c ++++ b/sound/isa/msnd/msnd_pinnacle.c +@@ -389,15 +389,11 @@ static int upload_dsp_code(struct snd_ca + outb(HPBLKSEL_0, chip->io + HP_BLKS); + + err = request_firmware(&init_fw, INITCODEFILE, card->dev); +- if (err < 0) { +- printk(KERN_ERR LOGNAME ": Error loading " INITCODEFILE); ++ if (err) + goto cleanup1; +- } + err = request_firmware(&perm_fw, PERMCODEFILE, card->dev); +- if (err < 0) { +- printk(KERN_ERR LOGNAME ": Error loading " PERMCODEFILE); ++ if (err) + goto cleanup; +- } + + memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size); + if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) { +--- a/sound/isa/sscape.c ++++ b/sound/isa/sscape.c +@@ -544,10 +544,8 @@ static int sscape_upload_bootblock(struc + int ret; + + ret = request_firmware(&init_fw, "scope.cod", card->dev); +- if (ret < 0) { +- snd_printk(KERN_ERR "sscape: Error loading scope.cod"); ++ if (ret) + return ret; +- } + ret = upload_dma_data(sscape, init_fw->data, init_fw->size); + + release_firmware(init_fw); +@@ -584,11 +582,8 @@ static int sscape_upload_microcode(struc + snprintf(name, sizeof(name), "sndscape.co%d", version); + + err = request_firmware(&init_fw, name, card->dev); +- if (err < 0) { +- snd_printk(KERN_ERR "sscape: Error loading sndscape.co%d", +- version); ++ if (err) + return err; +- } + err = upload_dma_data(sscape, init_fw->data, init_fw->size); + if (err == 0) + snd_printk(KERN_INFO "sscape: MIDI firmware loaded %zu KBs\n", +--- a/sound/isa/wavefront/wavefront_synth.c ++++ b/sound/isa/wavefront/wavefront_synth.c +@@ -1956,10 +1956,8 @@ wavefront_download_firmware (snd_wavefro + const struct firmware *firmware; + + err = request_firmware(&firmware, path, dev->card->dev); +- if (err < 0) { +- snd_printk(KERN_ERR "firmware (%s) download failed!!!\n", path); ++ if (err) + return 1; +- } + + len = 0; + buf = firmware->data; +--- a/sound/pci/asihpi/hpidspcd.c ++++ b/sound/pci/asihpi/hpidspcd.c +@@ -46,8 +46,6 @@ short hpi_dsp_code_open(u32 adapter, voi + err = request_firmware(&firmware, fw_name, &dev->dev); + + if (err || !firmware) { +- dev_err(&dev->dev, "%d, request_firmware failed for %s\n", +- err, fw_name); + goto error1; + } + if (firmware->size < sizeof(header)) { +--- a/sound/pci/echoaudio/echoaudio.c ++++ b/sound/pci/echoaudio/echoaudio.c +@@ -60,11 +60,8 @@ static int get_firmware(const struct fir + "firmware requested: %s\n", card_fw[fw_index].data); + snprintf(name, sizeof(name), "ea/%s", card_fw[fw_index].data); + err = request_firmware(fw_entry, name, pci_device(chip)); +- if (err < 0) +- dev_err(chip->card->dev, +- "get_firmware(): Firmware not available (%d)\n", err); + #ifdef CONFIG_PM_SLEEP +- else ++ if (!err) + chip->fw_cache[fw_index] = *fw_entry; + #endif + return err; +--- a/sound/pci/emu10k1/emu10k1_main.c ++++ b/sound/pci/emu10k1/emu10k1_main.c +@@ -901,12 +901,8 @@ static int snd_emu10k1_emu1010_init(stru + } + + err = request_firmware(&emu->firmware, filename, &emu->pci->dev); +- if (err != 0) { +- dev_info(emu->card->dev, +- "emu1010: firmware: %s not found. Err = %d\n", +- filename, err); ++ if (err != 0) + return err; +- } + dev_info(emu->card->dev, + "emu1010: firmware file = %s, size = 0x%zx\n", + filename, emu->firmware->size); +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -1815,10 +1815,8 @@ static void azx_firmware_cb(const struct + struct azx *chip = card->private_data; + struct pci_dev *pci = chip->pci; + +- if (!fw) { +- dev_err(card->dev, "Cannot load firmware, aborting\n"); ++ if (!fw) + goto error; +- } + + chip->fw = fw; + if (!chip->disabled) { +--- a/sound/pci/korg1212/korg1212.c ++++ b/sound/pci/korg1212/korg1212.c +@@ -2332,7 +2332,6 @@ static int snd_korg1212_create(struct sn + err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev); + if (err < 0) { + release_firmware(dsp_code); +- snd_printk(KERN_ERR "firmware not available\n"); + snd_korg1212_free(korg1212); + return err; + } +--- a/sound/pci/mixart/mixart_hwdep.c ++++ b/sound/pci/mixart/mixart_hwdep.c +@@ -571,11 +571,8 @@ int snd_mixart_setup_firmware(struct mix + + for (i = 0; i < 3; i++) { + sprintf(path, "mixart/%s", fw_files[i]); +- if (request_firmware(&fw_entry, path, &mgr->pci->dev)) { +- dev_err(&mgr->pci->dev, +- "miXart: can't load firmware %s\n", path); ++ if (request_firmware(&fw_entry, path, &mgr->pci->dev)) + return -ENOENT; +- } + /* fake hwdep dsp record */ + err = mixart_dsp_load(mgr, i, fw_entry); + release_firmware(fw_entry); +--- a/sound/pci/pcxhr/pcxhr_hwdep.c ++++ b/sound/pci/pcxhr/pcxhr_hwdep.c +@@ -385,12 +385,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg + if (!fw_files[fw_set][i]) + continue; + sprintf(path, "pcxhr/%s", fw_files[fw_set][i]); +- if (request_firmware(&fw_entry, path, &mgr->pci->dev)) { +- dev_err(&mgr->pci->dev, +- "pcxhr: can't load firmware %s\n", +- path); ++ if (request_firmware(&fw_entry, path, &mgr->pci->dev)) + return -ENOENT; +- } + /* fake hwdep dsp record */ + err = pcxhr_dsp_load(mgr, i, fw_entry); + release_firmware(fw_entry); +--- a/sound/pci/riptide/riptide.c ++++ b/sound/pci/riptide/riptide.c +@@ -1231,11 +1231,8 @@ static int try_to_load_firmware(struct c + if (!chip->fw_entry) { + err = request_firmware(&chip->fw_entry, "riptide.hex", + &chip->pci->dev); +- if (err) { +- snd_printk(KERN_ERR +- "Riptide: Firmware not available %d\n", err); ++ if (err) + return -EIO; +- } + } + err = loadfirmware(cif, chip->fw_entry->data, chip->fw_entry->size); + if (err) { +--- a/sound/pci/rme9652/hdsp.c ++++ b/sound/pci/rme9652/hdsp.c +@@ -5103,11 +5103,8 @@ static int hdsp_request_fw_loader(struct + return -EINVAL; + } + +- if (request_firmware(&fw, fwfile, &hdsp->pci->dev)) { +- dev_err(hdsp->card->dev, +- "cannot load firmware %s\n", fwfile); ++ if (request_firmware(&fw, fwfile, &hdsp->pci->dev)) + return -ENOENT; +- } + if (fw->size < HDSP_FIRMWARE_SIZE) { + dev_err(hdsp->card->dev, + "too short firmware size %d (expected %d)\n", +--- a/sound/soc/codecs/wm2000.c ++++ b/sound/soc/codecs/wm2000.c +@@ -891,10 +891,8 @@ static int wm2000_i2c_probe(struct i2c_c + } + + ret = request_firmware(&fw, filename, &i2c->dev); +- if (ret != 0) { +- dev_err(&i2c->dev, "Failed to acquire ANC data: %d\n", ret); ++ if (ret != 0) + goto err_supplies; +- } + + /* Pre-cook the concatenation of the register address onto the image */ + wm2000->anc_download_size = fw->size + 2; +--- a/sound/usb/6fire/firmware.c ++++ b/sound/usb/6fire/firmware.c +@@ -219,8 +219,6 @@ static int usb6fire_fw_ezusb_upload( + ret = request_firmware(&fw, fwname, &device->dev); + if (ret < 0) { + kfree(rec); +- dev_err(&intf->dev, +- "error requesting ezusb firmware %s.\n", fwname); + return ret; + } + ret = usb6fire_fw_ihex_init(fw, rec); +@@ -296,8 +294,6 @@ static int usb6fire_fw_fpga_upload( + + ret = request_firmware(&fw, fwname, &device->dev); + if (ret < 0) { +- dev_err(&intf->dev, "unable to get fpga firmware %s.\n", +- fwname); + kfree(buffer); + return -EIO; + } +--- a/sound/pci/cs46xx/cs46xx_lib.c ++++ b/sound/pci/cs46xx/cs46xx_lib.c +@@ -3253,11 +3253,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46 + #ifdef CONFIG_SND_CS46XX_NEW_DSP + for (i = 0; i < CS46XX_DSP_MODULES; i++) { + err = load_firmware(chip, &chip->modules[i], module_names[i]); +- if (err < 0) { +- dev_err(chip->card->dev, "firmware load error [%s]\n", +- module_names[i]); ++ if (err < 0) + return err; +- } + err = cs46xx_dsp_load_module(chip, chip->modules[i]); + if (err < 0) { + dev_err(chip->card->dev, "image download error [%s]\n", diff --git a/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch b/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch new file mode 100644 index 00000000000..ab8c1729bee --- /dev/null +++ b/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch @@ -0,0 +1,64 @@ +From: Ben Hutchings +Subject: firmware_class: Log every success and failure against given device +Date: Sun, 09 Dec 2012 16:02:00 +0000 +Forwarded: no + +The hundreds of users of request_firmware() have nearly as many +different log formats for reporting failures. They also have only the +vaguest hint as to what went wrong; only firmware_class really knows +that. Therefore, add specific log messages for the failure modes that +aren't currently logged. + +In case of a driver that tries multiple names, this may result in the +impression that it failed to initialise. Therefore, also log successes. + +This makes many error messages in drivers redundant, which will be +removed in later patches. + +This does not cover the case where we fall back to a user-mode helper +(which is no longer enabled in Debian). + +NOTE: hw-detect will depend on the "firmware: failed to load %s (%d)\n" +format to detect missing firmware. +--- +--- a/drivers/base/firmware_class.c ++++ b/drivers/base/firmware_class.c +@@ -350,21 +350,22 @@ fw_get_filesystem_firmware(struct device + rc = kernel_read_file_from_path(path, &buf->data, &size, msize, + id); + if (rc) { +- if (rc == -ENOENT) +- dev_dbg(device, "loading %s failed with error %d\n", +- path, rc); +- else +- dev_warn(device, "loading %s failed with error %d\n", +- path, rc); ++ dev_dbg(device, "loading %s failed with error %d\n", ++ path, rc); + continue; + } +- dev_dbg(device, "direct-loading %s\n", buf->fw_id); ++ dev_info(device, "firmware: direct-loading firmware %s\n", ++ buf->fw_id); + buf->size = size; + fw_finish_direct_load(device, buf); + break; + } + __putname(path); + ++ if (rc) ++ dev_err(device, "firmware: failed to load %s (%d)\n", ++ buf->fw_id, rc); ++ + return rc; + } + +@@ -1155,7 +1156,7 @@ _request_firmware(const struct firmware + if (opt_flags & FW_OPT_NOWAIT) { + timeout = usermodehelper_read_lock_wait(timeout); + if (!timeout) { +- dev_dbg(device, "firmware: %s loading timed out\n", ++ dev_err(device, "firmware: %s loading timed out\n", + name); + ret = -EBUSY; + goto out; diff --git a/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch b/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch new file mode 100644 index 00000000000..bde2c1f1c2e --- /dev/null +++ b/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch @@ -0,0 +1,85 @@ +From: Ben Hutchings +Date: Wed, 13 Apr 2016 21:48:06 +0100 +Subject: fs: Add MODULE_SOFTDEP declarations for hard-coded crypto drivers +Bug-Debian: https://bugs.debian.org/819725 +Forwarded: http://mid.gmane.org/20160517133631.GF7555@decadent.org.uk + +This helps initramfs builders and other tools to find the full +dependencies of a module. + +Signed-off-by: Ben Hutchings +--- +--- a/fs/btrfs/super.c ++++ b/fs/btrfs/super.c +@@ -2456,3 +2456,4 @@ late_initcall(init_btrfs_fs); + module_exit(exit_btrfs_fs) + + MODULE_LICENSE("GPL"); ++MODULE_SOFTDEP("pre: crypto-crc32c"); +--- a/fs/cifs/cifsfs.c ++++ b/fs/cifs/cifsfs.c +@@ -1373,5 +1373,13 @@ MODULE_DESCRIPTION + ("VFS to access servers complying with the SNIA CIFS Specification " + "e.g. Samba and Windows"); + MODULE_VERSION(CIFS_VERSION); ++ ++#ifdef CONFIG_CIFS_SMB2 ++#define CIFS_SMB2_EXTRA_SOFTDEPS " crypto-aes crypto-cmac crypto-sha256" ++#else ++#define CIFS_SMB2_EXTRA_SOFTDEPS "" ++#endif ++MODULE_SOFTDEP("pre: crypto-arc4 crypto-des crypto-ecb crypto-hmac crypto-md4 crypto-md5" CIFS_SMB2_EXTRA_SOFTDEPS); ++ + module_init(init_cifs) + module_exit(exit_cifs) +--- a/fs/crypto/crypto.c ++++ b/fs/crypto/crypto.c +@@ -566,3 +566,4 @@ static void __exit fscrypt_exit(void) + module_exit(fscrypt_exit); + + MODULE_LICENSE("GPL"); ++MODULE_SOFTDEP("pre: crypto-aes crypto-ecb"); +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -5441,5 +5441,13 @@ static void __exit ext4_exit_fs(void) + MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others"); + MODULE_DESCRIPTION("Fourth Extended Filesystem"); + MODULE_LICENSE("GPL"); ++ ++#ifdef CONFIG_EXT4_FS_ENCRYPTION ++#define EXT4_ENC_EXTRA_SOFTDEPS " crypto-aes crypto-ecb" ++#else ++#define EXT4_ENC_EXTRA_SOFTDEPS "" ++#endif ++MODULE_SOFTDEP("pre: crypto-crc32c" EXT4_ENC_EXTRA_SOFTDEPS); ++ + module_init(ext4_init_fs) + module_exit(ext4_exit_fs) +--- a/fs/f2fs/super.c ++++ b/fs/f2fs/super.c +@@ -1742,3 +1742,4 @@ module_exit(exit_f2fs_fs) + MODULE_AUTHOR("Samsung Electronics's Praesto Team"); + MODULE_DESCRIPTION("Flash Friendly File System"); + MODULE_LICENSE("GPL"); ++MODULE_SOFTDEP("pre: crypto-crc32c"); +--- a/fs/jbd2/journal.c ++++ b/fs/jbd2/journal.c +@@ -2716,6 +2716,7 @@ static void __exit journal_exit(void) + } + + MODULE_LICENSE("GPL"); ++MODULE_SOFTDEP("pre: crypto-crc32c"); + module_init(journal_init); + module_exit(journal_exit); + +--- a/fs/nfsd/nfsctl.c ++++ b/fs/nfsd/nfsctl.c +@@ -1314,5 +1314,8 @@ static void __exit exit_nfsd(void) + + MODULE_AUTHOR("Olaf Kirch "); + MODULE_LICENSE("GPL"); ++#ifdef CONFIG_NFSD_V4 ++MODULE_SOFTDEP("pre: crypto-md5"); ++#endif + module_init(init_nfsd) + module_exit(exit_nfsd) diff --git a/patches/bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch b/patches/bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch new file mode 100644 index 00000000000..4dacc922ca1 --- /dev/null +++ b/patches/bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch @@ -0,0 +1,48 @@ +From: Ben Hutchings +Date: Fri, 26 Aug 2016 01:31:28 +0100 +Subject: kbuild: Do not use hyphen in exported variable name +Bug-Debian: https://bugs.debian.org/833561 + +This definition in Makefile.dtbinst: + + export dtbinst-root ?= $(obj) + +should define and export dtbinst-root when handling the root dts +directory, and do nothing in the subdirectories. However, the +variable does not reliably get exported to the environment, perhaps +because its name contains a hyphen. + +Rename the variable to dtbinst_root. + +References: https://bugs.debian.org/833561 +Signed-off-by: Ben Hutchings +--- +--- a/scripts/Makefile.dtbinst ++++ b/scripts/Makefile.dtbinst +@@ -14,7 +14,7 @@ src := $(obj) + PHONY := __dtbs_install + __dtbs_install: + +-export dtbinst-root ?= $(obj) ++export dtbinst_root ?= $(obj) + + include include/config/auto.conf + include scripts/Kbuild.include +@@ -22,7 +22,7 @@ include $(src)/Makefile + + PHONY += __dtbs_install_prep + __dtbs_install_prep: +-ifeq ("$(dtbinst-root)", "$(obj)") ++ifeq ("$(dtbinst_root)", "$(obj)") + $(Q)mkdir -p $(INSTALL_DTBS_PATH) + endif + +@@ -33,7 +33,7 @@ dtbinst-dirs := $(dts-dirs) + quiet_cmd_dtb_install = INSTALL $< + cmd_dtb_install = mkdir -p $(2); cp $< $(2) + +-install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) ++install-dir = $(patsubst $(dtbinst_root)%,$(INSTALL_DTBS_PATH)%,$(obj)) + + $(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep + diff --git a/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch b/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch new file mode 100644 index 00000000000..da988700b81 --- /dev/null +++ b/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch @@ -0,0 +1,23 @@ +From: Ben Hutchings +Subject: kbuild: Fix recordmcount dependency for OOT modules +Date: Mon, 08 Sep 2014 18:31:24 +0100 +Forwarded: no + +We never rebuild anything in-tree when building an out-of-tree +modules, so external modules should not depend on the recordmcount +sources. + +--- a/scripts/Makefile.build ++++ b/scripts/Makefile.build +@@ -241,6 +241,11 @@ cmd_record_mcount = \ + fi; + endif + ++# Don't require recordmcount source for an OOT build. ++ifdef KBUILD_EXTMOD ++recordmcount_source := ++endif ++ + ifdef CONFIG_STACK_VALIDATION + ifneq ($(SKIP_STACK_VALIDATION),1) + diff --git a/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch b/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch new file mode 100644 index 00000000000..c4f5baf0355 --- /dev/null +++ b/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch @@ -0,0 +1,84 @@ +From: Ben Hutchings +Date: Sat, 19 Oct 2013 19:43:35 +0100 +Subject: kbuild: Use -nostdinc in compile tests +Bug-Debian: https://bugs.debian.org/726861 +Bug-Debian: https://bugs.debian.org/717557 +Forwarded: http://mid.gmane.org/1415235534.3398.35.camel@decadent.org.uk + +Debian's gcc 4.8 pre-includes by default, which in +turn includes . This fails when building a 64-bit +kernel and only 32-bit C library headers installed. + +The -nostdinc option disables this, though it isn't explicitly +documented. This option is already used when actually building +the kernel. + +--- a/scripts/Kbuild.include ++++ b/scripts/Kbuild.include +@@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PL + # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) + + cc-option = $(call try-run,\ +- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) ++ $(CC) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) + + # cc-option-yn + # Usage: flag := $(call cc-option-yn,-march=winchip-c6) + cc-option-yn = $(call try-run,\ +- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) ++ $(CC) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) + + # cc-option-align + # Prefix align with either -falign or -malign +@@ -131,18 +131,19 @@ cc-option-align = $(subst -functions=0,, + # cc-disable-warning + # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) + cc-disable-warning = $(call try-run,\ +- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) ++ $(CC) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) + + # cc-name + # Expands to either gcc or clang + cc-name = $(shell $(CC) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc) + + # cc-version +-cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) ++cc-version = $(shell $(CONFIG_SHELL) \ ++ $(srctree)/scripts/gcc-version.sh $(CC) $(NOSTDINC_FLAGS)) + + # cc-fullversion + cc-fullversion = $(shell $(CONFIG_SHELL) \ +- $(srctree)/scripts/gcc-version.sh -p $(CC)) ++ $(srctree)/scripts/gcc-version.sh -p $(CC) $(NOSTDINC_FLAGS)) + + # cc-ifversion + # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) +@@ -156,7 +157,7 @@ cc-ldoption = $(call try-run,\ + # ld-option + # Usage: LDFLAGS += $(call ld-option, -X) + ld-option = $(call try-run,\ +- $(CC) -x c /dev/null -c -o "$$TMPO" ; $(LD) $(1) "$$TMPO" -o "$$TMP",$(1),$(2)) ++ $(CC) $(NOSTDINC_FLAGS) -x c /dev/null -c -o "$$TMPO" ; $(LD) $(1) "$$TMPO" -o "$$TMP",$(1),$(2)) + + # ar-option + # Usage: KBUILD_ARFLAGS := $(call ar-option,D) +--- a/Makefile ++++ b/Makefile +@@ -642,6 +642,8 @@ endif + KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \ + $(call cc-disable-warning,maybe-uninitialized,)) + ++NOSTDINC_FLAGS += -nostdinc ++ + # Tell gcc to never replace conditional load with a non-conditional one + KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) + +@@ -760,7 +762,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno- + endif + + # arch Makefile may override CC so keep this after arch Makefile is included +-NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) ++NOSTDINC_FLAGS += -isystem $(shell $(CC) -print-file-name=include) + CHECKFLAGS += $(NOSTDINC_FLAGS) + + # warn about C99 declaration after statement diff --git a/patches/bugfix/all/liblockdep-define-the-array_size-macro.patch b/patches/bugfix/all/liblockdep-define-the-array_size-macro.patch new file mode 100644 index 00000000000..ed639ec4616 --- /dev/null +++ b/patches/bugfix/all/liblockdep-define-the-array_size-macro.patch @@ -0,0 +1,26 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 21:14:14 +0100 +Subject: [PATCH 3/7] liblockdep: Define the ARRAY_SIZE() macro +Forwarded: http://mid.gmane.org/20160614204803.GV7555@decadent.org.uk + +lockdep.c now uses ARRAY_SIZE(). + +Fixes: 75dd602a5198 ("lockdep: Fix lock_chain::base size") +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/uinclude/linux/kernel.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h +index 276c7a8b2ed1..da87bd9ad2c1 100644 +--- a/tools/lib/lockdep/uinclude/linux/kernel.h ++++ b/tools/lib/lockdep/uinclude/linux/kernel.h +@@ -7,6 +7,8 @@ + #include + #include + ++#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) ++ + #ifndef container_of + #define container_of(ptr, type, member) ({ \ + const typeof(((type *)0)->member) * __mptr = (ptr); \ diff --git a/patches/bugfix/all/liblockdep-enable-wall-by-default.patch b/patches/bugfix/all/liblockdep-enable-wall-by-default.patch new file mode 100644 index 00000000000..74db9c82f68 --- /dev/null +++ b/patches/bugfix/all/liblockdep-enable-wall-by-default.patch @@ -0,0 +1,28 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 21:26:01 +0100 +Subject: [PATCH 4/7] liblockdep: Enable -Wall by default +Forwarded: http://mid.gmane.org/20160614204841.GW7555@decadent.org.uk + +Regressions in liblockdep may be missed because it doesn't enable +warnings. + +Adding -Wall immediately introduces a lot of warnings, but those will +be fixed by the following commits. + +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile +index 1d57af56814b..710a0edfe1b1 100644 +--- a/tools/lib/lockdep/Makefile ++++ b/tools/lib/lockdep/Makefile +@@ -79,6 +79,7 @@ INCLUDES = -I. -I./uinclude -I./include -I../../include $(CONFIG_INCLUDES) + # Set compile option CFLAGS if not set elsewhere + CFLAGS ?= -g -DCONFIG_LOCKDEP -DCONFIG_STACKTRACE -DCONFIG_PROVE_LOCKING -DBITS_PER_LONG=__WORDSIZE -DLIBLOCKDEP_VERSION='"$(LIBLOCKDEP_VERSION)"' -rdynamic -O0 -g + CFLAGS += -fPIC ++CFLAGS += -Wall + + override CFLAGS += $(CONFIG_FLAGS) $(INCLUDES) $(PLUGIN_DIR_SQ) + diff --git a/patches/bugfix/all/liblockdep-fix-defined-but-not-used-warning-for-init.patch b/patches/bugfix/all/liblockdep-fix-defined-but-not-used-warning-for-init.patch new file mode 100644 index 00000000000..3852c9698a8 --- /dev/null +++ b/patches/bugfix/all/liblockdep-fix-defined-but-not-used-warning-for-init.patch @@ -0,0 +1,54 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 21:32:11 +0100 +Subject: [PATCH 7/7] liblockdep: Fix 'defined but not used' warning for + init_utsname() +Forwarded: http://mid.gmane.org/20160614204909.GZ7555@decadent.org.uk + +We define init_utsname() as static but not inline, resulting +in a warning for every source file that includes lockdep.h but +doesn't call it. + +Since it is only used by lockdep.c, define it in there. + +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/lockdep.c | 10 ++++++++++ + tools/lib/lockdep/uinclude/linux/lockdep.h | 10 ---------- + 2 files changed, 10 insertions(+), 10 deletions(-) + +--- a/tools/lib/lockdep/lockdep.c ++++ b/tools/lib/lockdep/lockdep.c +@@ -12,4 +12,14 @@ u32 prandom_u32(void) + abort(); + } + ++static struct new_utsname *init_utsname(void) ++{ ++ static struct new_utsname n = (struct new_utsname) { ++ .release = "liblockdep", ++ .version = LIBLOCKDEP_VERSION, ++ }; ++ ++ return &n; ++} ++ + #include "../../../kernel/locking/lockdep.c" +--- a/tools/lib/lockdep/uinclude/linux/lockdep.h ++++ b/tools/lib/lockdep/uinclude/linux/lockdep.h +@@ -44,16 +44,6 @@ static inline int debug_locks_off(void) + #define atomic_t unsigned long + #define atomic_inc(x) ((*(x))++) + +-static struct new_utsname *init_utsname(void) +-{ +- static struct new_utsname n = (struct new_utsname) { +- .release = "liblockdep", +- .version = LIBLOCKDEP_VERSION, +- }; +- +- return &n; +-} +- + #define print_tainted() "" + #define static_obj(x) 1 + diff --git a/patches/bugfix/all/liblockdep-fix-set-but-not-used-warnings.patch b/patches/bugfix/all/liblockdep-fix-set-but-not-used-warnings.patch new file mode 100644 index 00000000000..1a84dad8a7b --- /dev/null +++ b/patches/bugfix/all/liblockdep-fix-set-but-not-used-warnings.patch @@ -0,0 +1,44 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 20:13:24 +0100 +Subject: [PATCH 6/7] liblockdep: Fix 'set but not used' warnings +Forwarded: http://mid.gmane.org/20160614204900.GY7555@decadent.org.uk + +liblockdep defines trivial macros for working with interrupt flags, as +interrupts are never disabled in userland. This results in warnings +from gcc when -Wunused-but-set-variable is enabled, and it is enabled +by -Wall. Fix this by evaluating the flags parameter and casting it to +void. + +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/uinclude/linux/irqflags.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tools/lib/lockdep/uinclude/linux/irqflags.h b/tools/lib/lockdep/uinclude/linux/irqflags.h +index 6cc296f0fad0..df77669cfe1c 100644 +--- a/tools/lib/lockdep/uinclude/linux/irqflags.h ++++ b/tools/lib/lockdep/uinclude/linux/irqflags.h +@@ -17,19 +17,19 @@ + #define raw_local_irq_disable() do { } while (0) + #define raw_local_irq_enable() do { } while (0) + #define raw_local_irq_save(flags) ((flags) = 0) +-#define raw_local_irq_restore(flags) do { } while (0) ++#define raw_local_irq_restore(flags) ((void)(flags)) + #define raw_local_save_flags(flags) ((flags) = 0) +-#define raw_irqs_disabled_flags(flags) do { } while (0) ++#define raw_irqs_disabled_flags(flags) ((void)(flags)) + #define raw_irqs_disabled() 0 + #define raw_safe_halt() + + #define local_irq_enable() do { } while (0) + #define local_irq_disable() do { } while (0) + #define local_irq_save(flags) ((flags) = 0) +-#define local_irq_restore(flags) do { } while (0) ++#define local_irq_restore(flags) ((void)(flags)) + #define local_save_flags(flags) ((flags) = 0) + #define irqs_disabled() (1) +-#define irqs_disabled_flags(flags) (0) ++#define irqs_disabled_flags(flags) ((void)(flags), 0) + #define safe_halt() do { } while (0) + + #define trace_lock_release(x, y) diff --git a/patches/bugfix/all/liblockdep-fix-undefined-symbol-prandom_u32.patch b/patches/bugfix/all/liblockdep-fix-undefined-symbol-prandom_u32.patch new file mode 100644 index 00000000000..2244bcc5d1b --- /dev/null +++ b/patches/bugfix/all/liblockdep-fix-undefined-symbol-prandom_u32.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 21:09:19 +0100 +Subject: [PATCH 1/7] liblockdep: Fix undefined symbol prandom_u32 +Forwarded: http://mid.gmane.org/20160614204713.GT7555@decadent.org.uk + +__lock_pin_lock() now calls prandom_u32() which is not defined in +liblockdep. __lock_pin_lock() and its caller lock_pin_lock() are dead +code in liblockdep, but we still need to provide a definition of +prandom_u32() in case lazy binding is disabled. + +Fixes: e7904a28f533 ("locking/lockdep, sched/core: Implement a better ...") +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/common.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/tools/lib/lockdep/lockdep.c ++++ b/tools/lib/lockdep/lockdep.c +@@ -1,8 +1,15 @@ + #include ++#include + + /* Trivial API wrappers, we don't (yet) have RCU in user-space: */ + #define hlist_for_each_entry_rcu hlist_for_each_entry + #define hlist_add_head_rcu hlist_add_head + #define hlist_del_rcu hlist_del + ++u32 prandom_u32(void) ++{ ++ /* Used only by lock_pin_lock() which is dead code */ ++ abort(); ++} ++ + #include "../../../kernel/locking/lockdep.c" diff --git a/patches/bugfix/all/liblockdep-fix-unused-value-warnings.patch b/patches/bugfix/all/liblockdep-fix-unused-value-warnings.patch new file mode 100644 index 00000000000..4612489c06e --- /dev/null +++ b/patches/bugfix/all/liblockdep-fix-unused-value-warnings.patch @@ -0,0 +1,72 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 20:13:23 +0100 +Subject: [PATCH 5/7] liblockdep: Fix 'unused value' warnings +Forwarded: http://mid.gmane.org/20160614204853.GX7555@decadent.org.uk + +liblockdep defines various macros that may expand to an expression +with no effect, while the in-kernel definition does have an effect. +This results in warnings from gcc when -Wunused-value is enabled, and +is is enabled by -Wall. Fix this by introducing trivial functions, +as function return values are generally allowed to be ignored. + +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/uinclude/linux/debug_locks.h | 2 +- + tools/lib/lockdep/uinclude/linux/kernel.h | 12 +++++++++--- + tools/lib/lockdep/uinclude/linux/lockdep.h | 6 +++++- + 3 files changed, 15 insertions(+), 5 deletions(-) + +diff --git a/tools/lib/lockdep/uinclude/linux/debug_locks.h b/tools/lib/lockdep/uinclude/linux/debug_locks.h +index f38eb64df794..1d4fbec5c649 100644 +--- a/tools/lib/lockdep/uinclude/linux/debug_locks.h ++++ b/tools/lib/lockdep/uinclude/linux/debug_locks.h +@@ -4,7 +4,7 @@ + #include + #include + +-#define DEBUG_LOCKS_WARN_ON(x) (x) ++#define DEBUG_LOCKS_WARN_ON(x) WARN_ON(x) + + extern bool debug_locks; + extern bool debug_locks_silent; +diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h +index da87bd9ad2c1..021cff4f4e3d 100644 +--- a/tools/lib/lockdep/uinclude/linux/kernel.h ++++ b/tools/lib/lockdep/uinclude/linux/kernel.h +@@ -22,10 +22,16 @@ + _max1 > _max2 ? _max1 : _max2; }) + + #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) +-#define WARN_ON(x) (x) +-#define WARN_ON_ONCE(x) (x) ++ ++static inline int lockdep_warn(int condition) ++{ ++ return condition; ++} ++#define WARN_ON(x) lockdep_warn(x) ++#define WARN_ON_ONCE(x) WARN_ON(x) ++#define WARN(x, y...) WARN_ON(x) ++ + #define likely(x) (x) +-#define WARN(x, y...) (x) + #define uninitialized_var(x) x + #define __init + #define noinline +diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h +index d30214221920..d1079034a14d 100644 +--- a/tools/lib/lockdep/uinclude/linux/lockdep.h ++++ b/tools/lib/lockdep/uinclude/linux/lockdep.h +@@ -29,7 +29,11 @@ extern struct task_struct *__curr(void); + + #define current (__curr()) + +-#define debug_locks_off() 1 ++static inline int debug_locks_off(void) ++{ ++ return 1; ++} ++ + #define task_pid_nr(tsk) ((tsk)->pid) + + #define KSYM_NAME_LEN 128 diff --git a/patches/bugfix/all/liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch b/patches/bugfix/all/liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch new file mode 100644 index 00000000000..f15e6d396fc --- /dev/null +++ b/patches/bugfix/all/liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch @@ -0,0 +1,44 @@ +From: Ben Hutchings +Date: Tue, 14 Jun 2016 20:44:14 +0100 +Subject: [PATCH 2/7] liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing + lock_chain::depth +Forwarded: http://mid.gmane.org/20160614204752.GU7555@decadent.org.uk + +liblockdep has been broken since commit 75dd602a5198 ("lockdep: Fix +lock_chain::base size"), as that adds a check that MAX_LOCK_DEPTH is +within the range of lock_chain::depth and in liblockdep it is much +too large. + +That should have resulted in a compiler error, but didn't because: + +- the check uses ARRAY_SIZE(), which isn't yet defined in liblockdep + so is assumed to be an (undeclared) function +- putting a function call inside a BUILD_BUG_ON() expression quietly + turns it into some nonsense involving a variable-length array + +It did produce a compiler warning, but I didn't notice because +liblockdep already produces too many warnings if -Wall is enabled +(which I'll fix shortly). + +Even before that commit, which reduced lock_chain::depth from 8 bits +to 6, MAX_LOCK_DEPTH was too large. + +Cc: # for versions before 4.6, use a value of 255 +Signed-off-by: Ben Hutchings +--- + tools/lib/lockdep/uinclude/linux/lockdep.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h +index c808c7d02d21..d30214221920 100644 +--- a/tools/lib/lockdep/uinclude/linux/lockdep.h ++++ b/tools/lib/lockdep/uinclude/linux/lockdep.h +@@ -8,7 +8,7 @@ + #include + #include + +-#define MAX_LOCK_DEPTH 2000UL ++#define MAX_LOCK_DEPTH 63UL + + #define asmlinkage + #define __visible diff --git a/patches/bugfix/all/lockdep-fix-oot-build.patch b/patches/bugfix/all/lockdep-fix-oot-build.patch new file mode 100644 index 00000000000..b22569affe6 --- /dev/null +++ b/patches/bugfix/all/lockdep-fix-oot-build.patch @@ -0,0 +1,40 @@ +From: Ben Hutchings +Date: Thu, 13 Aug 2015 20:48:12 +0200 +Subject: liblockdep: Fix object file paths used in an out-of-tree build +Forwarded: no + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/lockdep/Makefile ++++ b/tools/lib/lockdep/Makefile +@@ -100,7 +100,7 @@ include $(srctree)/tools/build/Makefile. + + do_compile_shared_library = \ + ($(print_shared_lib_compile) \ +- $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$@"';$(shell ln -sf $@ liblockdep.so)) ++ $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$(@F)"';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) + + do_build_static_lib = \ + ($(print_static_lib_build) \ +@@ -118,10 +118,10 @@ all_cmd: $(CMD_TARGETS) + $(LIB_IN): force + $(Q)$(MAKE) $(build)=liblockdep + +-liblockdep.so.$(LIBLOCKDEP_VERSION): $(LIB_IN) ++$(OUTPUT)liblockdep.so.$(LIBLOCKDEP_VERSION): $(LIB_IN) + $(Q)$(do_compile_shared_library) + +-liblockdep.a: $(LIB_IN) ++$(OUTPUT)liblockdep.a: $(LIB_IN) + $(Q)$(do_build_static_lib) + + tags: force +@@ -149,7 +149,7 @@ install_lib: all_cmd + install: install_lib + + clean: +- $(RM) *.o *~ $(TARGETS) *.a *liblockdep*.so* $(VERSION_FILES) .*.d .*.cmd ++ $(RM) $(OUTPUT)*.o *~ $(TARGETS) $(OUTPUT)*.a $(OUTPUT)*liblockdep*.so* $(VERSION_FILES) $(OUTPUT).*.d $(OUTPUT).*.cmd + $(RM) tags TAGS + + PHONY += force diff --git a/patches/bugfix/all/lockdep-fix-soname.patch b/patches/bugfix/all/lockdep-fix-soname.patch new file mode 100644 index 00000000000..ed6078193d0 --- /dev/null +++ b/patches/bugfix/all/lockdep-fix-soname.patch @@ -0,0 +1,18 @@ +From: Ben Hutchings +Date: Thu, 13 Aug 2015 20:48:12 +0200 +Subject: liblockdep: Remove double-quotes from soname +Forwarded: no + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/lockdep/Makefile ++++ b/tools/lib/lockdep/Makefile +@@ -100,7 +100,7 @@ include $(srctree)/tools/build/Makefile. + + do_compile_shared_library = \ + ($(print_shared_lib_compile) \ +- $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$(@F)"';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) ++ $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) + + do_build_static_lib = \ + ($(print_static_lib_build) \ diff --git a/patches/bugfix/all/mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch b/patches/bugfix/all/mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch new file mode 100644 index 00000000000..5b57876e9b4 --- /dev/null +++ b/patches/bugfix/all/mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch @@ -0,0 +1,73 @@ +From: Vladimir Davydov +Date: Sat, 1 Oct 2016 16:39:09 +0300 +Subject: mm: memcontrol: use special workqueue for creating per-memcg caches +Origin: https://patchwork.kernel.org/patch/9361853/ +Bug: https://bugzilla.kernel.org/show_bug.cgi?id=172981 + +Creating a lot of cgroups at the same time might stall all worker +threads with kmem cache creation works, because kmem cache creation is +done with the slab_mutex held. The problem was amplified by commits +801faf0db894 ("mm/slab: lockless decision to grow cache") in case of +SLAB and 81ae6d03952c ("mm/slub.c: replace kick_all_cpus_sync() with +synchronize_sched() in kmem_cache_shrink()") in case of SLUB, which +increased the maximal time the slab_mutex can be held. + +To prevent that from happening, let's use a special ordered single +threaded workqueue for kmem cache creation. This shouldn't introduce any +functional changes regarding how kmem caches are created, as the work +function holds the global slab_mutex during its whole runtime anyway, +making it impossible to run more than one work at a time. By using a +single threaded workqueue, we just avoid creating a thread per each +work. Ordering is required to avoid a situation when a cgroup's work is +put off indefinitely because there are other cgroups to serve, in other +words to guarantee fairness. + +Link: https://bugzilla.kernel.org/show_bug.cgi?id=172981 +Signed-off-by: Vladimir Davydov +Reported-by: Doug Smythies +Cc: Christoph Lameter +Cc: David Rientjes +Cc: Johannes Weiner +Cc: Joonsoo Kim +Cc: Michal Hocko +Cc: Pekka Enberg +Acked-by: Michal Hocko +--- +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -2232,6 +2232,8 @@ struct memcg_kmem_cache_create_work { + struct work_struct work; + }; + ++static struct workqueue_struct *memcg_kmem_cache_create_wq; ++ + static void memcg_kmem_cache_create_func(struct work_struct *w) + { + struct memcg_kmem_cache_create_work *cw = +@@ -2263,7 +2265,7 @@ static void __memcg_schedule_kmem_cache_ + cw->cachep = cachep; + INIT_WORK(&cw->work, memcg_kmem_cache_create_func); + +- schedule_work(&cw->work); ++ queue_work(memcg_kmem_cache_create_wq, &cw->work); + } + + static void memcg_schedule_kmem_cache_create(struct mem_cgroup *memcg, +@@ -5811,6 +5813,17 @@ static int __init mem_cgroup_init(void) + { + int cpu, node; + ++#ifndef CONFIG_SLOB ++ /* ++ * Kmem cache creation is mostly done with the slab_mutex held, ++ * so use a special workqueue to avoid stalling all worker ++ * threads in case lots of cgroups are created simultaneously. ++ */ ++ memcg_kmem_cache_create_wq = ++ alloc_ordered_workqueue("memcg_kmem_cache_create", 0); ++ BUG_ON(!memcg_kmem_cache_create_wq); ++#endif ++ + hotcpu_notifier(memcg_cpu_hotplug_callback, 0); + + for_each_possible_cpu(cpu) diff --git a/patches/bugfix/all/module-disable-matching-missing-version-crc.patch b/patches/bugfix/all/module-disable-matching-missing-version-crc.patch new file mode 100644 index 00000000000..5657898be12 --- /dev/null +++ b/patches/bugfix/all/module-disable-matching-missing-version-crc.patch @@ -0,0 +1,23 @@ +From: Ben Hutchings +Date: Fri, 02 Dec 2016 23:06:18 +0000 +Subject: module: Disable matching missing version CRC +Forwarded: not-needed + +This partly reverts commit cd3caefb4663e3811d37cc2afad3cce642d60061. +We want to fail closed if a symbol version CRC is missing, as the +alternative may allow subverting module signing. +--- +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -1301,9 +1301,8 @@ static int check_version(Elf_Shdr *sechd + goto bad_version; + } + +- /* Broken toolchain. Warn once, then let it go.. */ +- pr_warn_once("%s: no symbol version for %s\n", mod->name, symname); +- return 1; ++ pr_warn("%s: no symbol version for %s\n", mod->name, symname); ++ return 0; + + bad_version: + pr_warn("%s: disagrees about version of symbol %s\n", diff --git a/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch b/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch new file mode 100644 index 00000000000..da62e63a060 --- /dev/null +++ b/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch @@ -0,0 +1,28 @@ +From: Ben Hutchings +Date: Wed, 11 Jan 2017 04:30:40 +0000 +Subject: Partially revert "usb: Kconfig: using select for USB_COMMON dependency" + +This reverts commit cb9c1cfc86926d0e86d19c8e34f6c23458cd3478 for +USB_LED_TRIG. This config symbol has bool type and enables extra code +in usb_common itself, not a separate driver. Enabling it should not +force usb_common to be built-in! + +Signed-off-by: Ben Hutchings +--- + drivers/usb/Kconfig | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig +index 644e978cbd3e..989c6208678f 100644 +--- a/drivers/usb/Kconfig ++++ b/drivers/usb/Kconfig +@@ -152,8 +152,7 @@ source "drivers/usb/gadget/Kconfig" + + config USB_LED_TRIG + bool "USB LED Triggers" +- depends on LEDS_CLASS && LEDS_TRIGGERS +- select USB_COMMON ++ depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS + help + This option adds LED triggers for USB host and/or gadget activity. + diff --git a/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch b/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch new file mode 100644 index 00000000000..225a2e361a5 --- /dev/null +++ b/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch @@ -0,0 +1,80 @@ +From: Ben Hutchings +Subject: radeon: Firmware is required for DRM and KMS on R600 onward +Date: Tue, 08 Jan 2013 03:25:52 +0000 +Bug-Debian: https://bugs.debian.org/607194 +Bug-Debian: https://bugs.debian.org/607471 +Bug-Debian: https://bugs.debian.org/610851 +Bug-Debian: https://bugs.debian.org/627497 +Bug-Debian: https://bugs.debian.org/632212 +Bug-Debian: https://bugs.debian.org/637943 +Bug-Debian: https://bugs.debian.org/649448 +Bug-Debian: https://bugs.debian.org/697229 +Forwarded: no + +radeon requires firmware/microcode for the GPU in all chips, but for +newer chips (apparently R600 'Evergreen' onward) it also expects +firmware for the memory controller and other sub-blocks. + +radeon attempts to gracefully fall back and disable some features if +the firmware is not available, but becomes unstable - the framebuffer +and/or system memory may be corrupted, or the display may stay black. + +Therefore, perform a basic check for the existence of +/lib/firmware/radeon when a device is probed, and abort if it is +missing, except for the pre-R600 case. + +--- +--- a/drivers/gpu/drm/radeon/radeon_drv.c ++++ b/drivers/gpu/drm/radeon/radeon_drv.c +@@ -43,6 +43,8 @@ + + #include "drm_crtc_helper.h" + #include "radeon_kfd.h" ++#include ++#include + + /* + * KMS wrapper. +@@ -309,6 +311,29 @@ static struct drm_driver kms_driver; + + bool radeon_device_is_virtual(void); + ++/* Test that /lib/firmware/radeon is a directory (or symlink to a ++ * directory). We could try to match the udev search path, but let's ++ * assume people take the easy route and install ++ * firmware-linux-nonfree. ++ */ ++static bool radeon_firmware_installed(void) ++{ ++#if IS_BUILTIN(CONFIG_DRM_RADEON) ++ /* It may be too early to tell. Assume it's there. */ ++ return true; ++#else ++ struct path path; ++ ++ if (kern_path("/lib/firmware/radeon", LOOKUP_DIRECTORY | LOOKUP_FOLLOW, ++ &path) == 0) { ++ path_put(&path); ++ return true; ++ } ++ ++ return false; ++#endif ++} ++ + static int radeon_kick_out_firmware_fb(struct pci_dev *pdev) + { + struct apertures_struct *ap; +@@ -346,6 +371,12 @@ static int radeon_pci_probe(struct pci_d + if (vga_switcheroo_client_probe_defer(pdev)) + return -EPROBE_DEFER; + ++ if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 && ++ !radeon_firmware_installed()) { ++ DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware-amd-graphics.\n"); ++ return -ENODEV; ++ } ++ + /* Get rid of things like offb */ + ret = radeon_kick_out_firmware_fb(pdev); + if (ret) diff --git a/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch b/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch new file mode 100644 index 00000000000..9d07fbc41d2 --- /dev/null +++ b/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Sun, 21 Feb 2016 15:33:15 +0000 +Subject: tools/build: Remove bpf() run-time check at build time +Forwarded: no + +It is not correct to test that a syscall works on the build system's +kernel. We might be building on an earlier kernel version or with +security restrictions that block bpf(). + +Also fix the test for whether __NR_bpf is defined. + +Signed-off-by: Ben Hutchings +--- +--- a/tools/build/feature/test-bpf.c ++++ b/tools/build/feature/test-bpf.c +@@ -9,6 +9,7 @@ + # define __NR_bpf 321 + # elif defined(__aarch64__) + # define __NR_bpf 280 ++# else + # error __NR_bpf not defined. libbpf does not support your arch. + # endif + #endif +@@ -27,9 +28,5 @@ int main(void) + attr.log_level = 0; + attr.kern_version = 0; + +- /* +- * Test existence of __NR_bpf and BPF_PROG_LOAD. +- * This call should fail if we run the testcase. +- */ +- return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)); ++ return 0; + } diff --git a/patches/bugfix/all/tools-lib-lockdep-use-ldflags.patch b/patches/bugfix/all/tools-lib-lockdep-use-ldflags.patch new file mode 100644 index 00000000000..dc3dd7fac96 --- /dev/null +++ b/patches/bugfix/all/tools-lib-lockdep-use-ldflags.patch @@ -0,0 +1,18 @@ +From: Ben Hutchings +Date: Fri, 25 Sep 2015 21:36:29 +0100 +Subject: tools/lib/lockdep: Use LDFLAGS +Forwarded: no + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/lockdep/Makefile ++++ b/tools/lib/lockdep/Makefile +@@ -100,7 +100,7 @@ include $(srctree)/tools/build/Makefile. + + do_compile_shared_library = \ + ($(print_shared_lib_compile) \ +- $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) ++ $(CC) $(LDFLAGS) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) + + do_build_static_lib = \ + ($(print_static_lib_build) \ diff --git a/patches/bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch b/patches/bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch new file mode 100644 index 00000000000..a3564d77cbc --- /dev/null +++ b/patches/bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch @@ -0,0 +1,70 @@ +From: Ben Hutchings +Date: Sun, 20 Mar 2016 21:09:02 +0000 +Subject: tools lib traceevent: Fix use of uninitialized variables +Forwarded: no + +Fix a number of correct warnings from gcc: + +> plugin_function.c:133:6: warning: 'index' may be used uninitialized in this function [-Wmaybe-uninitialized] +> int index; +> ^ + +'index' is initialized only if indentation is wanted. Move the +printing of indentation using 'index' into the same if-statement. + +> kbuffer-parse.c:339:27: warning: 'length' may be used uninitialized in this function [-Wmaybe-uninitialized] +> kbuf->next = kbuf->index + length; +> ^ +> kbuffer-parse.c:297:15: note: 'length' was declared here +> unsigned int length; +> ^ + +'length' is not initialized when handling an OLD_RINGBUF_TYPE_TIME_EXTEND +record. Based on what trace-cmd does, set length = 0 in this case. + +> kbuffer-parse.c: In function 'kbuffer_read_at_offset': +> kbuffer-parse.c:632:9: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] +> return data; +> ^ + +'data' is not initialized if the offset is too small. Initialize it +to NULL so that the behaviour is the same as when the offset is too +large. + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/traceevent/kbuffer-parse.c ++++ b/tools/lib/traceevent/kbuffer-parse.c +@@ -314,6 +314,7 @@ static unsigned int old_update_pointers( + extend <<= TS_SHIFT; + extend += delta; + delta = extend; ++ length = 0; + ptr += 4; + break; + +@@ -613,7 +614,7 @@ unsigned long long kbuffer_timestamp(str + void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset, + unsigned long long *ts) + { +- void *data; ++ void *data = NULL; + + if (offset < kbuf->start) + offset = 0; +--- a/tools/lib/traceevent/plugin_function.c ++++ b/tools/lib/traceevent/plugin_function.c +@@ -142,10 +142,10 @@ static int function_handler(struct trace + + parent = pevent_find_function(pevent, pfunction); + +- if (parent && ftrace_indent->set) ++ if (parent && ftrace_indent->set) { + index = add_and_get_index(parent, func, record->cpu); +- +- trace_seq_printf(s, "%*s", index*3, ""); ++ trace_seq_printf(s, "%*s", index*3, ""); ++ } + + if (func) + trace_seq_printf(s, "%s", func); diff --git a/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch b/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch new file mode 100644 index 00000000000..fe0248c1ff0 --- /dev/null +++ b/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch @@ -0,0 +1,27 @@ +From: Ben Hutchings +Date: Fri, 25 Sep 2015 21:26:48 +0100 +Subject: tools/lib/traceevent: Use LDFLAGS +Forwarded: no + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/traceevent/Makefile ++++ b/tools/lib/traceevent/Makefile +@@ -172,7 +172,7 @@ $(TE_IN): force + $(Q)$(MAKE) $(build)=libtraceevent + + $(OUTPUT)libtraceevent.so: $(TE_IN) +- $(QUIET_LINK)$(CC) --shared $^ -o $@ ++ $(QUIET_LINK)$(CC) $(LDFLAGS) --shared $^ -o $@ + + $(OUTPUT)libtraceevent.a: $(TE_IN) + $(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^ +@@ -189,7 +189,7 @@ $(PLUGINS_IN): force + $(Q)$(MAKE) $(build)=$(plugin_obj) + + $(OUTPUT)%.so: $(OUTPUT)%-in.o +- $(QUIET_LINK)$(CC) $(CFLAGS) -shared -nostartfiles -o $@ $^ ++ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) -shared -nostartfiles -o $@ $^ + + define make_version.h + (echo '/* This file is automatically generated. Do not modify. */'; \ diff --git a/patches/bugfix/all/tools-perf-man-date.patch b/patches/bugfix/all/tools-perf-man-date.patch new file mode 100644 index 00000000000..00eb466448f --- /dev/null +++ b/patches/bugfix/all/tools-perf-man-date.patch @@ -0,0 +1,33 @@ +From: Ben Hutchings +Date: Mon, 13 Jul 2015 20:29:20 +0100 +Subject: perf tools: Use $KBUILD_BUILD_TIMESTAMP as man page date +Forwarded: http://mid.gmane.org/20160517132809.GE7555@decadent.org.uk + +This allows man pages to be built reproducibly. + +Signed-off-by: Ben Hutchings +--- +--- a/tools/perf/Documentation/Makefile ++++ b/tools/perf/Documentation/Makefile +@@ -120,6 +120,9 @@ endif + ifdef DOCBOOK_SUPPRESS_SP + XMLTO_EXTRA += -m manpage-suppress-sp.xsl + endif ++ifdef KBUILD_BUILD_TIMESTAMP ++ASCIIDOC_EXTRA += -a revdate=$(shell date -u -d '$(KBUILD_BUILD_TIMESTAMP)' +%Y-%m-%d) ++endif + + SHELL_PATH ?= $(SHELL) + # Shell quote; +--- a/tools/perf/Documentation/asciidoc.conf ++++ b/tools/perf/Documentation/asciidoc.conf +@@ -71,6 +71,9 @@ ifdef::backend-docbook[] + [header] + template::[header-declarations] + ++ ++template::[docinfo] ++ + + {mantitle} + {manvolnum} diff --git a/patches/bugfix/all/tools-perf-remove-shebangs.patch b/patches/bugfix/all/tools-perf-remove-shebangs.patch new file mode 100644 index 00000000000..07953ca7ec4 --- /dev/null +++ b/patches/bugfix/all/tools-perf-remove-shebangs.patch @@ -0,0 +1,39 @@ +From: Ben Hutchings +Date: Fri, 25 Sep 2015 20:09:23 +0100 +Subject: tools/perf: Remove shebang lines from perf scripts +Forwarded: no + +perf scripts need to be invoked through perf, not directly through +perl (or other language interpreter). So including shebang lines in +them is useless and possibly misleading. + +Signed-off-by: Ben Hutchings +--- +--- a/tools/perf/scripts/perl/rw-by-file.pl ++++ b/tools/perf/scripts/perl/rw-by-file.pl +@@ -1,4 +1,3 @@ +-#!/usr/bin/perl -w + # (c) 2009, Tom Zanussi + # Licensed under the terms of the GNU GPL License version 2 + +--- a/tools/perf/scripts/perl/rw-by-pid.pl ++++ b/tools/perf/scripts/perl/rw-by-pid.pl +@@ -1,4 +1,3 @@ +-#!/usr/bin/perl -w + # (c) 2009, Tom Zanussi + # Licensed under the terms of the GNU GPL License version 2 + +--- a/tools/perf/scripts/perl/rwtop.pl ++++ b/tools/perf/scripts/perl/rwtop.pl +@@ -1,4 +1,3 @@ +-#!/usr/bin/perl -w + # (c) 2010, Tom Zanussi + # Licensed under the terms of the GNU GPL License version 2 + +--- a/tools/perf/scripts/perl/wakeup-latency.pl ++++ b/tools/perf/scripts/perl/wakeup-latency.pl +@@ -1,4 +1,3 @@ +-#!/usr/bin/perl -w + # (c) 2009, Tom Zanussi + # Licensed under the terms of the GNU GPL License version 2 + diff --git a/patches/bugfix/all/usbip-document-tcp-wrappers.patch b/patches/bugfix/all/usbip-document-tcp-wrappers.patch new file mode 100644 index 00000000000..d9d7b301dd3 --- /dev/null +++ b/patches/bugfix/all/usbip-document-tcp-wrappers.patch @@ -0,0 +1,29 @@ +From: Ben Hutchings +Date: Sun, 24 Jun 2012 02:51:39 +0100 +Subject: usbip: Document TCP wrappers +Forwarded: no + +Add references to TCP wrappers configuration in the manual page. + +--- a/tools/usb/usbip/doc/usbipd.8 ++++ b/tools/usb/usbip/doc/usbipd.8 +@@ -14,7 +14,8 @@ Devices have to explicitly be exported u + before usbipd makes them available to other hosts. + + The daemon accepts connections from USB/IP clients +-on TCP port 3240 by default. ++on TCP port 3240 by default. The clients authorised to connect may be ++configured as documented in hosts_access(5). + + .SH OPTIONS + .HP +@@ -69,7 +70,8 @@ Show version. + + .B usbipd + offers no authentication or authorization for USB/IP. Any +-USB/IP client can connect and use exported devices. ++USB/IP client running on an authorised host can connect and ++use exported devices. + + .SH EXAMPLES + diff --git a/patches/bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch b/patches/bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch new file mode 100644 index 00000000000..3d6a877bf3c --- /dev/null +++ b/patches/bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch @@ -0,0 +1,56 @@ +From: Ben Hutchings +Date: Tue, 29 Sep 2015 02:55:06 +0100 +Subject: [PATCH] alpha: uapi: Add support for __SANE_USERSPACE_TYPES__ +Forwarded: http://mid.gmane.org/1443659755.2730.14.camel@decadent.org.uk + +This fixes compiler errors in perf such as: + +tests/attr.c: In function 'store_event': +tests/attr.c:66:27: error: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__u64 {aka long unsigned int}' [-Werror=format=] + snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir, + ^ + +Signed-off-by: Ben Hutchings +Tested-by: Michael Cree +Cc: stable@vger.kernel.org +--- + arch/alpha/include/asm/types.h | 2 +- + arch/alpha/include/uapi/asm/types.h | 12 +++++++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +# diff --git a/arch/alpha/include/asm/types.h b/arch/alpha/include/asm/types.h +# index 4cb4b6d..0bc66e1 100644 +# --- a/arch/alpha/include/asm/types.h +# +++ b/arch/alpha/include/asm/types.h +# @@ -1,6 +1,6 @@ +# #ifndef _ALPHA_TYPES_H +# #define _ALPHA_TYPES_H +# +# -#include +# +#include +# +# #endif /* _ALPHA_TYPES_H */ +diff --git a/arch/alpha/include/uapi/asm/types.h b/arch/alpha/include/uapi/asm/types.h +index 9fd3cd4..8d1024d 100644 +--- a/arch/alpha/include/uapi/asm/types.h ++++ b/arch/alpha/include/uapi/asm/types.h +@@ -9,8 +9,18 @@ + * need to be careful to avoid a name clashes. + */ + +-#ifndef __KERNEL__ ++/* ++ * This is here because we used to use l64 for alpha ++ * and we don't want to impact user mode with our change to ll64 ++ * in the kernel. ++ * ++ * However, some user programs are fine with this. They can ++ * flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here. ++ */ ++#if !defined(__SANE_USERSPACE_TYPES__) && !defined(__KERNEL__) + #include ++#else ++#include + #endif + + #endif /* _UAPI_ALPHA_TYPES_H */ diff --git a/patches/bugfix/alpha/revert-alpha-move-exports-to-actual-definitions.patch b/patches/bugfix/alpha/revert-alpha-move-exports-to-actual-definitions.patch new file mode 100644 index 00000000000..aec9cb53928 --- /dev/null +++ b/patches/bugfix/alpha/revert-alpha-move-exports-to-actual-definitions.patch @@ -0,0 +1,949 @@ +From: Ben Hutchings +Date: Thu, 1 Dec 2016 23:14:46 +0000 +Subject: Revert "alpha: move exports to actual definitions" +Forwarded: not-needed + +This reverts commit 00fc0e0dda6286407f3854cd71a125f519a5689c because +symbols exported from assembly don't automatically get modversions (ABI +hashes). +--- + arch/alpha/include/asm/Kbuild | 1 - + arch/alpha/kernel/Makefile | 2 +- + arch/alpha/kernel/alpha_ksyms.c | 102 +++++++++++++++++++++++++++++++++++ + arch/alpha/kernel/machvec_impl.h | 6 +-- + arch/alpha/kernel/setup.c | 1 - + arch/alpha/lib/callback_srm.S | 5 -- + arch/alpha/lib/checksum.c | 3 -- + arch/alpha/lib/clear_page.S | 3 +- + arch/alpha/lib/clear_user.S | 2 - + arch/alpha/lib/copy_page.S | 3 +- + arch/alpha/lib/copy_user.S | 3 -- + arch/alpha/lib/csum_ipv6_magic.S | 2 - + arch/alpha/lib/csum_partial_copy.c | 2 - + arch/alpha/lib/dec_and_lock.c | 2 - + arch/alpha/lib/divide.S | 3 -- + arch/alpha/lib/ev6-clear_page.S | 3 +- + arch/alpha/lib/ev6-clear_user.S | 3 +- + arch/alpha/lib/ev6-copy_page.S | 3 +- + arch/alpha/lib/ev6-copy_user.S | 3 +- + arch/alpha/lib/ev6-csum_ipv6_magic.S | 2 - + arch/alpha/lib/ev6-divide.S | 3 -- + arch/alpha/lib/ev6-memchr.S | 3 +- + arch/alpha/lib/ev6-memcpy.S | 3 +- + arch/alpha/lib/ev6-memset.S | 7 +-- + arch/alpha/lib/ev67-strcat.S | 3 +- + arch/alpha/lib/ev67-strchr.S | 3 +- + arch/alpha/lib/ev67-strlen.S | 3 +- + arch/alpha/lib/ev67-strncat.S | 3 +- + arch/alpha/lib/ev67-strrchr.S | 3 +- + arch/alpha/lib/fpreg.c | 7 --- + arch/alpha/lib/memchr.S | 3 +- + arch/alpha/lib/memcpy.c | 5 +- + arch/alpha/lib/memmove.S | 3 +- + arch/alpha/lib/memset.S | 7 +-- + arch/alpha/lib/strcat.S | 2 - + arch/alpha/lib/strchr.S | 3 +- + arch/alpha/lib/strcpy.S | 3 +- + arch/alpha/lib/strlen.S | 3 +- + arch/alpha/lib/strncat.S | 3 +- + arch/alpha/lib/strncpy.S | 3 +- + arch/alpha/lib/strrchr.S | 3 +- + 41 files changed, 131 insertions(+), 99 deletions(-) + create mode 100644 arch/alpha/kernel/alpha_ksyms.c + +diff --git a/arch/alpha/include/asm/Kbuild b/arch/alpha/include/asm/Kbuild +index bf8475ce85ee..ffd9cf5ec8c4 100644 +--- a/arch/alpha/include/asm/Kbuild ++++ b/arch/alpha/include/asm/Kbuild +@@ -3,7 +3,6 @@ + generic-y += clkdev.h + generic-y += cputime.h + generic-y += exec.h +-generic-y += export.h + generic-y += irq_work.h + generic-y += mcs_spinlock.h + generic-y += mm-arch-hooks.h +diff --git a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile +index 8ce13d7a2ad3..3ecac0106c8a 100644 +--- a/arch/alpha/kernel/Makefile ++++ b/arch/alpha/kernel/Makefile +@@ -8,7 +8,7 @@ ccflags-y := -Wno-sign-compare + + obj-y := entry.o traps.o process.o osf_sys.o irq.o \ + irq_alpha.o signal.o setup.o ptrace.o time.o \ +- systbls.o err_common.o io.o ++ alpha_ksyms.o systbls.o err_common.o io.o + + obj-$(CONFIG_VGA_HOSE) += console.o + obj-$(CONFIG_SMP) += smp.o +diff --git a/arch/alpha/kernel/alpha_ksyms.c b/arch/alpha/kernel/alpha_ksyms.c +new file mode 100644 +index 000000000000..f4c7ab6f43b0 +--- /dev/null ++++ b/arch/alpha/kernel/alpha_ksyms.c +@@ -0,0 +1,102 @@ ++/* ++ * linux/arch/alpha/kernel/alpha_ksyms.c ++ * ++ * Export the alpha-specific functions that are needed for loadable ++ * modules. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* these are C runtime functions with special calling conventions: */ ++extern void __divl (void); ++extern void __reml (void); ++extern void __divq (void); ++extern void __remq (void); ++extern void __divlu (void); ++extern void __remlu (void); ++extern void __divqu (void); ++extern void __remqu (void); ++ ++EXPORT_SYMBOL(alpha_mv); ++EXPORT_SYMBOL(callback_getenv); ++EXPORT_SYMBOL(callback_setenv); ++EXPORT_SYMBOL(callback_save_env); ++ ++/* platform dependent support */ ++EXPORT_SYMBOL(strcat); ++EXPORT_SYMBOL(strcpy); ++EXPORT_SYMBOL(strlen); ++EXPORT_SYMBOL(strncpy); ++EXPORT_SYMBOL(strncat); ++EXPORT_SYMBOL(strchr); ++EXPORT_SYMBOL(strrchr); ++EXPORT_SYMBOL(memmove); ++EXPORT_SYMBOL(__memcpy); ++EXPORT_SYMBOL(__memset); ++EXPORT_SYMBOL(___memset); ++EXPORT_SYMBOL(__memsetw); ++EXPORT_SYMBOL(__constant_c_memset); ++EXPORT_SYMBOL(copy_page); ++EXPORT_SYMBOL(clear_page); ++ ++EXPORT_SYMBOL(alpha_read_fp_reg); ++EXPORT_SYMBOL(alpha_read_fp_reg_s); ++EXPORT_SYMBOL(alpha_write_fp_reg); ++EXPORT_SYMBOL(alpha_write_fp_reg_s); ++ ++/* Networking helper routines. */ ++EXPORT_SYMBOL(csum_tcpudp_magic); ++EXPORT_SYMBOL(ip_compute_csum); ++EXPORT_SYMBOL(ip_fast_csum); ++EXPORT_SYMBOL(csum_partial_copy_nocheck); ++EXPORT_SYMBOL(csum_partial_copy_from_user); ++EXPORT_SYMBOL(csum_ipv6_magic); ++ ++#ifdef CONFIG_MATHEMU_MODULE ++extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long); ++extern long (*alpha_fp_emul) (unsigned long pc); ++EXPORT_SYMBOL(alpha_fp_emul_imprecise); ++EXPORT_SYMBOL(alpha_fp_emul); ++#endif ++ ++/* ++ * The following are specially called from the uaccess assembly stubs. ++ */ ++EXPORT_SYMBOL(__copy_user); ++EXPORT_SYMBOL(__do_clear_user); ++ ++/* ++ * SMP-specific symbols. ++ */ ++ ++#ifdef CONFIG_SMP ++EXPORT_SYMBOL(_atomic_dec_and_lock); ++#endif /* CONFIG_SMP */ ++ ++/* ++ * The following are special because they're not called ++ * explicitly (the C compiler or assembler generates them in ++ * response to division operations). Fortunately, their ++ * interface isn't gonna change any time soon now, so it's OK ++ * to leave it out of version control. ++ */ ++# undef memcpy ++# undef memset ++EXPORT_SYMBOL(__divl); ++EXPORT_SYMBOL(__divlu); ++EXPORT_SYMBOL(__divq); ++EXPORT_SYMBOL(__divqu); ++EXPORT_SYMBOL(__reml); ++EXPORT_SYMBOL(__remlu); ++EXPORT_SYMBOL(__remq); ++EXPORT_SYMBOL(__remqu); ++EXPORT_SYMBOL(memcpy); ++EXPORT_SYMBOL(memset); ++EXPORT_SYMBOL(memchr); +diff --git a/arch/alpha/kernel/machvec_impl.h b/arch/alpha/kernel/machvec_impl.h +index b7d69604b6d2..d3398f6ab74c 100644 +--- a/arch/alpha/kernel/machvec_impl.h ++++ b/arch/alpha/kernel/machvec_impl.h +@@ -144,11 +144,9 @@ + else beforehand. Fine. We'll do it ourselves. */ + #if 0 + #define ALIAS_MV(system) \ +- struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv"))); \ +- EXPORT_SYMBOL(alpha_mv); ++ struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv"))); + #else + #define ALIAS_MV(system) \ +- asm(".global alpha_mv\nalpha_mv = " #system "_mv"); \ +- EXPORT_SYMBOL(alpha_mv); ++ asm(".global alpha_mv\nalpha_mv = " #system "_mv"); + #endif + #endif /* GENERIC */ +diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c +index 4811e54069fc..b20af76f12c1 100644 +--- a/arch/alpha/kernel/setup.c ++++ b/arch/alpha/kernel/setup.c +@@ -115,7 +115,6 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE; + + #ifdef CONFIG_ALPHA_GENERIC + struct alpha_machine_vector alpha_mv; +-EXPORT_SYMBOL(alpha_mv); + #endif + + #ifndef alpha_using_srm +diff --git a/arch/alpha/lib/callback_srm.S b/arch/alpha/lib/callback_srm.S +index 6093addc931a..8804bec2c644 100644 +--- a/arch/alpha/lib/callback_srm.S ++++ b/arch/alpha/lib/callback_srm.S +@@ -3,7 +3,6 @@ + */ + + #include +-#include + + .text + #define HWRPB_CRB_OFFSET 0xc0 +@@ -93,10 +92,6 @@ CALLBACK(reset_env, CCB_RESET_ENV, 4) + CALLBACK(save_env, CCB_SAVE_ENV, 1) + CALLBACK(pswitch, CCB_PSWITCH, 3) + CALLBACK(bios_emul, CCB_BIOS_EMUL, 5) +- +-EXPORT_SYMBOL(callback_getenv) +-EXPORT_SYMBOL(callback_setenv) +-EXPORT_SYMBOL(callback_save_env) + + .data + __alpha_using_srm: # For use by bootpheader +diff --git a/arch/alpha/lib/checksum.c b/arch/alpha/lib/checksum.c +index b57f8007db14..377f9e34eb97 100644 +--- a/arch/alpha/lib/checksum.c ++++ b/arch/alpha/lib/checksum.c +@@ -48,7 +48,6 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, + (__force u64)saddr + (__force u64)daddr + + (__force u64)sum + ((len + proto) << 8)); + } +-EXPORT_SYMBOL(csum_tcpudp_magic); + + __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, + __u32 len, __u8 proto, __wsum sum) +@@ -145,7 +144,6 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl) + { + return (__force __sum16)~do_csum(iph,ihl*4); + } +-EXPORT_SYMBOL(ip_fast_csum); + + /* + * computes the checksum of a memory block at buff, length len, +@@ -180,4 +178,3 @@ __sum16 ip_compute_csum(const void *buff, int len) + { + return (__force __sum16)~from64to16(do_csum(buff,len)); + } +-EXPORT_SYMBOL(ip_compute_csum); +diff --git a/arch/alpha/lib/clear_page.S b/arch/alpha/lib/clear_page.S +index 263d7393c0e7..a221ae266e29 100644 +--- a/arch/alpha/lib/clear_page.S ++++ b/arch/alpha/lib/clear_page.S +@@ -3,7 +3,7 @@ + * + * Zero an entire page. + */ +-#include ++ + .text + .align 4 + .global clear_page +@@ -37,4 +37,3 @@ clear_page: + nop + + .end clear_page +- EXPORT_SYMBOL(clear_page) +diff --git a/arch/alpha/lib/clear_user.S b/arch/alpha/lib/clear_user.S +index bf5b931866ba..8860316c1957 100644 +--- a/arch/alpha/lib/clear_user.S ++++ b/arch/alpha/lib/clear_user.S +@@ -24,7 +24,6 @@ + * Clobbers: + * $1,$2,$3,$4,$5,$6 + */ +-#include + + /* Allow an exception for an insn; exit if we get one. */ + #define EX(x,y...) \ +@@ -112,4 +111,3 @@ $exception: + ret $31, ($28), 1 # .. e1 : + + .end __do_clear_user +- EXPORT_SYMBOL(__do_clear_user) +diff --git a/arch/alpha/lib/copy_page.S b/arch/alpha/lib/copy_page.S +index 2ee0bd0508c5..9f3b97459cc6 100644 +--- a/arch/alpha/lib/copy_page.S ++++ b/arch/alpha/lib/copy_page.S +@@ -3,7 +3,7 @@ + * + * Copy an entire page. + */ +-#include ++ + .text + .align 4 + .global copy_page +@@ -47,4 +47,3 @@ copy_page: + nop + + .end copy_page +- EXPORT_SYMBOL(copy_page) +diff --git a/arch/alpha/lib/copy_user.S b/arch/alpha/lib/copy_user.S +index 509f62b65311..ac9c3766ba8c 100644 +--- a/arch/alpha/lib/copy_user.S ++++ b/arch/alpha/lib/copy_user.S +@@ -26,8 +26,6 @@ + * $1,$2,$3,$4,$5,$6,$7 + */ + +-#include +- + /* Allow an exception for an insn; exit if we get one. */ + #define EXI(x,y...) \ + 99: x,##y; \ +@@ -131,4 +129,3 @@ $exitout: + ret $31,($28),1 + + .end __copy_user +-EXPORT_SYMBOL(__copy_user) +diff --git a/arch/alpha/lib/csum_ipv6_magic.S b/arch/alpha/lib/csum_ipv6_magic.S +index e74b4544b0cc..2c2acb96deb6 100644 +--- a/arch/alpha/lib/csum_ipv6_magic.S ++++ b/arch/alpha/lib/csum_ipv6_magic.S +@@ -12,7 +12,6 @@ + * added by Ivan Kokshaysky + */ + +-#include + .globl csum_ipv6_magic + .align 4 + .ent csum_ipv6_magic +@@ -114,4 +113,3 @@ csum_ipv6_magic: + ret # .. e1 : + + .end csum_ipv6_magic +- EXPORT_SYMBOL(csum_ipv6_magic) +diff --git a/arch/alpha/lib/csum_partial_copy.c b/arch/alpha/lib/csum_partial_copy.c +index b4ff3b683bcd..5675dca8dbb1 100644 +--- a/arch/alpha/lib/csum_partial_copy.c ++++ b/arch/alpha/lib/csum_partial_copy.c +@@ -374,7 +374,6 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len, + } + return (__force __wsum)checksum; + } +-EXPORT_SYMBOL(csum_partial_copy_from_user); + + __wsum + csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) +@@ -387,4 +386,3 @@ csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) + set_fs(oldfs); + return checksum; + } +-EXPORT_SYMBOL(csum_partial_copy_nocheck); +diff --git a/arch/alpha/lib/dec_and_lock.c b/arch/alpha/lib/dec_and_lock.c +index 4221b40167ee..f9f5fe830e9f 100644 +--- a/arch/alpha/lib/dec_and_lock.c ++++ b/arch/alpha/lib/dec_and_lock.c +@@ -7,7 +7,6 @@ + + #include + #include +-#include + + asm (".text \n\ + .global _atomic_dec_and_lock \n\ +@@ -40,4 +39,3 @@ static int __used atomic_dec_and_lock_1(atomic_t *atomic, spinlock_t *lock) + spin_unlock(lock); + return 0; + } +-EXPORT_SYMBOL(_atomic_dec_and_lock); +diff --git a/arch/alpha/lib/divide.S b/arch/alpha/lib/divide.S +index 1e33bd127621..2d1a0484a99e 100644 +--- a/arch/alpha/lib/divide.S ++++ b/arch/alpha/lib/divide.S +@@ -45,7 +45,6 @@ + * $28 - compare status + */ + +-#include + #define halt .long 0 + + /* +@@ -152,7 +151,6 @@ ufunction: + addq $30,STACK,$30 + ret $31,($23),1 + .end ufunction +-EXPORT_SYMBOL(ufunction) + + /* + * Uhh.. Ugly signed division. I'd rather not have it at all, but +@@ -195,4 +193,3 @@ sfunction: + addq $30,STACK,$30 + ret $31,($23),1 + .end sfunction +-EXPORT_SYMBOL(sfunction) +diff --git a/arch/alpha/lib/ev6-clear_page.S b/arch/alpha/lib/ev6-clear_page.S +index abe99e69a194..adf4f7be0e2b 100644 +--- a/arch/alpha/lib/ev6-clear_page.S ++++ b/arch/alpha/lib/ev6-clear_page.S +@@ -3,7 +3,7 @@ + * + * Zero an entire page. + */ +-#include ++ + .text + .align 4 + .global clear_page +@@ -52,4 +52,3 @@ clear_page: + nop + + .end clear_page +- EXPORT_SYMBOL(clear_page) +diff --git a/arch/alpha/lib/ev6-clear_user.S b/arch/alpha/lib/ev6-clear_user.S +index 05bef6b50598..4f42a16b7f53 100644 +--- a/arch/alpha/lib/ev6-clear_user.S ++++ b/arch/alpha/lib/ev6-clear_user.S +@@ -43,7 +43,6 @@ + * want to leave a hole (and we also want to avoid repeating lots of work) + */ + +-#include + /* Allow an exception for an insn; exit if we get one. */ + #define EX(x,y...) \ + 99: x,##y; \ +@@ -223,4 +222,4 @@ $exception: # Destination for exception recovery(?) + nop # .. E .. .. : + ret $31, ($28), 1 # L0 .. .. .. : L U L U + .end __do_clear_user +- EXPORT_SYMBOL(__do_clear_user) ++ +diff --git a/arch/alpha/lib/ev6-copy_page.S b/arch/alpha/lib/ev6-copy_page.S +index 77935061bddb..b789db192754 100644 +--- a/arch/alpha/lib/ev6-copy_page.S ++++ b/arch/alpha/lib/ev6-copy_page.S +@@ -56,7 +56,7 @@ + destination pages are in the dcache, but it is my guess that this is + less important than the dcache miss case. */ + +-#include ++ + .text + .align 4 + .global copy_page +@@ -201,4 +201,3 @@ copy_page: + nop + + .end copy_page +- EXPORT_SYMBOL(copy_page) +diff --git a/arch/alpha/lib/ev6-copy_user.S b/arch/alpha/lib/ev6-copy_user.S +index be720b518af9..c4d0689c3d26 100644 +--- a/arch/alpha/lib/ev6-copy_user.S ++++ b/arch/alpha/lib/ev6-copy_user.S +@@ -37,7 +37,6 @@ + * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 + */ + +-#include + /* Allow an exception for an insn; exit if we get one. */ + #define EXI(x,y...) \ + 99: x,##y; \ +@@ -236,4 +235,4 @@ $exitout: # Destination for exception recovery(?) + ret $31,($28),1 # L0 .. .. .. : L U L U + + .end __copy_user +- EXPORT_SYMBOL(__copy_user) ++ +diff --git a/arch/alpha/lib/ev6-csum_ipv6_magic.S b/arch/alpha/lib/ev6-csum_ipv6_magic.S +index de62627ac4fe..fc0bc399f872 100644 +--- a/arch/alpha/lib/ev6-csum_ipv6_magic.S ++++ b/arch/alpha/lib/ev6-csum_ipv6_magic.S +@@ -52,7 +52,6 @@ + * may cause additional delay in rare cases (load-load replay traps). + */ + +-#include + .globl csum_ipv6_magic + .align 4 + .ent csum_ipv6_magic +@@ -149,4 +148,3 @@ csum_ipv6_magic: + ret # L0 : L U L U + + .end csum_ipv6_magic +- EXPORT_SYMBOL(csum_ipv6_magic) +diff --git a/arch/alpha/lib/ev6-divide.S b/arch/alpha/lib/ev6-divide.S +index d18dc0e96e3d..2a82b9be93fa 100644 +--- a/arch/alpha/lib/ev6-divide.S ++++ b/arch/alpha/lib/ev6-divide.S +@@ -55,7 +55,6 @@ + * Try not to change the actual algorithm if possible for consistency. + */ + +-#include + #define halt .long 0 + + /* +@@ -206,7 +205,6 @@ ufunction: + addq $30,STACK,$30 # E : + ret $31,($23),1 # L0 : L U U L + .end ufunction +-EXPORT_SYMBOL(ufunction) + + /* + * Uhh.. Ugly signed division. I'd rather not have it at all, but +@@ -259,4 +257,3 @@ sfunction: + addq $30,STACK,$30 # E : + ret $31,($23),1 # L0 : L U U L + .end sfunction +-EXPORT_SYMBOL(sfunction) +diff --git a/arch/alpha/lib/ev6-memchr.S b/arch/alpha/lib/ev6-memchr.S +index 419adc53ccb4..1a5f71b9d8b1 100644 +--- a/arch/alpha/lib/ev6-memchr.S ++++ b/arch/alpha/lib/ev6-memchr.S +@@ -27,7 +27,7 @@ + * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 + * Try not to change the actual algorithm if possible for consistency. + */ +-#include ++ + .set noreorder + .set noat + +@@ -189,4 +189,3 @@ $not_found: + ret # L0 : + + .end memchr +- EXPORT_SYMBOL(memchr) +diff --git a/arch/alpha/lib/ev6-memcpy.S b/arch/alpha/lib/ev6-memcpy.S +index b19798b2efc0..52b37b0f2af5 100644 +--- a/arch/alpha/lib/ev6-memcpy.S ++++ b/arch/alpha/lib/ev6-memcpy.S +@@ -19,7 +19,7 @@ + * Temp usage notes: + * $1,$2, - scratch + */ +-#include ++ + .set noreorder + .set noat + +@@ -242,7 +242,6 @@ $nomoredata: + nop # E : + + .end memcpy +- EXPORT_SYMBOL(memcpy) + + /* For backwards module compatibility. */ + __memcpy = memcpy +diff --git a/arch/alpha/lib/ev6-memset.S b/arch/alpha/lib/ev6-memset.S +index fed21c6893e8..356bb2fdd705 100644 +--- a/arch/alpha/lib/ev6-memset.S ++++ b/arch/alpha/lib/ev6-memset.S +@@ -26,7 +26,7 @@ + * as fixes will need to be made in multiple places. The performance gain + * is worth it. + */ +-#include ++ + .set noat + .set noreorder + .text +@@ -229,7 +229,6 @@ end_b: + nop + ret $31,($26),1 # L0 : + .end ___memset +- EXPORT_SYMBOL(___memset) + + /* + * This is the original body of code, prior to replication and +@@ -407,7 +406,6 @@ end: + nop + ret $31,($26),1 # L0 : + .end __constant_c_memset +- EXPORT_SYMBOL(__constant_c_memset) + + /* + * This is a replicant of the __constant_c_memset code, rescheduled +@@ -596,9 +594,6 @@ end_w: + ret $31,($26),1 # L0 : + + .end __memsetw +- EXPORT_SYMBOL(__memsetw) + + memset = ___memset + __memset = ___memset +- EXPORT_SYMBOL(memset) +- EXPORT_SYMBOL(__memset) +diff --git a/arch/alpha/lib/ev67-strcat.S b/arch/alpha/lib/ev67-strcat.S +index b69f60419be1..c426fe3ed72f 100644 +--- a/arch/alpha/lib/ev67-strcat.S ++++ b/arch/alpha/lib/ev67-strcat.S +@@ -19,7 +19,7 @@ + * string once. + */ + +-#include ++ + .text + + .align 4 +@@ -52,4 +52,3 @@ $found: cttz $2, $3 # U0 : + br __stxcpy # L0 : + + .end strcat +- EXPORT_SYMBOL(strcat) +diff --git a/arch/alpha/lib/ev67-strchr.S b/arch/alpha/lib/ev67-strchr.S +index ea8f2f35db9c..fbb7b4ffade9 100644 +--- a/arch/alpha/lib/ev67-strchr.S ++++ b/arch/alpha/lib/ev67-strchr.S +@@ -15,7 +15,7 @@ + * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 + * Try not to change the actual algorithm if possible for consistency. + */ +-#include ++ + #include + + .set noreorder +@@ -86,4 +86,3 @@ $found: negq t0, t1 # E : clear all but least set bit + ret # L0 : + + .end strchr +- EXPORT_SYMBOL(strchr) +diff --git a/arch/alpha/lib/ev67-strlen.S b/arch/alpha/lib/ev67-strlen.S +index 736fd41884a8..503928072523 100644 +--- a/arch/alpha/lib/ev67-strlen.S ++++ b/arch/alpha/lib/ev67-strlen.S +@@ -17,7 +17,7 @@ + * U - upper subcluster; U0 - subcluster U0; U1 - subcluster U1 + * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 + */ +-#include ++ + .set noreorder + .set noat + +@@ -47,4 +47,3 @@ $found: + ret $31, ($26) # L0 : + + .end strlen +- EXPORT_SYMBOL(strlen) +diff --git a/arch/alpha/lib/ev67-strncat.S b/arch/alpha/lib/ev67-strncat.S +index cd35cbade73a..4ae716cd2bfb 100644 +--- a/arch/alpha/lib/ev67-strncat.S ++++ b/arch/alpha/lib/ev67-strncat.S +@@ -20,7 +20,7 @@ + * Try not to change the actual algorithm if possible for consistency. + */ + +-#include ++ + .text + + .align 4 +@@ -92,4 +92,3 @@ $zerocount: + ret # L0 : + + .end strncat +- EXPORT_SYMBOL(strncat) +diff --git a/arch/alpha/lib/ev67-strrchr.S b/arch/alpha/lib/ev67-strrchr.S +index 747455f0328c..dd0d8c6b9f59 100644 +--- a/arch/alpha/lib/ev67-strrchr.S ++++ b/arch/alpha/lib/ev67-strrchr.S +@@ -18,7 +18,7 @@ + * L - lower subcluster; L0 - subcluster L0; L1 - subcluster L1 + */ + +-#include ++ + #include + + .set noreorder +@@ -107,4 +107,3 @@ $eos: + nop + + .end strrchr +- EXPORT_SYMBOL(strrchr) +diff --git a/arch/alpha/lib/fpreg.c b/arch/alpha/lib/fpreg.c +index 4aa6dbfa14ee..05017ba34c3c 100644 +--- a/arch/alpha/lib/fpreg.c ++++ b/arch/alpha/lib/fpreg.c +@@ -4,9 +4,6 @@ + * (C) Copyright 1998 Linus Torvalds + */ + +-#include +-#include +- + #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) + #define STT(reg,val) asm volatile ("ftoit $f"#reg",%0" : "=r"(val)); + #else +@@ -55,7 +52,6 @@ alpha_read_fp_reg (unsigned long reg) + } + return val; + } +-EXPORT_SYMBOL(alpha_read_fp_reg); + + #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) + #define LDT(reg,val) asm volatile ("itoft %0,$f"#reg : : "r"(val)); +@@ -101,7 +97,6 @@ alpha_write_fp_reg (unsigned long reg, unsigned long val) + case 31: LDT(31, val); break; + } + } +-EXPORT_SYMBOL(alpha_write_fp_reg); + + #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) + #define STS(reg,val) asm volatile ("ftois $f"#reg",%0" : "=r"(val)); +@@ -151,7 +146,6 @@ alpha_read_fp_reg_s (unsigned long reg) + } + return val; + } +-EXPORT_SYMBOL(alpha_read_fp_reg_s); + + #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) + #define LDS(reg,val) asm volatile ("itofs %0,$f"#reg : : "r"(val)); +@@ -197,4 +191,3 @@ alpha_write_fp_reg_s (unsigned long reg, unsigned long val) + case 31: LDS(31, val); break; + } + } +-EXPORT_SYMBOL(alpha_write_fp_reg_s); +diff --git a/arch/alpha/lib/memchr.S b/arch/alpha/lib/memchr.S +index c13d3eca2e05..14427eeb555e 100644 +--- a/arch/alpha/lib/memchr.S ++++ b/arch/alpha/lib/memchr.S +@@ -31,7 +31,7 @@ For correctness consider that: + - only minimum number of quadwords may be accessed + - the third argument is an unsigned long + */ +-#include ++ + .set noreorder + .set noat + +@@ -162,4 +162,3 @@ $not_found: + ret # .. e1 : + + .end memchr +- EXPORT_SYMBOL(memchr) +diff --git a/arch/alpha/lib/memcpy.c b/arch/alpha/lib/memcpy.c +index 57d9291ad172..64083fc73238 100644 +--- a/arch/alpha/lib/memcpy.c ++++ b/arch/alpha/lib/memcpy.c +@@ -16,7 +16,6 @@ + */ + + #include +-#include + + /* + * This should be done in one go with ldq_u*2/mask/stq_u. Do it +@@ -159,4 +158,6 @@ void * memcpy(void * dest, const void *src, size_t n) + __memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n); + return dest; + } +-EXPORT_SYMBOL(memcpy); ++ ++/* For backward modules compatibility, define __memcpy. */ ++asm("__memcpy = memcpy; .globl __memcpy"); +diff --git a/arch/alpha/lib/memmove.S b/arch/alpha/lib/memmove.S +index 6872c85cb5e5..eb3b6e02242f 100644 +--- a/arch/alpha/lib/memmove.S ++++ b/arch/alpha/lib/memmove.S +@@ -6,7 +6,7 @@ + * This is hand-massaged output from the original memcpy.c. We defer to + * memcpy whenever possible; the backwards copy loops are not unrolled. + */ +-#include ++ + .set noat + .set noreorder + .text +@@ -179,4 +179,3 @@ $egress: + nop + + .end memmove +- EXPORT_SYMBOL(memmove) +diff --git a/arch/alpha/lib/memset.S b/arch/alpha/lib/memset.S +index 89a26f5e89de..76ccc6d1f364 100644 +--- a/arch/alpha/lib/memset.S ++++ b/arch/alpha/lib/memset.S +@@ -13,7 +13,7 @@ + * The scheduling comments are according to the EV5 documentation (and done by + * hand, so they might well be incorrect, please do tell me about it..) + */ +-#include ++ + .set noat + .set noreorder + .text +@@ -106,8 +106,6 @@ within_one_quad: + end: + ret $31,($26),1 /* E1 */ + .end ___memset +-EXPORT_SYMBOL(___memset) +-EXPORT_SYMBOL(__constant_c_memset) + + .align 5 + .ent __memsetw +@@ -124,9 +122,6 @@ __memsetw: + br __constant_c_memset /* .. E1 */ + + .end __memsetw +-EXPORT_SYMBOL(__memsetw) + + memset = ___memset + __memset = ___memset +- EXPORT_SYMBOL(memset) +- EXPORT_SYMBOL(__memset) +diff --git a/arch/alpha/lib/strcat.S b/arch/alpha/lib/strcat.S +index 249837b03d4b..393f50384878 100644 +--- a/arch/alpha/lib/strcat.S ++++ b/arch/alpha/lib/strcat.S +@@ -4,7 +4,6 @@ + * + * Append a null-terminated string from SRC to DST. + */ +-#include + + .text + +@@ -51,4 +50,3 @@ $found: negq $2, $3 # clear all but least set bit + br __stxcpy + + .end strcat +-EXPORT_SYMBOL(strcat); +diff --git a/arch/alpha/lib/strchr.S b/arch/alpha/lib/strchr.S +index 7412a173ea39..011a175e8329 100644 +--- a/arch/alpha/lib/strchr.S ++++ b/arch/alpha/lib/strchr.S +@@ -5,7 +5,7 @@ + * Return the address of a given character within a null-terminated + * string, or null if it is not found. + */ +-#include ++ + #include + + .set noreorder +@@ -68,4 +68,3 @@ $retnull: + ret # .. e1 : + + .end strchr +- EXPORT_SYMBOL(strchr) +diff --git a/arch/alpha/lib/strcpy.S b/arch/alpha/lib/strcpy.S +index 98deae1e4d08..e0728e4ad21f 100644 +--- a/arch/alpha/lib/strcpy.S ++++ b/arch/alpha/lib/strcpy.S +@@ -5,7 +5,7 @@ + * Copy a null-terminated string from SRC to DST. Return a pointer + * to the null-terminator in the source. + */ +-#include ++ + .text + + .align 3 +@@ -21,4 +21,3 @@ strcpy: + br __stxcpy # do the copy + + .end strcpy +- EXPORT_SYMBOL(strcpy) +diff --git a/arch/alpha/lib/strlen.S b/arch/alpha/lib/strlen.S +index 79c416f71bac..fe63353de152 100644 +--- a/arch/alpha/lib/strlen.S ++++ b/arch/alpha/lib/strlen.S +@@ -11,7 +11,7 @@ + * do this instead of the 9 instructions that + * binary search needs). + */ +-#include ++ + .set noreorder + .set noat + +@@ -55,4 +55,3 @@ done: subq $0, $16, $0 + ret $31, ($26) + + .end strlen +- EXPORT_SYMBOL(strlen) +diff --git a/arch/alpha/lib/strncat.S b/arch/alpha/lib/strncat.S +index 6c29ea60869a..a8278163c972 100644 +--- a/arch/alpha/lib/strncat.S ++++ b/arch/alpha/lib/strncat.S +@@ -9,7 +9,7 @@ + * past count, whereas libc may write to count+1. This follows the generic + * implementation in lib/string.c and is, IMHO, more sensible. + */ +-#include ++ + .text + + .align 3 +@@ -82,4 +82,3 @@ $zerocount: + ret + + .end strncat +- EXPORT_SYMBOL(strncat) +diff --git a/arch/alpha/lib/strncpy.S b/arch/alpha/lib/strncpy.S +index e102cf1567dd..a46f7f3ad8c7 100644 +--- a/arch/alpha/lib/strncpy.S ++++ b/arch/alpha/lib/strncpy.S +@@ -10,7 +10,7 @@ + * version has cropped that bit o' nastiness as well as assuming that + * __stxncpy is in range of a branch. + */ +-#include ++ + .set noat + .set noreorder + +@@ -79,4 +79,3 @@ $zerolen: + ret + + .end strncpy +- EXPORT_SYMBOL(strncpy) +diff --git a/arch/alpha/lib/strrchr.S b/arch/alpha/lib/strrchr.S +index 4bc6cb4b9812..1970dc07cfd1 100644 +--- a/arch/alpha/lib/strrchr.S ++++ b/arch/alpha/lib/strrchr.S +@@ -5,7 +5,7 @@ + * Return the address of the last occurrence of a given character + * within a null-terminated string, or null if it is not found. + */ +-#include ++ + #include + + .set noreorder +@@ -85,4 +85,3 @@ $retnull: + ret # .. e1 : + + .end strrchr +- EXPORT_SYMBOL(strrchr) diff --git a/patches/bugfix/ia64/revert-ia64-move-exports-to-definitions.patch b/patches/bugfix/ia64/revert-ia64-move-exports-to-definitions.patch new file mode 100644 index 00000000000..dadf2c66d39 --- /dev/null +++ b/patches/bugfix/ia64/revert-ia64-move-exports-to-definitions.patch @@ -0,0 +1,643 @@ +From: Ben Hutchings +Date: Thu, 1 Dec 2016 23:20:31 +0000 +Subject: Revert "ia64: move exports to definitions" +Forwarded: not-needed + +This reverts commit e007c53397acb5554e226693e3bff54a312ccd96 because +symbols exported from assembly don't automatically get modversions (ABI +hashes). +--- + arch/ia64/include/asm/export.h | 3 -- + arch/ia64/kernel/entry.S | 3 -- + arch/ia64/kernel/esi_stub.S | 2 - + arch/ia64/kernel/head.S | 2 - + arch/ia64/kernel/ia64_ksyms.c | 94 ++++++++++++++++++++++++++++++++++++++- + arch/ia64/kernel/ivt.S | 2 - + arch/ia64/kernel/pal.S | 7 --- + arch/ia64/kernel/setup.c | 4 -- + arch/ia64/lib/clear_page.S | 2 - + arch/ia64/lib/clear_user.S | 2 - + arch/ia64/lib/copy_page.S | 2 - + arch/ia64/lib/copy_page_mck.S | 2 - + arch/ia64/lib/copy_user.S | 2 - + arch/ia64/lib/flush.S | 2 - + arch/ia64/lib/idiv32.S | 2 - + arch/ia64/lib/idiv64.S | 2 - + arch/ia64/lib/ip_fast_csum.S | 3 -- + arch/ia64/lib/memcpy.S | 2 - + arch/ia64/lib/memcpy_mck.S | 3 -- + arch/ia64/lib/memset.S | 2 - + arch/ia64/lib/strlen.S | 2 - + arch/ia64/lib/strlen_user.S | 2 - + arch/ia64/lib/strncpy_from_user.S | 2 - + arch/ia64/lib/strnlen_user.S | 2 - + arch/ia64/lib/xor.S | 5 --- + 25 files changed, 92 insertions(+), 64 deletions(-) + delete mode 100644 arch/ia64/include/asm/export.h + +diff --git a/arch/ia64/include/asm/export.h b/arch/ia64/include/asm/export.h +deleted file mode 100644 +index ad18c6583252..000000000000 +--- a/arch/ia64/include/asm/export.h ++++ /dev/null +@@ -1,3 +0,0 @@ +-/* EXPORT_DATA_SYMBOL != EXPORT_SYMBOL here */ +-#define KSYM_FUNC(name) @fptr(name) +-#include +diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S +index 6f27a663177c..cfaa7b25084c 100644 +--- a/arch/ia64/kernel/entry.S ++++ b/arch/ia64/kernel/entry.S +@@ -48,7 +48,6 @@ + #include + #include + #include +-#include + + #include "minstate.h" + +@@ -1346,14 +1345,12 @@ GLOBAL_ENTRY(unw_init_running) + mov rp=loc0 + br.ret.sptk.many rp + END(unw_init_running) +-EXPORT_SYMBOL(unw_init_running) + + #ifdef CONFIG_FUNCTION_TRACER + #ifdef CONFIG_DYNAMIC_FTRACE + GLOBAL_ENTRY(_mcount) + br ftrace_stub + END(_mcount) +-EXPORT_SYMBOL(_mcount) + + .here: + br.ret.sptk.many b0 +diff --git a/arch/ia64/kernel/esi_stub.S b/arch/ia64/kernel/esi_stub.S +index 2c369bf77c4b..6b3d6c1f99b6 100644 +--- a/arch/ia64/kernel/esi_stub.S ++++ b/arch/ia64/kernel/esi_stub.S +@@ -35,7 +35,6 @@ + + #include + #include +-#include + + /* + * Inputs: +@@ -95,4 +94,3 @@ GLOBAL_ENTRY(esi_call_phys) + mov gp=loc2 + br.ret.sptk.many rp + END(esi_call_phys) +-EXPORT_SYMBOL_GPL(esi_call_phys) +diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S +index c9b5e942f671..bb748c596443 100644 +--- a/arch/ia64/kernel/head.S ++++ b/arch/ia64/kernel/head.S +@@ -32,7 +32,6 @@ + #include + #include + #include +-#include + + #ifdef CONFIG_HOTPLUG_CPU + #define SAL_PSR_BITS_TO_SET \ +@@ -169,7 +168,6 @@ RestRR: \ + __PAGE_ALIGNED_DATA + + .global empty_zero_page +-EXPORT_DATA_SYMBOL_GPL(empty_zero_page) + empty_zero_page: + .skip PAGE_SIZE + +diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c +index d111248af719..096731049538 100644 +--- a/arch/ia64/kernel/ia64_ksyms.c ++++ b/arch/ia64/kernel/ia64_ksyms.c +@@ -1,11 +1,101 @@ + /* + * Architecture-specific kernel symbols ++ * ++ * Don't put any exports here unless it's defined in an assembler file. ++ * All other exports should be put directly after the definition. + */ + ++#include ++ ++#include ++EXPORT_SYMBOL(memset); ++EXPORT_SYMBOL(memcpy); ++EXPORT_SYMBOL(strlen); ++ ++#include ++EXPORT_SYMBOL_GPL(empty_zero_page); ++ ++#include ++EXPORT_SYMBOL(ip_fast_csum); /* hand-coded assembly */ ++EXPORT_SYMBOL(csum_ipv6_magic); ++ ++#include ++EXPORT_SYMBOL(clear_page); ++EXPORT_SYMBOL(copy_page); ++ + #ifdef CONFIG_VIRTUAL_MEM_MAP +-#include +-#include + #include + EXPORT_SYMBOL(min_low_pfn); /* defined by bootmem.c, but not exported by generic code */ + EXPORT_SYMBOL(max_low_pfn); /* defined by bootmem.c, but not exported by generic code */ + #endif ++ ++#include ++EXPORT_SYMBOL(ia64_cpu_info); ++#ifdef CONFIG_SMP ++EXPORT_SYMBOL(local_per_cpu_offset); ++#endif ++ ++#include ++EXPORT_SYMBOL(__copy_user); ++EXPORT_SYMBOL(__do_clear_user); ++EXPORT_SYMBOL(__strlen_user); ++EXPORT_SYMBOL(__strncpy_from_user); ++EXPORT_SYMBOL(__strnlen_user); ++ ++/* from arch/ia64/lib */ ++extern void __divsi3(void); ++extern void __udivsi3(void); ++extern void __modsi3(void); ++extern void __umodsi3(void); ++extern void __divdi3(void); ++extern void __udivdi3(void); ++extern void __moddi3(void); ++extern void __umoddi3(void); ++ ++EXPORT_SYMBOL(__divsi3); ++EXPORT_SYMBOL(__udivsi3); ++EXPORT_SYMBOL(__modsi3); ++EXPORT_SYMBOL(__umodsi3); ++EXPORT_SYMBOL(__divdi3); ++EXPORT_SYMBOL(__udivdi3); ++EXPORT_SYMBOL(__moddi3); ++EXPORT_SYMBOL(__umoddi3); ++ ++#if defined(CONFIG_MD_RAID456) || defined(CONFIG_MD_RAID456_MODULE) ++extern void xor_ia64_2(void); ++extern void xor_ia64_3(void); ++extern void xor_ia64_4(void); ++extern void xor_ia64_5(void); ++ ++EXPORT_SYMBOL(xor_ia64_2); ++EXPORT_SYMBOL(xor_ia64_3); ++EXPORT_SYMBOL(xor_ia64_4); ++EXPORT_SYMBOL(xor_ia64_5); ++#endif ++ ++#include ++EXPORT_SYMBOL(ia64_pal_call_phys_stacked); ++EXPORT_SYMBOL(ia64_pal_call_phys_static); ++EXPORT_SYMBOL(ia64_pal_call_stacked); ++EXPORT_SYMBOL(ia64_pal_call_static); ++EXPORT_SYMBOL(ia64_load_scratch_fpregs); ++EXPORT_SYMBOL(ia64_save_scratch_fpregs); ++ ++#include ++EXPORT_SYMBOL(unw_init_running); ++ ++#if defined(CONFIG_IA64_ESI) || defined(CONFIG_IA64_ESI_MODULE) ++extern void esi_call_phys (void); ++EXPORT_SYMBOL_GPL(esi_call_phys); ++#endif ++extern char ia64_ivt[]; ++EXPORT_SYMBOL(ia64_ivt); ++ ++#include ++#ifdef CONFIG_FUNCTION_TRACER ++/* mcount is defined in assembly */ ++EXPORT_SYMBOL(_mcount); ++#endif ++ ++#include ++EXPORT_SYMBOL_GPL(flush_icache_range); +diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S +index 44a103a5de2b..b1c3cfc93e71 100644 +--- a/arch/ia64/kernel/ivt.S ++++ b/arch/ia64/kernel/ivt.S +@@ -57,7 +57,6 @@ + #include + #include + #include +-#include + + #if 0 + # define PSR_DEFAULT_BITS psr.ac +@@ -86,7 +85,6 @@ + + .align 32768 // align on 32KB boundary + .global ia64_ivt +- EXPORT_DATA_SYMBOL(ia64_ivt) + ia64_ivt: + ///////////////////////////////////////////////////////////////////////////////////////// + // 0x0000 Entry 0 (size 64 bundles) VHPT Translation (8,20,47) +diff --git a/arch/ia64/kernel/pal.S b/arch/ia64/kernel/pal.S +index 94fb2e395498..0b533441c3c9 100644 +--- a/arch/ia64/kernel/pal.S ++++ b/arch/ia64/kernel/pal.S +@@ -14,7 +14,6 @@ + + #include + #include +-#include + + .data + pal_entry_point: +@@ -88,7 +87,6 @@ GLOBAL_ENTRY(ia64_pal_call_static) + srlz.d // seralize restoration of psr.l + br.ret.sptk.many b0 + END(ia64_pal_call_static) +-EXPORT_SYMBOL(ia64_pal_call_static) + + /* + * Make a PAL call using the stacked registers calling convention. +@@ -124,7 +122,6 @@ GLOBAL_ENTRY(ia64_pal_call_stacked) + srlz.d // serialize restoration of psr.l + br.ret.sptk.many b0 + END(ia64_pal_call_stacked) +-EXPORT_SYMBOL(ia64_pal_call_stacked) + + /* + * Make a physical mode PAL call using the static registers calling convention. +@@ -196,7 +193,6 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) + srlz.d // seralize restoration of psr.l + br.ret.sptk.many b0 + END(ia64_pal_call_phys_static) +-EXPORT_SYMBOL(ia64_pal_call_phys_static) + + /* + * Make a PAL call using the stacked registers in physical mode. +@@ -254,7 +250,6 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) + srlz.d // seralize restoration of psr.l + br.ret.sptk.many b0 + END(ia64_pal_call_phys_stacked) +-EXPORT_SYMBOL(ia64_pal_call_phys_stacked) + + /* + * Save scratch fp scratch regs which aren't saved in pt_regs already +@@ -280,7 +275,6 @@ GLOBAL_ENTRY(ia64_save_scratch_fpregs) + stf.spill [r2] = f15,32 + br.ret.sptk.many rp + END(ia64_save_scratch_fpregs) +-EXPORT_SYMBOL(ia64_save_scratch_fpregs) + + /* + * Load scratch fp scratch regs (fp10-fp15) +@@ -302,4 +296,3 @@ GLOBAL_ENTRY(ia64_load_scratch_fpregs) + ldf.fill f15 = [r2],32 + br.ret.sptk.many rp + END(ia64_load_scratch_fpregs) +-EXPORT_SYMBOL(ia64_load_scratch_fpregs) +diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c +index 7ec7acc844c2..afddb3e80a29 100644 +--- a/arch/ia64/kernel/setup.c ++++ b/arch/ia64/kernel/setup.c +@@ -71,11 +71,7 @@ EXPORT_SYMBOL(__per_cpu_offset); + #endif + + DEFINE_PER_CPU(struct cpuinfo_ia64, ia64_cpu_info); +-EXPORT_SYMBOL(ia64_cpu_info); + DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); +-#ifdef CONFIG_SMP +-EXPORT_SYMBOL(local_per_cpu_offset); +-#endif + unsigned long ia64_cycles_per_usec; + struct ia64_boot_param *ia64_boot_param; + struct screen_info screen_info; +diff --git a/arch/ia64/lib/clear_page.S b/arch/ia64/lib/clear_page.S +index 3cf5b76e587f..2d814e7ed191 100644 +--- a/arch/ia64/lib/clear_page.S ++++ b/arch/ia64/lib/clear_page.S +@@ -11,7 +11,6 @@ + + #include + #include +-#include + + #ifdef CONFIG_ITANIUM + # define L3_LINE_SIZE 64 // Itanium L3 line size +@@ -75,4 +74,3 @@ GLOBAL_ENTRY(clear_page) + mov ar.lc = saved_lc // restore lc + br.ret.sptk.many rp + END(clear_page) +-EXPORT_SYMBOL(clear_page) +diff --git a/arch/ia64/lib/clear_user.S b/arch/ia64/lib/clear_user.S +index 7b40731ee5d8..eecd8577b209 100644 +--- a/arch/ia64/lib/clear_user.S ++++ b/arch/ia64/lib/clear_user.S +@@ -12,7 +12,6 @@ + */ + + #include +-#include + + // + // arguments +@@ -208,4 +207,3 @@ GLOBAL_ENTRY(__do_clear_user) + mov ar.lc=saved_lc + br.ret.sptk.many rp + END(__do_clear_user) +-EXPORT_SYMBOL(__do_clear_user) +diff --git a/arch/ia64/lib/copy_page.S b/arch/ia64/lib/copy_page.S +index cbdb9e323ffb..127d1d050d78 100644 +--- a/arch/ia64/lib/copy_page.S ++++ b/arch/ia64/lib/copy_page.S +@@ -16,7 +16,6 @@ + */ + #include + #include +-#include + + #define PIPE_DEPTH 3 + #define EPI p[PIPE_DEPTH-1] +@@ -97,4 +96,3 @@ GLOBAL_ENTRY(copy_page) + mov ar.lc=saved_lc + br.ret.sptk.many rp + END(copy_page) +-EXPORT_SYMBOL(copy_page) +diff --git a/arch/ia64/lib/copy_page_mck.S b/arch/ia64/lib/copy_page_mck.S +index c13f69036876..3c45d60a81b4 100644 +--- a/arch/ia64/lib/copy_page_mck.S ++++ b/arch/ia64/lib/copy_page_mck.S +@@ -61,7 +61,6 @@ + */ + #include + #include +-#include + + #define PREFETCH_DIST 8 // McKinley sustains 16 outstanding L2 misses (8 ld, 8 st) + +@@ -184,4 +183,3 @@ GLOBAL_ENTRY(copy_page) + mov pr = saved_pr, -1 + br.ret.sptk.many rp + END(copy_page) +-EXPORT_SYMBOL(copy_page) +diff --git a/arch/ia64/lib/copy_user.S b/arch/ia64/lib/copy_user.S +index 66facd52e8d0..c952bdc6a093 100644 +--- a/arch/ia64/lib/copy_user.S ++++ b/arch/ia64/lib/copy_user.S +@@ -30,7 +30,6 @@ + */ + + #include +-#include + + // + // Tuneable parameters +@@ -609,4 +608,3 @@ GLOBAL_ENTRY(__copy_user) + mov ar.pfs=saved_pfs + br.ret.sptk.many rp + END(__copy_user) +-EXPORT_SYMBOL(__copy_user) +diff --git a/arch/ia64/lib/flush.S b/arch/ia64/lib/flush.S +index 9a5a2f9fad13..1d8c88860063 100644 +--- a/arch/ia64/lib/flush.S ++++ b/arch/ia64/lib/flush.S +@@ -8,7 +8,6 @@ + */ + + #include +-#include + + + /* +@@ -61,7 +60,6 @@ GLOBAL_ENTRY(flush_icache_range) + mov ar.lc=r3 // restore ar.lc + br.ret.sptk.many rp + END(flush_icache_range) +-EXPORT_SYMBOL_GPL(flush_icache_range) + + /* + * clflush_cache_range(start,size) +diff --git a/arch/ia64/lib/idiv32.S b/arch/ia64/lib/idiv32.S +index 715aed79a9ce..c91b5b0129ff 100644 +--- a/arch/ia64/lib/idiv32.S ++++ b/arch/ia64/lib/idiv32.S +@@ -15,7 +15,6 @@ + */ + + #include +-#include + + #ifdef MODULO + # define OP mod +@@ -82,4 +81,3 @@ GLOBAL_ENTRY(NAME) + getf.sig r8 = f6 // transfer result to result register + br.ret.sptk.many rp + END(NAME) +-EXPORT_SYMBOL(NAME) +diff --git a/arch/ia64/lib/idiv64.S b/arch/ia64/lib/idiv64.S +index 25840f697753..627573c4ceb1 100644 +--- a/arch/ia64/lib/idiv64.S ++++ b/arch/ia64/lib/idiv64.S +@@ -15,7 +15,6 @@ + */ + + #include +-#include + + #ifdef MODULO + # define OP mod +@@ -79,4 +78,3 @@ GLOBAL_ENTRY(NAME) + getf.sig r8 = f11 // transfer result to result register + br.ret.sptk.many rp + END(NAME) +-EXPORT_SYMBOL(NAME) +diff --git a/arch/ia64/lib/ip_fast_csum.S b/arch/ia64/lib/ip_fast_csum.S +index 648e0d4a4839..620d9dc5220f 100644 +--- a/arch/ia64/lib/ip_fast_csum.S ++++ b/arch/ia64/lib/ip_fast_csum.S +@@ -13,7 +13,6 @@ + */ + + #include +-#include + + /* + * Since we know that most likely this function is called with buf aligned +@@ -93,7 +92,6 @@ GLOBAL_ENTRY(ip_fast_csum) + mov b0=r34 + br.ret.sptk.many b0 + END(ip_fast_csum) +-EXPORT_SYMBOL(ip_fast_csum) + + GLOBAL_ENTRY(csum_ipv6_magic) + ld4 r20=[in0],4 +@@ -144,4 +142,3 @@ GLOBAL_ENTRY(csum_ipv6_magic) + andcm r8=r9,r8 + br.ret.sptk.many b0 + END(csum_ipv6_magic) +-EXPORT_SYMBOL(csum_ipv6_magic) +diff --git a/arch/ia64/lib/memcpy.S b/arch/ia64/lib/memcpy.S +index ba172fd6acf4..448908d80b69 100644 +--- a/arch/ia64/lib/memcpy.S ++++ b/arch/ia64/lib/memcpy.S +@@ -14,7 +14,6 @@ + * David Mosberger-Tang + */ + #include +-#include + + GLOBAL_ENTRY(memcpy) + +@@ -300,4 +299,3 @@ GLOBAL_ENTRY(memcpy) + COPY(56, 0) + + END(memcpy) +-EXPORT_SYMBOL(memcpy) +diff --git a/arch/ia64/lib/memcpy_mck.S b/arch/ia64/lib/memcpy_mck.S +index b264b6a7967b..ab0f87639729 100644 +--- a/arch/ia64/lib/memcpy_mck.S ++++ b/arch/ia64/lib/memcpy_mck.S +@@ -15,7 +15,6 @@ + */ + #include + #include +-#include + + #define EK(y...) EX(y) + +@@ -79,7 +78,6 @@ GLOBAL_ENTRY(memcpy) + br.cond.sptk .common_code + ;; + END(memcpy) +-EXPORT_SYMBOL(memcpy) + GLOBAL_ENTRY(__copy_user) + .prologue + // check dest alignment +@@ -666,4 +664,3 @@ EK(.ex_handler, (p17) st8 [dst1]=r39,8); \ + + /* end of McKinley specific optimization */ + END(__copy_user) +-EXPORT_SYMBOL(__copy_user) +diff --git a/arch/ia64/lib/memset.S b/arch/ia64/lib/memset.S +index 87b974704075..f26c16aefb1c 100644 +--- a/arch/ia64/lib/memset.S ++++ b/arch/ia64/lib/memset.S +@@ -18,7 +18,6 @@ + to get peak speed when value = 0. */ + + #include +-#include + #undef ret + + #define dest in0 +@@ -361,4 +360,3 @@ GLOBAL_ENTRY(memset) + br.ret.sptk.many rp + } + END(memset) +-EXPORT_SYMBOL(memset) +diff --git a/arch/ia64/lib/strlen.S b/arch/ia64/lib/strlen.S +index 1a6e17c657b4..e0cdac0a85b8 100644 +--- a/arch/ia64/lib/strlen.S ++++ b/arch/ia64/lib/strlen.S +@@ -17,7 +17,6 @@ + */ + + #include +-#include + + // + // +@@ -191,4 +190,3 @@ GLOBAL_ENTRY(strlen) + mov ar.pfs=saved_pfs // because of ar.ec, restore no matter what + br.ret.sptk.many rp // end of successful recovery code + END(strlen) +-EXPORT_SYMBOL(strlen) +diff --git a/arch/ia64/lib/strlen_user.S b/arch/ia64/lib/strlen_user.S +index 9d257684e733..c71eded4285e 100644 +--- a/arch/ia64/lib/strlen_user.S ++++ b/arch/ia64/lib/strlen_user.S +@@ -16,7 +16,6 @@ + */ + + #include +-#include + + // + // int strlen_user(char *) +@@ -197,4 +196,3 @@ GLOBAL_ENTRY(__strlen_user) + mov ar.pfs=saved_pfs // because of ar.ec, restore no matter what + br.ret.sptk.many rp + END(__strlen_user) +-EXPORT_SYMBOL(__strlen_user) +diff --git a/arch/ia64/lib/strncpy_from_user.S b/arch/ia64/lib/strncpy_from_user.S +index ca9ccf280e2e..a504381f31eb 100644 +--- a/arch/ia64/lib/strncpy_from_user.S ++++ b/arch/ia64/lib/strncpy_from_user.S +@@ -17,7 +17,6 @@ + */ + + #include +-#include + + GLOBAL_ENTRY(__strncpy_from_user) + alloc r2=ar.pfs,3,0,0,0 +@@ -43,4 +42,3 @@ GLOBAL_ENTRY(__strncpy_from_user) + [.Lexit:] + br.ret.sptk.many rp + END(__strncpy_from_user) +-EXPORT_SYMBOL(__strncpy_from_user) +diff --git a/arch/ia64/lib/strnlen_user.S b/arch/ia64/lib/strnlen_user.S +index 80a5dfd1d402..d09066b1e49d 100644 +--- a/arch/ia64/lib/strnlen_user.S ++++ b/arch/ia64/lib/strnlen_user.S +@@ -13,7 +13,6 @@ + */ + + #include +-#include + + GLOBAL_ENTRY(__strnlen_user) + .prologue +@@ -44,4 +43,3 @@ GLOBAL_ENTRY(__strnlen_user) + mov ar.lc=r16 // restore ar.lc + br.ret.sptk.many rp + END(__strnlen_user) +-EXPORT_SYMBOL(__strnlen_user) +diff --git a/arch/ia64/lib/xor.S b/arch/ia64/lib/xor.S +index c83f1c410691..54e3f7eab8e9 100644 +--- a/arch/ia64/lib/xor.S ++++ b/arch/ia64/lib/xor.S +@@ -14,7 +14,6 @@ + */ + + #include +-#include + + GLOBAL_ENTRY(xor_ia64_2) + .prologue +@@ -52,7 +51,6 @@ GLOBAL_ENTRY(xor_ia64_2) + mov pr = r29, -1 + br.ret.sptk.few rp + END(xor_ia64_2) +-EXPORT_SYMBOL(xor_ia64_2) + + GLOBAL_ENTRY(xor_ia64_3) + .prologue +@@ -93,7 +91,6 @@ GLOBAL_ENTRY(xor_ia64_3) + mov pr = r29, -1 + br.ret.sptk.few rp + END(xor_ia64_3) +-EXPORT_SYMBOL(xor_ia64_3) + + GLOBAL_ENTRY(xor_ia64_4) + .prologue +@@ -137,7 +134,6 @@ GLOBAL_ENTRY(xor_ia64_4) + mov pr = r29, -1 + br.ret.sptk.few rp + END(xor_ia64_4) +-EXPORT_SYMBOL(xor_ia64_4) + + GLOBAL_ENTRY(xor_ia64_5) + .prologue +@@ -186,4 +182,3 @@ GLOBAL_ENTRY(xor_ia64_5) + mov pr = r29, -1 + br.ret.sptk.few rp + END(xor_ia64_5) +-EXPORT_SYMBOL(xor_ia64_5) diff --git a/patches/bugfix/m68k/revert-m68k-move-exports-to-definitions.patch b/patches/bugfix/m68k/revert-m68k-move-exports-to-definitions.patch new file mode 100644 index 00000000000..844375b3e0c --- /dev/null +++ b/patches/bugfix/m68k/revert-m68k-move-exports-to-definitions.patch @@ -0,0 +1,254 @@ +From: Ben Hutchings +Date: Thu, 1 Dec 2016 23:14:09 +0000 +Subject: Revert "m68k: move exports to definitions" +Forwarded: not-needed + +This reverts commit d13ffb5630443e6112df0263969cbdfc8ab9ab57 because +symbols exported from assembly don't automatically get modversions (ABI +hashes). +--- + arch/m68k/include/asm/export.h | 3 --- + arch/m68k/kernel/Makefile | 2 +- + arch/m68k/kernel/m68k_ksyms.c | 32 ++++++++++++++++++++++++++++++++ + arch/m68k/lib/ashldi3.c | 4 ---- + arch/m68k/lib/ashrdi3.c | 4 ---- + arch/m68k/lib/divsi3.S | 3 --- + arch/m68k/lib/lshrdi3.c | 4 ---- + arch/m68k/lib/modsi3.S | 3 --- + arch/m68k/lib/muldi3.c | 4 ---- + arch/m68k/lib/mulsi3.S | 4 ++-- + arch/m68k/lib/udivsi3.S | 4 ++-- + arch/m68k/lib/umodsi3.S | 4 ++-- + 12 files changed, 39 insertions(+), 32 deletions(-) + delete mode 100644 arch/m68k/include/asm/export.h + create mode 100644 arch/m68k/kernel/m68k_ksyms.c + +diff --git a/arch/m68k/include/asm/export.h b/arch/m68k/include/asm/export.h +deleted file mode 100644 +index 0af20f48bd07..000000000000 +--- a/arch/m68k/include/asm/export.h ++++ /dev/null +@@ -1,3 +0,0 @@ +-#define KSYM_ALIGN 2 +-#define KCRC_ALIGN 2 +-#include +diff --git a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile +index 74c898ced8cc..8a1c4d3f91c8 100644 +--- a/arch/m68k/kernel/Makefile ++++ b/arch/m68k/kernel/Makefile +@@ -13,7 +13,7 @@ extra-$(CONFIG_SUN3X) := head.o + extra-$(CONFIG_SUN3) := sun3-head.o + extra-y += vmlinux.lds + +-obj-y := entry.o irq.o module.o process.o ptrace.o ++obj-y := entry.o irq.o m68k_ksyms.o module.o process.o ptrace.o + obj-y += setup.o signal.o sys_m68k.o syscalltable.o time.o traps.o + + obj-$(CONFIG_MMU_MOTOROLA) += ints.o vectors.o +diff --git a/arch/m68k/kernel/m68k_ksyms.c b/arch/m68k/kernel/m68k_ksyms.c +new file mode 100644 +index 000000000000..774c1bd59c36 +--- /dev/null ++++ b/arch/m68k/kernel/m68k_ksyms.c +@@ -0,0 +1,32 @@ ++#include ++ ++asmlinkage long long __ashldi3 (long long, int); ++asmlinkage long long __ashrdi3 (long long, int); ++asmlinkage long long __lshrdi3 (long long, int); ++asmlinkage long long __muldi3 (long long, long long); ++ ++/* The following are special because they're not called ++ explicitly (the C compiler generates them). Fortunately, ++ their interface isn't gonna change any time soon now, so ++ it's OK to leave it out of version control. */ ++EXPORT_SYMBOL(__ashldi3); ++EXPORT_SYMBOL(__ashrdi3); ++EXPORT_SYMBOL(__lshrdi3); ++EXPORT_SYMBOL(__muldi3); ++ ++#if defined(CONFIG_CPU_HAS_NO_MULDIV64) ++/* ++ * Simpler 68k and ColdFire parts also need a few other gcc functions. ++ */ ++extern long long __divsi3(long long, long long); ++extern long long __modsi3(long long, long long); ++extern long long __mulsi3(long long, long long); ++extern long long __udivsi3(long long, long long); ++extern long long __umodsi3(long long, long long); ++ ++EXPORT_SYMBOL(__divsi3); ++EXPORT_SYMBOL(__modsi3); ++EXPORT_SYMBOL(__mulsi3); ++EXPORT_SYMBOL(__udivsi3); ++EXPORT_SYMBOL(__umodsi3); ++#endif +diff --git a/arch/m68k/lib/ashldi3.c b/arch/m68k/lib/ashldi3.c +index 8dffd36ec4f2..37234c2df47f 100644 +--- a/arch/m68k/lib/ashldi3.c ++++ b/arch/m68k/lib/ashldi3.c +@@ -13,9 +13,6 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +-#include +-#include +- + #define BITS_PER_UNIT 8 + + typedef int SItype __attribute__ ((mode (SI))); +@@ -58,4 +55,3 @@ __ashldi3 (DItype u, word_type b) + + return w.ll; + } +-EXPORT_SYMBOL(__ashldi3); +diff --git a/arch/m68k/lib/ashrdi3.c b/arch/m68k/lib/ashrdi3.c +index e6565a3ee2c3..1d59345f36c6 100644 +--- a/arch/m68k/lib/ashrdi3.c ++++ b/arch/m68k/lib/ashrdi3.c +@@ -13,9 +13,6 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +-#include +-#include +- + #define BITS_PER_UNIT 8 + + typedef int SItype __attribute__ ((mode (SI))); +@@ -59,4 +56,3 @@ __ashrdi3 (DItype u, word_type b) + + return w.ll; + } +-EXPORT_SYMBOL(__ashrdi3); +diff --git a/arch/m68k/lib/divsi3.S b/arch/m68k/lib/divsi3.S +index 3a2143f51631..2c0ec85ac661 100644 +--- a/arch/m68k/lib/divsi3.S ++++ b/arch/m68k/lib/divsi3.S +@@ -33,8 +33,6 @@ General Public License for more details. */ + D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 + */ + +-#include +- + /* These are predefined by new versions of GNU cpp. */ + + #ifndef __USER_LABEL_PREFIX__ +@@ -120,4 +118,3 @@ L2: movel d1, sp@- + L3: movel sp@+, d2 + rts + +- EXPORT_SYMBOL(__divsi3) +diff --git a/arch/m68k/lib/lshrdi3.c b/arch/m68k/lib/lshrdi3.c +index 039779737c7d..49e1ec8f2cc2 100644 +--- a/arch/m68k/lib/lshrdi3.c ++++ b/arch/m68k/lib/lshrdi3.c +@@ -13,9 +13,6 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +-#include +-#include +- + #define BITS_PER_UNIT 8 + + typedef int SItype __attribute__ ((mode (SI))); +@@ -58,4 +55,3 @@ __lshrdi3 (DItype u, word_type b) + + return w.ll; + } +-EXPORT_SYMBOL(__lshrdi3); +diff --git a/arch/m68k/lib/modsi3.S b/arch/m68k/lib/modsi3.S +index 1c967649a4e0..1d9e0efdf31d 100644 +--- a/arch/m68k/lib/modsi3.S ++++ b/arch/m68k/lib/modsi3.S +@@ -33,8 +33,6 @@ General Public License for more details. */ + D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 + */ + +-#include +- + /* These are predefined by new versions of GNU cpp. */ + + #ifndef __USER_LABEL_PREFIX__ +@@ -108,4 +106,3 @@ SYM (__modsi3): + movel d1, d0 + rts + +- EXPORT_SYMBOL(__modsi3) +diff --git a/arch/m68k/lib/muldi3.c b/arch/m68k/lib/muldi3.c +index 6459af5b2af0..9006d15b8721 100644 +--- a/arch/m68k/lib/muldi3.c ++++ b/arch/m68k/lib/muldi3.c +@@ -14,9 +14,6 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +-#include +-#include +- + #ifdef CONFIG_CPU_HAS_NO_MULDIV64 + + #define SI_TYPE_SIZE 32 +@@ -93,4 +90,3 @@ __muldi3 (DItype u, DItype v) + + return w.ll; + } +-EXPORT_SYMBOL(__muldi3); +diff --git a/arch/m68k/lib/mulsi3.S b/arch/m68k/lib/mulsi3.S +index 855675e69a8a..c39ad4e738e9 100644 +--- a/arch/m68k/lib/mulsi3.S ++++ b/arch/m68k/lib/mulsi3.S +@@ -32,7 +32,7 @@ General Public License for more details. */ + Some of this code comes from MINIX, via the folks at ericsson. + D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 + */ +-#include ++ + /* These are predefined by new versions of GNU cpp. */ + + #ifndef __USER_LABEL_PREFIX__ +@@ -102,4 +102,4 @@ SYM (__mulsi3): + addl d1, d0 + + rts +- EXPORT_SYMBOL(__mulsi3) ++ +diff --git a/arch/m68k/lib/udivsi3.S b/arch/m68k/lib/udivsi3.S +index 78440ae513bf..35a5446572a5 100644 +--- a/arch/m68k/lib/udivsi3.S ++++ b/arch/m68k/lib/udivsi3.S +@@ -32,7 +32,7 @@ General Public License for more details. */ + Some of this code comes from MINIX, via the folks at ericsson. + D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 + */ +-#include ++ + /* These are predefined by new versions of GNU cpp. */ + + #ifndef __USER_LABEL_PREFIX__ +@@ -154,4 +154,4 @@ L2: subql IMM (1),d4 + unlk a6 | and return + rts + #endif /* __mcf5200__ || __mcoldfire__ */ +- EXPORT_SYMBOL(__udivsi3) ++ +diff --git a/arch/m68k/lib/umodsi3.S b/arch/m68k/lib/umodsi3.S +index b6fd11f58948..099da514a8fd 100644 +--- a/arch/m68k/lib/umodsi3.S ++++ b/arch/m68k/lib/umodsi3.S +@@ -32,7 +32,7 @@ General Public License for more details. */ + Some of this code comes from MINIX, via the folks at ericsson. + D. V. Henkel-Wallace (gumby@cygnus.com) Fete Bastille, 1992 + */ +-#include ++ + /* These are predefined by new versions of GNU cpp. */ + + #ifndef __USER_LABEL_PREFIX__ +@@ -105,4 +105,4 @@ SYM (__umodsi3): + subl d0, d1 /* d1 = a - (a/b)*b */ + movel d1, d0 + rts +- EXPORT_SYMBOL(__umodsi3) ++ diff --git a/patches/bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch b/patches/bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch new file mode 100644 index 00000000000..be736e5593d --- /dev/null +++ b/patches/bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch @@ -0,0 +1,27 @@ +From: Ben Hutchings +Date: Fri, 2 Dec 2016 01:26:54 +0000 +Subject: powerpc: Fix missing CRCs, add yet more asm-prototypes.h declarations +Forwarded: https://lkml.kernel.org/r/20161202023837.GK2697@decadent.org.uk + +Add declarations for: +- __mfdcr, __mtdcr (if CONFIG_PPC_DCR_NATIVE=y; through ) +- switch_mmu_context (if CONFIG_PPC_BOOK3S_64=n; through ) + +Signed-off-by: Ben Hutchings +--- + arch/powerpc/include/asm/asm-prototypes.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/powerpc/include/asm/asm-prototypes.h b/arch/powerpc/include/asm/asm-prototypes.h +index e0baba1535e6..ba0225ff38f8 100644 +--- a/arch/powerpc/include/asm/asm-prototypes.h ++++ b/arch/powerpc/include/asm/asm-prototypes.h +@@ -18,6 +18,8 @@ + #include + #include + #include ++#include ++#include + + #include + diff --git a/patches/bugfix/powerpc/powerpc-remove-mac-on-linux-hooks.patch b/patches/bugfix/powerpc/powerpc-remove-mac-on-linux-hooks.patch new file mode 100644 index 00000000000..7b23343e992 --- /dev/null +++ b/patches/bugfix/powerpc/powerpc-remove-mac-on-linux-hooks.patch @@ -0,0 +1,53 @@ +From: Ben Hutchings +Date: Fri, 2 Dec 2016 02:27:50 +0000 +Subject: powerpc: Remove Mac-on-Linux hooks +Forwarded: https://lkml.kernel.org/r/20161202023552.GJ2697@decadent.org.uk + +The symbols exported for use by MOL aren't getting CRCs and I was +about to fix that. But MOL is dead upstream, and the latest work on +it was to make it use KVM instead of its own kernel module. So remove +them instead. + +Signed-off-by: Ben Hutchings +--- + arch/powerpc/kernel/head_32.S | 7 +------ + arch/powerpc/mm/hash_low_32.S | 1 - + 2 files changed, 1 insertion(+), 7 deletions(-) + +diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S +index 9d963547d243..87998430cd9b 100644 +--- a/arch/powerpc/kernel/head_32.S ++++ b/arch/powerpc/kernel/head_32.S +@@ -735,11 +735,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_NEED_DTLB_SW_LRU) + EXCEPTION(0x2c00, Trap_2c, unknown_exception, EXC_XFER_EE) + EXCEPTION(0x2d00, Trap_2d, unknown_exception, EXC_XFER_EE) + EXCEPTION(0x2e00, Trap_2e, unknown_exception, EXC_XFER_EE) +- EXCEPTION(0x2f00, MOLTrampoline, unknown_exception, EXC_XFER_EE_LITE) +- +- .globl mol_trampoline +- .set mol_trampoline, i0x2f00 +- EXPORT_SYMBOL(mol_trampoline) ++ EXCEPTION(0x2f00, Trap_2f, unknown_exception, EXC_XFER_EE) + + . = 0x3000 + +@@ -1289,7 +1285,6 @@ intercept_table: + .long 0, 0, 0, 0, 0, 0, 0, 0 + .long 0, 0, 0, 0, 0, 0, 0, 0 + .long 0, 0, 0, 0, 0, 0, 0, 0 +-EXPORT_SYMBOL(intercept_table) + + /* Room for two PTE pointers, usually the kernel and current user pointers + * to their respective root page table. +diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S +index 09cc50c8dace..cddf14f60bf3 100644 +--- a/arch/powerpc/mm/hash_low_32.S ++++ b/arch/powerpc/mm/hash_low_32.S +@@ -34,7 +34,6 @@ + .globl mmu_hash_lock + mmu_hash_lock: + .space 4 +-EXPORT_SYMBOL(mmu_hash_lock) + #endif /* CONFIG_SMP */ + + /* diff --git a/patches/bugfix/s390/revert-s390-move-exports-to-definitions.patch b/patches/bugfix/s390/revert-s390-move-exports-to-definitions.patch new file mode 100644 index 00000000000..75cf4be0b3b --- /dev/null +++ b/patches/bugfix/s390/revert-s390-move-exports-to-definitions.patch @@ -0,0 +1,141 @@ +From: Ben Hutchings +Date: Thu, 1 Dec 2016 23:13:38 +0000 +Subject: Revert "s390: move exports to definitions" +Forwarded: not-needed + +This reverts commit 711f5df7bf3ae7657e15edf76d671042c051ce95 because +symbols exported from assembly don't automatically get modversions (ABI +hashes). +--- + arch/s390/include/asm/Kbuild | 1 - + arch/s390/kernel/Makefile | 2 +- + arch/s390/kernel/entry.S | 6 ------ + arch/s390/kernel/mcount.S | 3 --- + arch/s390/kernel/s390_ksyms.c | 15 +++++++++++++++ + arch/s390/lib/mem.S | 3 --- + 6 files changed, 16 insertions(+), 14 deletions(-) + create mode 100644 arch/s390/kernel/s390_ksyms.c + +diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild +index 20f196b82a6e..9043d2e1e2ae 100644 +--- a/arch/s390/include/asm/Kbuild ++++ b/arch/s390/include/asm/Kbuild +@@ -1,7 +1,6 @@ + + + generic-y += clkdev.h +-generic-y += export.h + generic-y += irq_work.h + generic-y += mcs_spinlock.h + generic-y += mm-arch-hooks.h +diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile +index 1f0fe98f6db9..72ccc41444dc 100644 +--- a/arch/s390/kernel/Makefile ++++ b/arch/s390/kernel/Makefile +@@ -61,7 +61,7 @@ obj-y += entry.o reipl.o relocate_kernel.o + + extra-y += head.o head64.o vmlinux.lds + +-obj-$(CONFIG_MODULES) += module.o ++obj-$(CONFIG_MODULES) += s390_ksyms.o module.o + obj-$(CONFIG_SMP) += smp.o + obj-$(CONFIG_SCHED_TOPOLOGY) += topology.o + obj-$(CONFIG_HIBERNATION) += suspend.o swsusp.o +diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S +index 49a30737adde..c51650a1ed16 100644 +--- a/arch/s390/kernel/entry.S ++++ b/arch/s390/kernel/entry.S +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + + __PT_R0 = __PT_GPRS + __PT_R1 = __PT_GPRS + 8 +@@ -260,8 +259,6 @@ sie_exit: + + EX_TABLE(.Lrewind_pad,.Lsie_fault) + EX_TABLE(sie_exit,.Lsie_fault) +-EXPORT_SYMBOL(sie64a) +-EXPORT_SYMBOL(sie_exit) + #endif + + /* +@@ -828,9 +825,6 @@ ENTRY(save_fpu_regs) + oi __LC_CPU_FLAGS+7,_CIF_FPU + br %r14 + .Lsave_fpu_regs_end: +-#if IS_ENABLED(CONFIG_KVM) +-EXPORT_SYMBOL(save_fpu_regs) +-#endif + + /* + * Load floating-point controls and floating-point or vector registers. +diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S +index 9a17e4475d27..e499370fbccb 100644 +--- a/arch/s390/kernel/mcount.S ++++ b/arch/s390/kernel/mcount.S +@@ -9,7 +9,6 @@ + #include + #include + #include +-#include + + .section .kprobes.text, "ax" + +@@ -24,8 +23,6 @@ ENTRY(ftrace_stub) + ENTRY(_mcount) + br %r14 + +-EXPORT_SYMBOL(_mcount) +- + ENTRY(ftrace_caller) + .globl ftrace_regs_caller + .set ftrace_regs_caller,ftrace_caller +diff --git a/arch/s390/kernel/s390_ksyms.c b/arch/s390/kernel/s390_ksyms.c +new file mode 100644 +index 000000000000..e67453b73c3c +--- /dev/null ++++ b/arch/s390/kernel/s390_ksyms.c +@@ -0,0 +1,15 @@ ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_FUNCTION_TRACER ++EXPORT_SYMBOL(_mcount); ++#endif ++#if IS_ENABLED(CONFIG_KVM) ++EXPORT_SYMBOL(sie64a); ++EXPORT_SYMBOL(sie_exit); ++EXPORT_SYMBOL(save_fpu_regs); ++#endif ++EXPORT_SYMBOL(memcpy); ++EXPORT_SYMBOL(memset); +diff --git a/arch/s390/lib/mem.S b/arch/s390/lib/mem.S +index be9fa65bfac4..c6d553e85ab1 100644 +--- a/arch/s390/lib/mem.S ++++ b/arch/s390/lib/mem.S +@@ -5,7 +5,6 @@ + */ + + #include +-#include + + /* + * memset implementation +@@ -61,7 +60,6 @@ ENTRY(memset) + xc 0(1,%r1),0(%r1) + .Lmemset_mvc: + mvc 1(1,%r1),0(%r1) +-EXPORT_SYMBOL(memset) + + /* + * memcpy implementation +@@ -88,4 +86,3 @@ ENTRY(memcpy) + j .Lmemcpy_rest + .Lmemcpy_mvc: + mvc 0(1,%r1),0(%r3) +-EXPORT_SYMBOL(memcpy) diff --git a/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch b/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch new file mode 100644 index 00000000000..59f634c8d09 --- /dev/null +++ b/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch @@ -0,0 +1,1291 @@ +From: Ben Hutchings +Date: Thu, 12 Jan 2017 00:08:36 +0000 +Subject: Revert "sparc: move exports to definitions" +Forwarded: not-needed + +This reverts commit d3867f0483103b8ff7edfdea3ef1981c03d96891 because +symbols exported from assembly don't automatically get modversions (ABI +hashes). + +Commit 70a6fcf3283a "[sparc] unify 32bit and 64bit string.h" removed +the export of __memmove; don't try to export it again. It also +completely disabled declaration of prototypes of memscan, memcpy and +memset, which are defined as macros. gcc will still generate implicit +calls to memcpy and memset, so restore both exports and prototypes for +them. Don't restore the export of memscan. + +Commit aa95ce361ed9 "sparc64: Delete __ret_efault." did what it says; +don't try to export that symbol. +--- + arch/sparc/include/asm/Kbuild | 1 - + arch/sparc/kernel/Makefile | 2 +- + arch/sparc/kernel/entry.S | 3 - + arch/sparc/kernel/head_32.S | 3 - + arch/sparc/kernel/head_64.S | 6 +- + arch/sparc/kernel/helpers.S | 2 - + arch/sparc/kernel/hvcalls.S | 5 -- + arch/sparc/kernel/sparc_ksyms.c | 12 --- + arch/sparc/kernel/sparc_ksyms_32.c | 31 +++++++ + arch/sparc/kernel/sparc_ksyms_64.c | 52 +++++++++++ + arch/sparc/lib/Makefile | 1 + + arch/sparc/lib/U1memcpy.S | 2 - + arch/sparc/lib/VISsave.S | 2 - + arch/sparc/lib/ashldi3.S | 2 - + arch/sparc/lib/ashrdi3.S | 2 - + arch/sparc/lib/atomic_64.S | 16 +--- + arch/sparc/lib/bitops.S | 7 -- + arch/sparc/lib/blockops.S | 3 - + arch/sparc/lib/bzero.S | 4 - + arch/sparc/lib/checksum_32.S | 3 - + arch/sparc/lib/checksum_64.S | 2 - + arch/sparc/lib/clear_page.S | 3 - + arch/sparc/lib/copy_in_user.S | 2 - + arch/sparc/lib/copy_page.S | 2 - + arch/sparc/lib/copy_user.S | 2 - + arch/sparc/lib/csum_copy.S | 3 - + arch/sparc/lib/divdi3.S | 2 - + arch/sparc/lib/ffs.S | 3 - + arch/sparc/lib/hweight.S | 5 -- + arch/sparc/lib/ipcsum.S | 2 - + arch/sparc/lib/ksyms.c | 173 +++++++++++++++++++++++++++++++++++++ + arch/sparc/lib/locks.S | 5 -- + arch/sparc/lib/lshrdi3.S | 2 - + arch/sparc/lib/mcount.S | 2 - + arch/sparc/lib/memcmp.S | 2 - + arch/sparc/lib/memcpy.S | 3 - + arch/sparc/lib/memmove.S | 2 - + arch/sparc/lib/memscan_32.S | 4 - + arch/sparc/lib/memscan_64.S | 4 - + arch/sparc/lib/memset.S | 3 - + arch/sparc/lib/muldi3.S | 2 - + arch/sparc/lib/strlen.S | 2 - + arch/sparc/lib/strncmp_32.S | 2 - + arch/sparc/lib/strncmp_64.S | 2 - + arch/sparc/lib/xor.S | 9 -- + 45 files changed, 263 insertions(+), 139 deletions(-) + delete mode 100644 arch/sparc/kernel/sparc_ksyms.c + create mode 100644 arch/sparc/kernel/sparc_ksyms_32.c + create mode 100644 arch/sparc/kernel/sparc_ksyms_64.c + create mode 100644 arch/sparc/lib/ksyms.c + +--- a/arch/sparc/include/asm/Kbuild ++++ b/arch/sparc/include/asm/Kbuild +@@ -6,7 +6,6 @@ generic-y += cputime.h + generic-y += div64.h + generic-y += emergency-restart.h + generic-y += exec.h +-generic-y += export.h + generic-y += irq_regs.h + generic-y += irq_work.h + generic-y += linkage.h +--- a/arch/sparc/kernel/Makefile ++++ b/arch/sparc/kernel/Makefile +@@ -86,7 +86,7 @@ obj-y += auxio_$(BIT + obj-$(CONFIG_SUN_PM) += apc.o pmc.o + + obj-$(CONFIG_MODULES) += module.o +-obj-$(CONFIG_MODULES) += sparc_ksyms.o ++obj-$(CONFIG_MODULES) += sparc_ksyms_$(BITS).o + obj-$(CONFIG_SPARC_LED) += led.o + obj-$(CONFIG_KGDB) += kgdb_$(BITS).o + +--- a/arch/sparc/kernel/entry.S ++++ b/arch/sparc/kernel/entry.S +@@ -29,7 +29,6 @@ + #include + + #include +-#include + + #define curptr g6 + +@@ -1208,8 +1207,6 @@ delay_continue: + + ret + restore +-EXPORT_SYMBOL(__udelay) +-EXPORT_SYMBOL(__ndelay) + + /* Handle a software breakpoint */ + /* We have to inform parent that child has stopped */ +--- a/arch/sparc/kernel/head_32.S ++++ b/arch/sparc/kernel/head_32.S +@@ -24,7 +24,6 @@ + #include /* TI_UWINMASK */ + #include + #include /* SRMMU_PGDIR_SHIFT */ +-#include + + .data + /* The following are used with the prom_vector node-ops to figure out +@@ -61,7 +60,6 @@ sun4e_notsup: + */ + .globl empty_zero_page + empty_zero_page: .skip PAGE_SIZE +-EXPORT_SYMBOL(empty_zero_page) + + .global root_flags + .global ram_flags +@@ -815,4 +813,3 @@ lvl14_save: + __ret_efault: + ret + restore %g0, -EFAULT, %o0 +-EXPORT_SYMBOL(__ret_efault) +--- a/arch/sparc/kernel/head_64.S ++++ b/arch/sparc/kernel/head_64.S +@@ -32,8 +32,7 @@ + #include + #include + #include +-#include +- ++ + /* This section from from _start to sparc64_boot_end should fit into + * 0x0000000000404000 to 0x0000000000408000. + */ +@@ -144,7 +143,6 @@ prom_cpu_compatible: + .skip 64 + prom_root_node: + .word 0 +-EXPORT_SYMBOL(prom_root_node) + prom_mmu_ihandle_cache: + .word 0 + prom_boot_mapped_pc: +@@ -160,7 +158,6 @@ is_sun4v: + .word 0 + sun4v_chip_type: + .word SUN4V_CHIP_INVALID +-EXPORT_SYMBOL(sun4v_chip_type) + 1: + rd %pc, %l0 + +@@ -923,7 +920,6 @@ swapper_4m_tsb: + .globl prom_tba, tlb_type + prom_tba: .xword 0 + tlb_type: .word 0 /* Must NOT end up in BSS */ +-EXPORT_SYMBOL(tlb_type) + .section ".fixup",#alloc,#execinstr + + ENTRY(__retl_efault) +--- a/arch/sparc/kernel/helpers.S ++++ b/arch/sparc/kernel/helpers.S +@@ -15,7 +15,6 @@ __flushw_user: + 2: retl + nop + .size __flushw_user,.-__flushw_user +-EXPORT_SYMBOL(__flushw_user) + + /* Flush %fp and %i7 to the stack for all register + * windows active inside of the cpu. This allows +@@ -62,4 +61,3 @@ real_hard_smp_processor_id: + .size hard_smp_processor_id,.-hard_smp_processor_id + #endif + .size real_hard_smp_processor_id,.-real_hard_smp_processor_id +-EXPORT_SYMBOL_GPL(real_hard_smp_processor_id) +--- a/arch/sparc/kernel/hvcalls.S ++++ b/arch/sparc/kernel/hvcalls.S +@@ -343,7 +343,6 @@ ENTRY(sun4v_mach_set_watchdog) + 0: retl + nop + ENDPROC(sun4v_mach_set_watchdog) +-EXPORT_SYMBOL(sun4v_mach_set_watchdog) + + /* No inputs and does not return. */ + ENTRY(sun4v_mach_sir) +@@ -777,7 +776,6 @@ ENTRY(sun4v_niagara_getperf) + retl + nop + ENDPROC(sun4v_niagara_getperf) +-EXPORT_SYMBOL(sun4v_niagara_getperf) + + ENTRY(sun4v_niagara_setperf) + mov HV_FAST_SET_PERFREG, %o5 +@@ -785,7 +783,6 @@ ENTRY(sun4v_niagara_setperf) + retl + nop + ENDPROC(sun4v_niagara_setperf) +-EXPORT_SYMBOL(sun4v_niagara_setperf) + + ENTRY(sun4v_niagara2_getperf) + mov %o0, %o4 +@@ -795,7 +792,6 @@ ENTRY(sun4v_niagara2_getperf) + retl + nop + ENDPROC(sun4v_niagara2_getperf) +-EXPORT_SYMBOL(sun4v_niagara2_getperf) + + ENTRY(sun4v_niagara2_setperf) + mov HV_FAST_N2_SET_PERFREG, %o5 +@@ -803,7 +799,6 @@ ENTRY(sun4v_niagara2_setperf) + retl + nop + ENDPROC(sun4v_niagara2_setperf) +-EXPORT_SYMBOL(sun4v_niagara2_setperf) + + ENTRY(sun4v_reboot_data_set) + mov HV_FAST_REBOOT_DATA_SET, %o5 +--- a/arch/sparc/kernel/sparc_ksyms.c ++++ /dev/null +@@ -1,12 +0,0 @@ +-/* +- * arch/sparc/kernel/ksyms.c: Sparc specific ksyms support. +- * +- * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) +- * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) +- */ +- +-#include +-#include +- +-/* This is needed only for drivers/sbus/char/openprom.c */ +-EXPORT_SYMBOL(saved_command_line); +--- /dev/null ++++ b/arch/sparc/kernel/sparc_ksyms_32.c +@@ -0,0 +1,31 @@ ++/* ++ * arch/sparc/kernel/ksyms.c: Sparc specific ksyms support. ++ * ++ * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) ++ * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++struct poll { ++ int fd; ++ short events; ++ short revents; ++}; ++ ++/* from entry.S */ ++EXPORT_SYMBOL(__udelay); ++EXPORT_SYMBOL(__ndelay); ++ ++/* from head_32.S */ ++EXPORT_SYMBOL(__ret_efault); ++EXPORT_SYMBOL(empty_zero_page); ++ ++/* Exporting a symbol from /init/main.c */ ++EXPORT_SYMBOL(saved_command_line); +--- /dev/null ++++ b/arch/sparc/kernel/sparc_ksyms_64.c +@@ -0,0 +1,52 @@ ++/* arch/sparc64/kernel/sparc64_ksyms.c: Sparc64 specific ksyms support. ++ * ++ * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net) ++ * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) ++ * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct poll { ++ int fd; ++ short events; ++ short revents; ++}; ++ ++/* from helpers.S */ ++EXPORT_SYMBOL(__flushw_user); ++EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); ++ ++/* from head_64.S */ ++EXPORT_SYMBOL(tlb_type); ++EXPORT_SYMBOL(sun4v_chip_type); ++EXPORT_SYMBOL(prom_root_node); ++ ++/* from hvcalls.S */ ++EXPORT_SYMBOL(sun4v_niagara_getperf); ++EXPORT_SYMBOL(sun4v_niagara_setperf); ++EXPORT_SYMBOL(sun4v_niagara2_getperf); ++EXPORT_SYMBOL(sun4v_niagara2_setperf); ++EXPORT_SYMBOL(sun4v_mach_set_watchdog); ++ ++/* from hweight.S */ ++EXPORT_SYMBOL(__arch_hweight8); ++EXPORT_SYMBOL(__arch_hweight16); ++EXPORT_SYMBOL(__arch_hweight32); ++EXPORT_SYMBOL(__arch_hweight64); ++ ++/* from ffs_ffz.S */ ++EXPORT_SYMBOL(ffs); ++EXPORT_SYMBOL(__ffs); ++ ++/* Exporting a symbol from /init/main.c */ ++EXPORT_SYMBOL(saved_command_line); +--- a/arch/sparc/lib/Makefile ++++ b/arch/sparc/lib/Makefile +@@ -43,4 +43,5 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum + + obj-$(CONFIG_SPARC64) += iomap.o + obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o ++obj-y += ksyms.o + obj-$(CONFIG_SPARC64) += PeeCeeI.o +--- a/arch/sparc/lib/U1memcpy.S ++++ b/arch/sparc/lib/U1memcpy.S +@@ -8,7 +8,6 @@ + #include + #include + #include +-#include + #define GLOBAL_SPARE g7 + #else + #define GLOBAL_SPARE g5 +@@ -681,4 +680,3 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len + mov EX_RETVAL(%o4), %o0 + + .size FUNC_NAME, .-FUNC_NAME +-EXPORT_SYMBOL(FUNC_NAME) +--- a/arch/sparc/lib/VISsave.S ++++ b/arch/sparc/lib/VISsave.S +@@ -13,7 +13,6 @@ + #include + #include + #include +-#include + + /* On entry: %o5=current FPRS value, %g7 is callers address */ + /* May clobber %o5, %g1, %g2, %g3, %g7, %icc, %xcc */ +@@ -80,4 +79,3 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3 + 80: jmpl %g7 + %g0, %g0 + nop + ENDPROC(VISenter) +-EXPORT_SYMBOL(VISenter) +--- a/arch/sparc/lib/ashldi3.S ++++ b/arch/sparc/lib/ashldi3.S +@@ -6,7 +6,6 @@ + */ + + #include +-#include + + .text + ENTRY(__ashldi3) +@@ -34,4 +33,3 @@ ENTRY(__ashldi3) + retl + nop + ENDPROC(__ashldi3) +-EXPORT_SYMBOL(__ashldi3) +--- a/arch/sparc/lib/ashrdi3.S ++++ b/arch/sparc/lib/ashrdi3.S +@@ -6,7 +6,6 @@ + */ + + #include +-#include + + .text + ENTRY(__ashrdi3) +@@ -36,4 +35,3 @@ ENTRY(__ashrdi3) + jmpl %o7 + 8, %g0 + nop + ENDPROC(__ashrdi3) +-EXPORT_SYMBOL(__ashrdi3) +--- a/arch/sparc/lib/atomic_64.S ++++ b/arch/sparc/lib/atomic_64.S +@@ -6,7 +6,6 @@ + #include + #include + #include +-#include + + .text + +@@ -30,7 +29,6 @@ ENTRY(atomic_##op) /* %o0 = increment, % + nop; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ + ENDPROC(atomic_##op); \ +-EXPORT_SYMBOL(atomic_##op); + + #define ATOMIC_OP_RETURN(op) \ + ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \ +@@ -44,8 +42,7 @@ ENTRY(atomic_##op##_return) /* %o0 = inc + retl; \ + sra %g1, 0, %o0; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ +-ENDPROC(atomic_##op##_return); \ +-EXPORT_SYMBOL(atomic_##op##_return); ++ENDPROC(atomic_##op##_return); + + #define ATOMIC_FETCH_OP(op) \ + ENTRY(atomic_fetch_##op) /* %o0 = increment, %o1 = atomic_ptr */ \ +@@ -59,8 +56,7 @@ ENTRY(atomic_fetch_##op) /* %o0 = increm + retl; \ + sra %g1, 0, %o0; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ +-ENDPROC(atomic_fetch_##op); \ +-EXPORT_SYMBOL(atomic_fetch_##op); ++ENDPROC(atomic_fetch_##op); + + #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op) ATOMIC_FETCH_OP(op) + +@@ -92,7 +88,6 @@ ENTRY(atomic64_##op) /* %o0 = increment, + nop; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ + ENDPROC(atomic64_##op); \ +-EXPORT_SYMBOL(atomic64_##op); + + #define ATOMIC64_OP_RETURN(op) \ + ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \ +@@ -106,8 +101,7 @@ ENTRY(atomic64_##op##_return) /* %o0 = i + retl; \ + op %g1, %o0, %o0; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ +-ENDPROC(atomic64_##op##_return); \ +-EXPORT_SYMBOL(atomic64_##op##_return); ++ENDPROC(atomic64_##op##_return); + + #define ATOMIC64_FETCH_OP(op) \ + ENTRY(atomic64_fetch_##op) /* %o0 = increment, %o1 = atomic_ptr */ \ +@@ -121,8 +115,7 @@ ENTRY(atomic64_fetch_##op) /* %o0 = incr + retl; \ + mov %g1, %o0; \ + 2: BACKOFF_SPIN(%o2, %o3, 1b); \ +-ENDPROC(atomic64_fetch_##op); \ +-EXPORT_SYMBOL(atomic64_fetch_##op); ++ENDPROC(atomic64_fetch_##op); + + #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op) + +@@ -154,4 +147,3 @@ ENTRY(atomic64_dec_if_positive) /* %o0 = + sub %g1, 1, %o0 + 2: BACKOFF_SPIN(%o2, %o3, 1b) + ENDPROC(atomic64_dec_if_positive) +-EXPORT_SYMBOL(atomic64_dec_if_positive) +--- a/arch/sparc/lib/bitops.S ++++ b/arch/sparc/lib/bitops.S +@@ -6,7 +6,6 @@ + #include + #include + #include +-#include + + .text + +@@ -30,7 +29,6 @@ ENTRY(test_and_set_bit) /* %o0=nr, %o1=a + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(test_and_set_bit) +-EXPORT_SYMBOL(test_and_set_bit) + + ENTRY(test_and_clear_bit) /* %o0=nr, %o1=addr */ + BACKOFF_SETUP(%o3) +@@ -52,7 +50,6 @@ ENTRY(test_and_clear_bit) /* %o0=nr, %o1 + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(test_and_clear_bit) +-EXPORT_SYMBOL(test_and_clear_bit) + + ENTRY(test_and_change_bit) /* %o0=nr, %o1=addr */ + BACKOFF_SETUP(%o3) +@@ -74,7 +71,6 @@ ENTRY(test_and_change_bit) /* %o0=nr, %o + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(test_and_change_bit) +-EXPORT_SYMBOL(test_and_change_bit) + + ENTRY(set_bit) /* %o0=nr, %o1=addr */ + BACKOFF_SETUP(%o3) +@@ -94,7 +90,6 @@ ENTRY(set_bit) /* %o0=nr, %o1=addr */ + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(set_bit) +-EXPORT_SYMBOL(set_bit) + + ENTRY(clear_bit) /* %o0=nr, %o1=addr */ + BACKOFF_SETUP(%o3) +@@ -114,7 +109,6 @@ ENTRY(clear_bit) /* %o0=nr, %o1=addr */ + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(clear_bit) +-EXPORT_SYMBOL(clear_bit) + + ENTRY(change_bit) /* %o0=nr, %o1=addr */ + BACKOFF_SETUP(%o3) +@@ -134,4 +128,3 @@ ENTRY(change_bit) /* %o0=nr, %o1=addr */ + nop + 2: BACKOFF_SPIN(%o3, %o4, 1b) + ENDPROC(change_bit) +-EXPORT_SYMBOL(change_bit) +--- a/arch/sparc/lib/blockops.S ++++ b/arch/sparc/lib/blockops.S +@@ -6,7 +6,6 @@ + + #include + #include +-#include + + /* Zero out 64 bytes of memory at (buf + offset). + * Assumes %g1 contains zero. +@@ -65,7 +64,6 @@ ENTRY(bzero_1page) + retl + nop + ENDPROC(bzero_1page) +-EXPORT_SYMBOL(bzero_1page) + + ENTRY(__copy_1page) + /* NOTE: If you change the number of insns of this routine, please check +@@ -89,4 +87,3 @@ ENTRY(__copy_1page) + retl + nop + ENDPROC(__copy_1page) +-EXPORT_SYMBOL(__copy_1page) +--- a/arch/sparc/lib/bzero.S ++++ b/arch/sparc/lib/bzero.S +@@ -5,7 +5,6 @@ + */ + + #include +-#include + + .text + +@@ -79,8 +78,6 @@ __bzero_done: + mov %o3, %o0 + ENDPROC(__bzero) + ENDPROC(memset) +-EXPORT_SYMBOL(__bzero) +-EXPORT_SYMBOL(memset) + + #define EX_ST(x,y) \ + 98: x,y; \ +@@ -146,4 +143,3 @@ __clear_user_done: + retl + clr %o0 + ENDPROC(__clear_user) +-EXPORT_SYMBOL(__clear_user) +--- a/arch/sparc/lib/checksum_32.S ++++ b/arch/sparc/lib/checksum_32.S +@@ -14,7 +14,6 @@ + */ + + #include +-#include + + #define CSUM_BIGCHUNK(buf, offset, sum, t0, t1, t2, t3, t4, t5) \ + ldd [buf + offset + 0x00], t0; \ +@@ -105,7 +104,6 @@ csum_partial_fix_alignment: + * buffer of size 0x20. Follow the code path for that case. + */ + .globl csum_partial +- EXPORT_SYMBOL(csum_partial) + csum_partial: /* %o0=buf, %o1=len, %o2=sum */ + andcc %o0, 0x7, %g0 ! alignment problems? + bne csum_partial_fix_alignment ! yep, handle it +@@ -337,7 +335,6 @@ cc_dword_align: + */ + .align 8 + .globl __csum_partial_copy_sparc_generic +- EXPORT_SYMBOL(__csum_partial_copy_sparc_generic) + __csum_partial_copy_sparc_generic: + /* %o0=src, %o1=dest, %g1=len, %g7=sum */ + xor %o0, %o1, %o4 ! get changing bits +--- a/arch/sparc/lib/checksum_64.S ++++ b/arch/sparc/lib/checksum_64.S +@@ -13,7 +13,6 @@ + * BSD4.4 portable checksum routine + */ + +-#include + .text + + csum_partial_fix_alignment: +@@ -38,7 +37,6 @@ csum_partial_fix_alignment: + + .align 32 + .globl csum_partial +- EXPORT_SYMBOL(csum_partial) + csum_partial: /* %o0=buff, %o1=len, %o2=sum */ + prefetch [%o0 + 0x000], #n_reads + clr %o4 +--- a/arch/sparc/lib/clear_page.S ++++ b/arch/sparc/lib/clear_page.S +@@ -10,7 +10,6 @@ + #include + #include + #include +-#include + + /* What we used to do was lock a TLB entry into a specific + * TLB slot, clear the page with interrupts disabled, then +@@ -27,7 +26,6 @@ + .text + + .globl _clear_page +- EXPORT_SYMBOL(_clear_page) + _clear_page: /* %o0=dest */ + ba,pt %xcc, clear_page_common + clr %o4 +@@ -37,7 +35,6 @@ _clear_page: /* %o0=dest */ + */ + .align 32 + .globl clear_user_page +- EXPORT_SYMBOL(clear_user_page) + clear_user_page: /* %o0=dest, %o1=vaddr */ + lduw [%g6 + TI_PRE_COUNT], %o2 + sethi %hi(PAGE_OFFSET), %g2 +--- a/arch/sparc/lib/copy_in_user.S ++++ b/arch/sparc/lib/copy_in_user.S +@@ -5,7 +5,6 @@ + + #include + #include +-#include + + #define XCC xcc + +@@ -106,4 +105,3 @@ ENTRY(___copy_in_user) /* %o0=dst, %o1=s + retl + clr %o0 + ENDPROC(___copy_in_user) +-EXPORT_SYMBOL(___copy_in_user) +--- a/arch/sparc/lib/copy_page.S ++++ b/arch/sparc/lib/copy_page.S +@@ -10,7 +10,6 @@ + #include + #include + #include +-#include + + /* What we used to do was lock a TLB entry into a specific + * TLB slot, clear the page with interrupts disabled, then +@@ -45,7 +44,6 @@ + .align 32 + .globl copy_user_page + .type copy_user_page,#function +- EXPORT_SYMBOL(copy_user_page) + copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ + lduw [%g6 + TI_PRE_COUNT], %o4 + sethi %hi(PAGE_OFFSET), %g2 +--- a/arch/sparc/lib/copy_user.S ++++ b/arch/sparc/lib/copy_user.S +@@ -15,7 +15,6 @@ + #include + #include + #include +-#include + + /* Work around cpp -rob */ + #define ALLOC #alloc +@@ -120,7 +119,6 @@ + __copy_user_begin: + + .globl __copy_user +- EXPORT_SYMBOL(__copy_user) + dword_align: + andcc %o1, 1, %g0 + be 4f +--- a/arch/sparc/lib/csum_copy.S ++++ b/arch/sparc/lib/csum_copy.S +@@ -3,8 +3,6 @@ + * Copyright (C) 2005 David S. Miller + */ + +-#include +- + #ifdef __KERNEL__ + #define GLOBAL_SPARE %g7 + #else +@@ -65,7 +63,6 @@ + add %o5, %o4, %o4 + + .globl FUNC_NAME +- EXPORT_SYMBOL(FUNC_NAME) + FUNC_NAME: /* %o0=src, %o1=dst, %o2=len, %o3=sum */ + LOAD(prefetch, %o0 + 0x000, #n_reads) + xor %o0, %o1, %g1 +--- a/arch/sparc/lib/divdi3.S ++++ b/arch/sparc/lib/divdi3.S +@@ -17,7 +17,6 @@ along with GNU CC; see the file COPYING. + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +-#include + .text + .align 4 + .globl __divdi3 +@@ -280,4 +279,3 @@ __divdi3: + .LL81: + ret + restore +-EXPORT_SYMBOL(__divdi3) +--- a/arch/sparc/lib/ffs.S ++++ b/arch/sparc/lib/ffs.S +@@ -1,5 +1,4 @@ + #include +-#include + + .register %g2,#scratch + +@@ -66,8 +65,6 @@ ENTRY(__ffs) + add %o2, %g1, %o0 + ENDPROC(ffs) + ENDPROC(__ffs) +-EXPORT_SYMBOL(__ffs) +-EXPORT_SYMBOL(ffs) + + .section .popc_6insn_patch, "ax" + .word ffs +--- a/arch/sparc/lib/hweight.S ++++ b/arch/sparc/lib/hweight.S +@@ -1,5 +1,4 @@ + #include +-#include + + .text + .align 32 +@@ -8,7 +7,6 @@ ENTRY(__arch_hweight8) + nop + nop + ENDPROC(__arch_hweight8) +-EXPORT_SYMBOL(__arch_hweight8) + .section .popc_3insn_patch, "ax" + .word __arch_hweight8 + sllx %o0, 64-8, %g1 +@@ -21,7 +19,6 @@ ENTRY(__arch_hweight16) + nop + nop + ENDPROC(__arch_hweight16) +-EXPORT_SYMBOL(__arch_hweight16) + .section .popc_3insn_patch, "ax" + .word __arch_hweight16 + sllx %o0, 64-16, %g1 +@@ -34,7 +31,6 @@ ENTRY(__arch_hweight32) + nop + nop + ENDPROC(__arch_hweight32) +-EXPORT_SYMBOL(__arch_hweight32) + .section .popc_3insn_patch, "ax" + .word __arch_hweight32 + sllx %o0, 64-32, %g1 +@@ -47,7 +43,6 @@ ENTRY(__arch_hweight64) + nop + nop + ENDPROC(__arch_hweight64) +-EXPORT_SYMBOL(__arch_hweight64) + .section .popc_3insn_patch, "ax" + .word __arch_hweight64 + retl +--- a/arch/sparc/lib/ipcsum.S ++++ b/arch/sparc/lib/ipcsum.S +@@ -1,5 +1,4 @@ + #include +-#include + + .text + ENTRY(ip_fast_csum) /* %o0 = iph, %o1 = ihl */ +@@ -32,4 +31,3 @@ ENTRY(ip_fast_csum) /* %o0 = iph, %o1 = + retl + and %o2, %o1, %o0 + ENDPROC(ip_fast_csum) +-EXPORT_SYMBOL(ip_fast_csum) +--- /dev/null ++++ b/arch/sparc/lib/ksyms.c +@@ -0,0 +1,173 @@ ++/* ++ * Export of symbols defined in assembler ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* string functions */ ++EXPORT_SYMBOL(strlen); ++EXPORT_SYMBOL(strncmp); ++ ++/* mem* functions */ ++extern void *__memscan_zero(void *, size_t); ++extern void *__memscan_generic(void *, int, size_t); ++#undef memcpy ++extern void *memcpy(void *, const void *, size_t); ++#undef memset ++extern void *memset(void *, int, size_t); ++extern void *__bzero(void *, size_t); ++ ++EXPORT_SYMBOL(__memscan_zero); ++EXPORT_SYMBOL(__memscan_generic); ++EXPORT_SYMBOL(memcmp); ++EXPORT_SYMBOL(memcpy); ++EXPORT_SYMBOL(memset); ++EXPORT_SYMBOL(memmove); ++EXPORT_SYMBOL(__bzero); ++ ++/* Networking helper routines. */ ++EXPORT_SYMBOL(csum_partial); ++ ++#ifdef CONFIG_MCOUNT ++EXPORT_SYMBOL(_mcount); ++#endif ++ ++/* ++ * sparc ++ */ ++#ifdef CONFIG_SPARC32 ++extern int __ashrdi3(int, int); ++extern int __ashldi3(int, int); ++extern int __lshrdi3(int, int); ++extern int __muldi3(int, int); ++extern int __divdi3(int, int); ++ ++extern void (*__copy_1page)(void *, const void *); ++extern void (*bzero_1page)(void *); ++ ++extern void ___rw_read_enter(void); ++extern void ___rw_read_try(void); ++extern void ___rw_read_exit(void); ++extern void ___rw_write_enter(void); ++ ++/* Networking helper routines. */ ++EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); ++ ++/* Special internal versions of library functions. */ ++EXPORT_SYMBOL(__copy_1page); ++EXPORT_SYMBOL(bzero_1page); ++ ++/* Moving data to/from/in userspace. */ ++EXPORT_SYMBOL(__copy_user); ++ ++/* Used by asm/spinlock.h */ ++#ifdef CONFIG_SMP ++EXPORT_SYMBOL(___rw_read_enter); ++EXPORT_SYMBOL(___rw_read_try); ++EXPORT_SYMBOL(___rw_read_exit); ++EXPORT_SYMBOL(___rw_write_enter); ++#endif ++ ++EXPORT_SYMBOL(__ashrdi3); ++EXPORT_SYMBOL(__ashldi3); ++EXPORT_SYMBOL(__lshrdi3); ++EXPORT_SYMBOL(__muldi3); ++EXPORT_SYMBOL(__divdi3); ++#endif ++ ++/* ++ * sparc64 ++ */ ++#ifdef CONFIG_SPARC64 ++/* Networking helper routines. */ ++EXPORT_SYMBOL(csum_partial_copy_nocheck); ++EXPORT_SYMBOL(__csum_partial_copy_from_user); ++EXPORT_SYMBOL(__csum_partial_copy_to_user); ++EXPORT_SYMBOL(ip_fast_csum); ++ ++/* Moving data to/from/in userspace. */ ++EXPORT_SYMBOL(___copy_to_user); ++EXPORT_SYMBOL(___copy_from_user); ++EXPORT_SYMBOL(___copy_in_user); ++EXPORT_SYMBOL(__clear_user); ++ ++/* Atomic counter implementation. */ ++#define ATOMIC_OP(op) \ ++EXPORT_SYMBOL(atomic_##op); \ ++EXPORT_SYMBOL(atomic64_##op); ++ ++#define ATOMIC_OP_RETURN(op) \ ++EXPORT_SYMBOL(atomic_##op##_return); \ ++EXPORT_SYMBOL(atomic64_##op##_return); ++ ++#define ATOMIC_FETCH_OP(op) \ ++EXPORT_SYMBOL(atomic_fetch_##op); \ ++EXPORT_SYMBOL(atomic64_fetch_##op); ++ ++#define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op) ATOMIC_FETCH_OP(op) ++ ++ATOMIC_OPS(add) ++ATOMIC_OPS(sub) ++ ++#undef ATOMIC_OPS ++#define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) ++ ++ATOMIC_OPS(and) ++ATOMIC_OPS(or) ++ATOMIC_OPS(xor) ++ ++#undef ATOMIC_OPS ++#undef ATOMIC_FETCH_OP ++#undef ATOMIC_OP_RETURN ++#undef ATOMIC_OP ++ ++EXPORT_SYMBOL(atomic64_dec_if_positive); ++ ++/* Atomic bit operations. */ ++EXPORT_SYMBOL(test_and_set_bit); ++EXPORT_SYMBOL(test_and_clear_bit); ++EXPORT_SYMBOL(test_and_change_bit); ++EXPORT_SYMBOL(set_bit); ++EXPORT_SYMBOL(clear_bit); ++EXPORT_SYMBOL(change_bit); ++ ++/* Special internal versions of library functions. */ ++EXPORT_SYMBOL(_clear_page); ++EXPORT_SYMBOL(clear_user_page); ++EXPORT_SYMBOL(copy_user_page); ++ ++/* RAID code needs this */ ++void VISenter(void); ++EXPORT_SYMBOL(VISenter); ++ ++extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); ++extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *); ++extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *, unsigned long *); ++extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *, unsigned long *, unsigned long *); ++EXPORT_SYMBOL(xor_vis_2); ++EXPORT_SYMBOL(xor_vis_3); ++EXPORT_SYMBOL(xor_vis_4); ++EXPORT_SYMBOL(xor_vis_5); ++ ++extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); ++extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *); ++extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *, unsigned long *); ++extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, ++ unsigned long *, unsigned long *, unsigned long *); ++ ++EXPORT_SYMBOL(xor_niagara_2); ++EXPORT_SYMBOL(xor_niagara_3); ++EXPORT_SYMBOL(xor_niagara_4); ++EXPORT_SYMBOL(xor_niagara_5); ++#endif +--- a/arch/sparc/lib/locks.S ++++ b/arch/sparc/lib/locks.S +@@ -10,7 +10,6 @@ + #include + #include + #include +-#include + + .text + .align 4 +@@ -49,7 +48,6 @@ ___rw_write_enter_spin_on_wlock: + ld [%g1], %g2 + + .globl ___rw_read_enter +-EXPORT_SYMBOL(___rw_read_enter) + ___rw_read_enter: + orcc %g2, 0x0, %g0 + bne,a ___rw_read_enter_spin_on_wlock +@@ -61,7 +59,6 @@ ___rw_read_enter: + mov %g4, %o7 + + .globl ___rw_read_exit +-EXPORT_SYMBOL(___rw_read_exit) + ___rw_read_exit: + orcc %g2, 0x0, %g0 + bne,a ___rw_read_exit_spin_on_wlock +@@ -73,7 +70,6 @@ ___rw_read_exit: + mov %g4, %o7 + + .globl ___rw_read_try +-EXPORT_SYMBOL(___rw_read_try) + ___rw_read_try: + orcc %g2, 0x0, %g0 + bne ___rw_read_try_spin_on_wlock +@@ -85,7 +81,6 @@ ___rw_read_try: + mov %g4, %o7 + + .globl ___rw_write_enter +-EXPORT_SYMBOL(___rw_write_enter) + ___rw_write_enter: + orcc %g2, 0x0, %g0 + bne ___rw_write_enter_spin_on_wlock +--- a/arch/sparc/lib/lshrdi3.S ++++ b/arch/sparc/lib/lshrdi3.S +@@ -1,5 +1,4 @@ + #include +-#include + + ENTRY(__lshrdi3) + cmp %o2, 0 +@@ -26,4 +25,3 @@ ENTRY(__lshrdi3) + retl + nop + ENDPROC(__lshrdi3) +-EXPORT_SYMBOL(__lshrdi3) +--- a/arch/sparc/lib/mcount.S ++++ b/arch/sparc/lib/mcount.S +@@ -6,7 +6,6 @@ + */ + + #include +-#include + + /* + * This is the main variant and is called by C code. GCC's -pg option +@@ -17,7 +16,6 @@ + .align 32 + .globl _mcount + .type _mcount,#function +- EXPORT_SYMBOL(_mcount) + .globl mcount + .type mcount,#function + _mcount: +--- a/arch/sparc/lib/memcmp.S ++++ b/arch/sparc/lib/memcmp.S +@@ -6,7 +6,6 @@ + + #include + #include +-#include + + .text + ENTRY(memcmp) +@@ -26,4 +25,3 @@ ENTRY(memcmp) + 2: retl + mov 0, %o0 + ENDPROC(memcmp) +-EXPORT_SYMBOL(memcmp) +--- a/arch/sparc/lib/memcpy.S ++++ b/arch/sparc/lib/memcpy.S +@@ -7,7 +7,6 @@ + * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz) + */ + +-#include + #define FUNC(x) \ + .globl x; \ + .type x,@function; \ +@@ -63,7 +62,6 @@ x: + .align 4 + + FUNC(memmove) +-EXPORT_SYMBOL(memmove) + cmp %o0, %o1 + mov %o0, %g7 + bleu 9f +@@ -121,7 +119,6 @@ EXPORT_SYMBOL(memmove) + add %o0, 2, %o0 + + FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ +-EXPORT_SYMBOL(memcpy) + + sub %o0, %o1, %o4 + mov %o0, %g7 +--- a/arch/sparc/lib/memmove.S ++++ b/arch/sparc/lib/memmove.S +@@ -5,7 +5,6 @@ + */ + + #include +-#include + + .text + ENTRY(memmove) /* o0=dst o1=src o2=len */ +@@ -58,4 +57,3 @@ ENTRY(memmove) /* o0=dst o1=src o2=len * + stb %g7, [%o0 - 0x1] + ba,a,pt %xcc, 99b + ENDPROC(memmove) +-EXPORT_SYMBOL(memmove) +--- a/arch/sparc/lib/memscan_32.S ++++ b/arch/sparc/lib/memscan_32.S +@@ -4,8 +4,6 @@ + * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) + */ + +-#include +- + /* In essence, this is just a fancy strlen. */ + + #define LO_MAGIC 0x01010101 +@@ -15,8 +13,6 @@ + .align 4 + .globl __memscan_zero, __memscan_generic + .globl memscan +-EXPORT_SYMBOL(__memscan_zero) +-EXPORT_SYMBOL(__memscan_generic) + __memscan_zero: + /* %o0 = addr, %o1 = size */ + cmp %o1, 0 +--- a/arch/sparc/lib/memscan_64.S ++++ b/arch/sparc/lib/memscan_64.S +@@ -5,8 +5,6 @@ + * Copyright (C) 1998 David S. Miller (davem@redhat.com) + */ + +- #include +- + #define HI_MAGIC 0x8080808080808080 + #define LO_MAGIC 0x0101010101010101 + #define ASI_PL 0x88 +@@ -15,8 +13,6 @@ + .align 32 + .globl __memscan_zero, __memscan_generic + .globl memscan +- EXPORT_SYMBOL(__memscan_zero) +- EXPORT_SYMBOL(__memscan_generic) + + __memscan_zero: + /* %o0 = bufp, %o1 = size */ +--- a/arch/sparc/lib/memset.S ++++ b/arch/sparc/lib/memset.S +@@ -9,7 +9,6 @@ + */ + + #include +-#include + + /* Work around cpp -rob */ + #define ALLOC #alloc +@@ -64,8 +63,6 @@ __bzero_begin: + + .globl __bzero + .globl memset +- EXPORT_SYMBOL(__bzero) +- EXPORT_SYMBOL(memset) + .globl __memset_start, __memset_end + __memset_start: + memset: +--- a/arch/sparc/lib/muldi3.S ++++ b/arch/sparc/lib/muldi3.S +@@ -17,7 +17,6 @@ along with GNU CC; see the file COPYING. + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +-#include + .text + .align 4 + .globl __muldi3 +@@ -75,4 +74,3 @@ __muldi3: + add %l2, %l0, %i0 + ret + restore %g0, %l3, %o1 +-EXPORT_SYMBOL(__muldi3) +--- a/arch/sparc/lib/strlen.S ++++ b/arch/sparc/lib/strlen.S +@@ -7,7 +7,6 @@ + + #include + #include +-#include + + #define LO_MAGIC 0x01010101 + #define HI_MAGIC 0x80808080 +@@ -79,4 +78,3 @@ ENTRY(strlen) + retl + mov 2, %o0 + ENDPROC(strlen) +-EXPORT_SYMBOL(strlen) +--- a/arch/sparc/lib/strncmp_32.S ++++ b/arch/sparc/lib/strncmp_32.S +@@ -4,7 +4,6 @@ + */ + + #include +-#include + + .text + ENTRY(strncmp) +@@ -117,4 +116,3 @@ ENTRY(strncmp) + retl + sub %o3, %o0, %o0 + ENDPROC(strncmp) +-EXPORT_SYMBOL(strncmp) +--- a/arch/sparc/lib/strncmp_64.S ++++ b/arch/sparc/lib/strncmp_64.S +@@ -6,7 +6,6 @@ + + #include + #include +-#include + + .text + ENTRY(strncmp) +@@ -29,4 +28,3 @@ ENTRY(strncmp) + retl + clr %o0 + ENDPROC(strncmp) +-EXPORT_SYMBOL(strncmp) +--- a/arch/sparc/lib/xor.S ++++ b/arch/sparc/lib/xor.S +@@ -13,7 +13,6 @@ + #include + #include + #include +-#include + + /* + * Requirements: +@@ -91,7 +90,6 @@ ENTRY(xor_vis_2) + retl + wr %g0, 0, %fprs + ENDPROC(xor_vis_2) +-EXPORT_SYMBOL(xor_vis_2) + + ENTRY(xor_vis_3) + rd %fprs, %o5 +@@ -158,7 +156,6 @@ ENTRY(xor_vis_3) + retl + wr %g0, 0, %fprs + ENDPROC(xor_vis_3) +-EXPORT_SYMBOL(xor_vis_3) + + ENTRY(xor_vis_4) + rd %fprs, %o5 +@@ -244,7 +241,6 @@ ENTRY(xor_vis_4) + retl + wr %g0, 0, %fprs + ENDPROC(xor_vis_4) +-EXPORT_SYMBOL(xor_vis_4) + + ENTRY(xor_vis_5) + save %sp, -192, %sp +@@ -351,7 +347,6 @@ ENTRY(xor_vis_5) + ret + restore + ENDPROC(xor_vis_5) +-EXPORT_SYMBOL(xor_vis_5) + + /* Niagara versions. */ + ENTRY(xor_niagara_2) /* %o0=bytes, %o1=dest, %o2=src */ +@@ -398,7 +393,6 @@ ENTRY(xor_niagara_2) /* %o0=bytes, %o1=d + ret + restore + ENDPROC(xor_niagara_2) +-EXPORT_SYMBOL(xor_niagara_2) + + ENTRY(xor_niagara_3) /* %o0=bytes, %o1=dest, %o2=src1, %o3=src2 */ + save %sp, -192, %sp +@@ -460,7 +454,6 @@ ENTRY(xor_niagara_3) /* %o0=bytes, %o1=d + ret + restore + ENDPROC(xor_niagara_3) +-EXPORT_SYMBOL(xor_niagara_3) + + ENTRY(xor_niagara_4) /* %o0=bytes, %o1=dest, %o2=src1, %o3=src2, %o4=src3 */ + save %sp, -192, %sp +@@ -543,7 +536,6 @@ ENTRY(xor_niagara_4) /* %o0=bytes, %o1=d + ret + restore + ENDPROC(xor_niagara_4) +-EXPORT_SYMBOL(xor_niagara_4) + + ENTRY(xor_niagara_5) /* %o0=bytes, %o1=dest, %o2=src1, %o3=src2, %o4=src3, %o5=src4 */ + save %sp, -192, %sp +@@ -642,4 +634,3 @@ ENTRY(xor_niagara_5) /* %o0=bytes, %o1=d + ret + restore + ENDPROC(xor_niagara_5) +-EXPORT_SYMBOL(xor_niagara_5) diff --git a/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch b/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch new file mode 100644 index 00000000000..3d511fec616 --- /dev/null +++ b/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch @@ -0,0 +1,22 @@ +From: Ben Hutchings +Date: Fri, 25 Sep 2015 22:50:50 +0100 +Subject: Revert "perf build: Fix libunwind feature detection on 32-bit x86" +Forwarded: no + +This reverts commit 05b41775e2edd69a83f592e3534930c934d4038e. +It broke feature detection that was working just fine for us. +--- + tools/perf/Makefile.config | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/tools/perf/Makefile.config ++++ b/tools/perf/Makefile.config +@@ -38,7 +38,7 @@ ifeq ($(ARCH),x86) + LIBUNWIND_LIBS = -lunwind -lunwind-x86_64 + $(call detected,CONFIG_X86_64) + else +- LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind ++ LIBUNWIND_LIBS = -lunwind -lunwind-x86 + endif + NO_PERF_REGS := 0 + endif diff --git a/patches/bugfix/x86/tools-hv-fix-fortify-format-warning.patch b/patches/bugfix/x86/tools-hv-fix-fortify-format-warning.patch new file mode 100644 index 00000000000..dd8b9039aea --- /dev/null +++ b/patches/bugfix/x86/tools-hv-fix-fortify-format-warning.patch @@ -0,0 +1,55 @@ +From: Ben Hutchings +Date: Fri, 25 Sep 2015 20:28:10 +0100 +Subject: tools/hv: Fix fortify format warning +Forwarded: no + +With fortify enabled, gcc warns: + +tools/hv/hv_kvp_daemon.c:705:2: error: format not a string literal and no format arguments [-Werror=format-security] + snprintf(dev_id, sizeof(dev_id), kvp_net_dir); + ^ + +kvp_net_dir is a pointer to a string literal, but lacks const +qualification. As it is never modified, it should be a const +array rather than a pointer. + +Also, while snprintf() has a bounds check, the following strcat()s +do not. Combine them into a single snprintf(). + +Signed-off-by: Ben Hutchings +--- +--- a/tools/hv/hv_kvp_daemon.c ++++ b/tools/hv/hv_kvp_daemon.c +@@ -691,10 +691,10 @@ static char *kvp_mac_to_if_name(char *ma + DIR *dir; + struct dirent *entry; + FILE *file; +- char *p, *q, *x; ++ char *p, *x; + char *if_name = NULL; + char buf[256]; +- char *kvp_net_dir = "/sys/class/net/"; ++ const char kvp_net_dir[] = "/sys/class/net/"; + char dev_id[256]; + unsigned int i; + +@@ -702,17 +702,9 @@ static char *kvp_mac_to_if_name(char *ma + if (dir == NULL) + return NULL; + +- snprintf(dev_id, sizeof(dev_id), kvp_net_dir); +- q = dev_id + strlen(kvp_net_dir); +- + while ((entry = readdir(dir)) != NULL) { +- /* +- * Set the state for the next pass. +- */ +- *q = '\0'; +- +- strcat(dev_id, entry->d_name); +- strcat(dev_id, "/address"); ++ snprintf(dev_id, sizeof(dev_id), "%s%s/address", ++ kvp_net_dir, entry->d_name); + + file = fopen(dev_id, "r"); + if (file == NULL) diff --git a/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch b/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch new file mode 100644 index 00000000000..d3957338f85 --- /dev/null +++ b/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Sat, 20 Apr 2013 15:52:02 +0100 +Subject: viafb: Autoload on OLPC XO 1.5 only +Bug-Debian: https://bugs.debian.org/705788 +Forwarded: no + +It appears that viafb won't work automatically on all the boards for +which it has a PCI device ID match. Currently, it is blacklisted by +udev along with most other framebuffer drivers, so this doesn't matter +much. + +However, this driver is required for console support on the XO 1.5. +We need to allow it to be autoloaded on this model only, and then +un-blacklist it in udev. + +--- +--- a/drivers/video/fbdev/via/via-core.c ++++ b/drivers/video/fbdev/via/via-core.c +@@ -753,7 +753,14 @@ static struct pci_device_id via_pci_tabl + .driver_data = UNICHROME_VX900 }, + { } + }; +-MODULE_DEVICE_TABLE(pci, via_pci_table); ++ ++static const struct pci_device_id via_pci_autoload_table[] __initconst = { ++ /* OLPC XO 1.5 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_VIA, UNICHROME_VX855_DID), ++ .subvendor = 0x152d, .subdevice = 0x0833 }, ++ { } ++}; ++MODULE_DEVICE_TABLE(pci, via_pci_autoload_table); + + static struct pci_driver via_driver = { + .name = "viafb", diff --git a/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch b/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch new file mode 100644 index 00000000000..f3cec3f5b6f --- /dev/null +++ b/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch @@ -0,0 +1,93 @@ +From: Serge Hallyn +Date: Fri, 31 May 2013 19:12:12 +0000 (+0100) +Subject: add sysctl to disallow unprivileged CLONE_NEWUSER by default +Origin: http://kernel.ubuntu.com/git?p=serge%2Fubuntu-saucy.git;a=commit;h=5c847404dcb2e3195ad0057877e1422ae90892b8 + +add sysctl to disallow unprivileged CLONE_NEWUSER by default + +This is a short-term patch. Unprivileged use of CLONE_NEWUSER +is certainly an intended feature of user namespaces. However +for at least saucy we want to make sure that, if any security +issues are found, we have a fail-safe. + +Signed-off-by: Serge Hallyn +[bwh: Remove unneeded binary sysctl bits] +--- +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -87,6 +87,11 @@ + + #define CREATE_TRACE_POINTS + #include ++#ifdef CONFIG_USER_NS ++extern int unprivileged_userns_clone; ++#else ++#define unprivileged_userns_clone 0 ++#endif + + /* + * Minimum number of threads to boot the kernel +@@ -1252,6 +1257,10 @@ static struct task_struct *copy_process( + if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) + return ERR_PTR(-EINVAL); + ++ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) ++ if (!capable(CAP_SYS_ADMIN)) ++ return ERR_PTR(-EPERM); ++ + /* + * Thread groups must share signals as well, and detached threads + * can only be started up within the thread group. +@@ -1944,6 +1953,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, + if (unshare_flags & CLONE_NEWNS) + unshare_flags |= CLONE_FS; + ++ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) { ++ err = -EPERM; ++ if (!capable(CAP_SYS_ADMIN)) ++ goto bad_unshare_out; ++ } ++ + err = check_unshare_flags(unshare_flags); + if (err) + goto bad_unshare_out; +--- a/kernel/sysctl.c ++++ b/kernel/sysctl.c +@@ -102,6 +102,9 @@ extern int core_uses_pid; + extern char core_pattern[]; + extern unsigned int core_pipe_limit; + #endif ++#ifdef CONFIG_USER_NS ++extern int unprivileged_userns_clone; ++#endif + extern int pid_max; + extern int pid_max_min, pid_max_max; + extern int percpu_pagelist_fraction; +@@ -489,6 +492,15 @@ static struct ctl_table kern_table[] = { + .mode = 0644, + .proc_handler = proc_dointvec, + }, ++#endif ++#ifdef CONFIG_USER_NS ++ { ++ .procname = "unprivileged_userns_clone", ++ .data = &unprivileged_userns_clone, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, + #endif + #ifdef CONFIG_PROC_SYSCTL + { +--- a/kernel/user_namespace.c ++++ b/kernel/user_namespace.c +@@ -23,6 +23,9 @@ + #include + #include + ++/* sysctl */ ++int unprivileged_userns_clone; ++ + static struct kmem_cache *user_ns_cachep __read_mostly; + static DEFINE_MUTEX(userns_state_mutex); + diff --git a/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch b/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch new file mode 100644 index 00000000000..3b33f845ab4 --- /dev/null +++ b/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch @@ -0,0 +1,29 @@ +From: Ben Hutchings +Date: Fri, 19 Nov 2010 02:12:48 +0000 +Subject: [PATCH 2/3] af_802154: Disable auto-loading as mitigation against local exploits +Forwarded: not-needed + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'af_802154' (IEEE 802.15.4) protocol is not widely used, was +not present in the 'lenny' kernel, and seems to receive only sporadic +maintenance. Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/ieee802154/socket.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +--- a/net/ieee802154/socket.c ++++ b/net/ieee802154/socket.c +@@ -1122,4 +1122,4 @@ module_init(af_ieee802154_init); + module_exit(af_ieee802154_remove); + + MODULE_LICENSE("GPL"); +-MODULE_ALIAS_NETPROTO(PF_IEEE802154); ++/* MODULE_ALIAS_NETPROTO(PF_IEEE802154); */ diff --git a/patches/debian/arch-sh4-fix-uimage-build.patch b/patches/debian/arch-sh4-fix-uimage-build.patch new file mode 100644 index 00000000000..6fc5a08e842 --- /dev/null +++ b/patches/debian/arch-sh4-fix-uimage-build.patch @@ -0,0 +1,18 @@ +From: Nobuhiro Iwamatsu +Subject: [sh4] Fix uImage build +Bug-Debian: https://bugs.debian.org/569034 +Forwarded: not-needed + +[bwh: This was added without a description, but I think it is dealing +with a similar issue to powerpcspe-omit-uimage.patch] + +--- a/arch/sh/Makefile ++++ b/arch/sh/Makefile +@@ -75,7 +75,6 @@ + + # Give the various platforms the opportunity to set default image types + defaultimage-$(CONFIG_SUPERH32) := zImage +-defaultimage-$(CONFIG_SH_SH7785LCR) := uImage + defaultimage-$(CONFIG_SH_RSK) := uImage + defaultimage-$(CONFIG_SH_URQUELL) := uImage + defaultimage-$(CONFIG_SH_MIGOR) := uImage diff --git a/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch b/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch new file mode 100644 index 00000000000..e169cf5d792 --- /dev/null +++ b/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch @@ -0,0 +1,27 @@ +From: Ben Hutchings +Subject: cdc_ncm,cdc_mbim: Use NCM by default +Date: Sun, 31 Mar 2013 03:58:04 +0100 +Forwarded: not-needed + +Devices that support both NCM and MBIM modes should be kept in NCM +mode unless there is userland support for MBIM. + +Set the default value of cdc_ncm.prefer_mbim to false and leave it to +userland (modem-manager) to override this with a modprobe.conf file +once it's ready to speak MBIM. + +--- +--- a/drivers/net/usb/cdc_ncm.c ++++ b/drivers/net/usb/cdc_ncm.c +@@ -53,11 +53,7 @@ + #include + #include + +-#if IS_ENABLED(CONFIG_USB_NET_CDC_MBIM) +-static bool prefer_mbim = true; +-#else + static bool prefer_mbim; +-#endif + module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); + MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); + diff --git a/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch b/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch new file mode 100644 index 00000000000..84f15c1adba --- /dev/null +++ b/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch @@ -0,0 +1,37 @@ +From: Ben Hutchings +Date: Sat, 20 Nov 2010 02:24:55 +0000 +Subject: [PATCH] decnet: Disable auto-loading as mitigation against local exploits +Forwarded: not-needed + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'decnet' protocol is unmaintained and of mostly historical +interest, and the user-space support package 'dnet-common' loads the +module explicitly. Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/decnet/af_decnet.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c +index 7a58c87..ed9e2b0 100644 +--- a/net/decnet/af_decnet.c ++++ b/net/decnet/af_decnet.c +@@ -2358,7 +2358,7 @@ void dn_unregister_sysctl(void); + MODULE_DESCRIPTION("The Linux DECnet Network Protocol"); + MODULE_AUTHOR("Linux DECnet Project Team"); + MODULE_LICENSE("GPL"); +-MODULE_ALIAS_NETPROTO(PF_DECnet); ++/* MODULE_ALIAS_NETPROTO(PF_DECnet); */ + + static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n"; + +-- +1.7.2.3 + diff --git a/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch b/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch new file mode 100644 index 00000000000..0e5176908ac --- /dev/null +++ b/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch @@ -0,0 +1,29 @@ +From: Ben Hutchings +Date: Mon, 13 Apr 2009 17:34:00 +0100 +Subject: Remove microcode patches for mgsuvd (not enabled in Debian configs) +Forwarded: not-needed + +diff --git a/arch/powerpc/platforms/8xx/Kconfig b/arch/powerpc/platforms/8xx/Kconfig +index 48a920a..81570b6 100644 +--- a/arch/powerpc/platforms/8xx/Kconfig ++++ b/arch/powerpc/platforms/8xx/Kconfig +@@ -160,16 +160,19 @@ config NO_UCODE_PATCH + + config USB_SOF_UCODE_PATCH + bool "USB SOF patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + + config I2C_SPI_UCODE_PATCH + bool "I2C/SPI relocation patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + + config I2C_SPI_SMC1_UCODE_PATCH + bool "I2C/SPI/SMC1 relocation patch" ++ depends on BROKEN + help + Help not implemented yet, coming soon. + diff --git a/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch b/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch new file mode 100644 index 00000000000..4e42da9a9bc --- /dev/null +++ b/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch @@ -0,0 +1,15 @@ +From: Ben Hutchings +Date: Mon, 17 Aug 2009 02:45:41 +0100 +Subject: dvb-usb-af9005: mark as broken +Forwarded: not-needed + +--- a/drivers/media/usb/dvb-usb/Kconfig ++++ b/drivers/media/usb/dvb-usb/Kconfig +@@ -227,6 +227,7 @@ config DVB_USB_OPERA1 + + config DVB_USB_AF9005 + tristate "Afatech AF9005 DVB-T USB1.1 support" ++ depends on BROKEN + depends on DVB_USB + select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT + select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT diff --git a/patches/debian/dfsg/drivers-net-appletalk-cops.patch b/patches/debian/dfsg/drivers-net-appletalk-cops.patch new file mode 100644 index 00000000000..2b195ec4d9e --- /dev/null +++ b/patches/debian/dfsg/drivers-net-appletalk-cops.patch @@ -0,0 +1,50 @@ +From: Frederik Schüler +Date: Fri, 05 Jan 2007 15:55:24 +0000 +Subject: Add removal patches for: 3c359, smctr, keyspan, cops +Forwarded: not-needed + +diff -ruN a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig +--- a/drivers/net/appletalk/Kconfig 2006-11-29 21:57:37.000000000 +0000 ++++ b/drivers/net/appletalk/Kconfig 2007-01-05 15:34:44.000000000 +0000 +@@ -49,32 +49,6 @@ + This driver is experimental, which means that it may not work. + See the file . + +-config COPS +- tristate "COPS LocalTalk PC support" +- depends on DEV_APPLETALK && (ISA || EISA) +- help +- This allows you to use COPS AppleTalk cards to connect to LocalTalk +- networks. You also need version 1.3.3 or later of the netatalk +- package. This driver is experimental, which means that it may not +- work. This driver will only work if you choose "AppleTalk DDP" +- networking support, above. +- Please read the file . +- +-config COPS_DAYNA +- bool "Dayna firmware support" +- depends on COPS +- help +- Support COPS compatible cards with Dayna style firmware (Dayna +- DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC +- III, Farallon PhoneNET PC II). +- +-config COPS_TANGENT +- bool "Tangent firmware support" +- depends on COPS +- help +- Support COPS compatible cards with Tangent style firmware (Tangent +- ATB_II, Novell NL-1000, Daystar Digital LT-200. +- + config IPDDP + tristate "Appletalk-IP driver support" + depends on DEV_APPLETALK && ATALK +diff -ruN a/drivers/net/appletalk/Makefile b/drivers/net/appletalk/Makefile +--- a/drivers/net/appletalk/Makefile 2006-11-29 21:57:37.000000000 +0000 ++++ b/drivers/net/appletalk/Makefile 2007-01-05 15:34:11.000000000 +0000 +@@ -3,5 +3,4 @@ + # + + obj-$(CONFIG_IPDDP) += ipddp.o +-obj-$(CONFIG_COPS) += cops.o + obj-$(CONFIG_LTPC) += ltpc.o diff --git a/patches/debian/dfsg/files-1 b/patches/debian/dfsg/files-1 new file mode 100644 index 00000000000..d200306e6b8 --- /dev/null +++ b/patches/debian/dfsg/files-1 @@ -0,0 +1,20 @@ +rm Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt + +# Some of this is DFSG-free, but it has been moved to firmware-free so +# we don't need it in linux as well. +rm firmware + +rm arch/powerpc/sysdev/micropatch.c + +rm drivers/media/usb/dvb-usb/af9005-script.h + +rm drivers/media/i2c/vs6624.c + +rm drivers/net/appletalk/cops.c +rm drivers/net/appletalk/cops.h +rm drivers/net/appletalk/cops_ffdrv.h +rm drivers/net/appletalk/cops_ltdrv.h + +# These include apparently obfuscated code +rm drivers/video/fbdev/nvidia/ +rm drivers/video/fbdev/riva/ diff --git a/patches/debian/dfsg/firmware-cleanup.patch b/patches/debian/dfsg/firmware-cleanup.patch new file mode 100644 index 00000000000..760918c1a9b --- /dev/null +++ b/patches/debian/dfsg/firmware-cleanup.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Tue, 15 Mar 2011 04:48:15 +0000 +Subject: Remove the entire firmware directory +Forwarded: no + +Some of this is DFSG-free, but it has been moved to firmware-free so +we don't need it in linux-2.6 as well. + +diff --git a/Makefile b/Makefile +index d6592b6..9afac11 100644 +--- a/Makefile ++++ b/Makefile +@@ -487,7 +487,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf + + # Objects we will link into vmlinux / subdirs we need to visit + init-y := init/ +-drivers-y := drivers/ sound/ firmware/ ++drivers-y := drivers/ sound/ + net-y := net/ + libs-y := lib/ + core-y := usr/ +diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst +index 6bf8e87..2f6db83 100644 +--- a/scripts/Makefile.fwinst ++++ b/scripts/Makefile.fwinst +@@ -13,7 +13,7 @@ src := $(obj) + -include $(objtree)/.config + + include scripts/Kbuild.include +-include $(src)/Makefile ++-include $(src)/Makefile + + include scripts/Makefile.host + diff --git a/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch b/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch new file mode 100644 index 00000000000..9e251358d31 --- /dev/null +++ b/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch @@ -0,0 +1,130 @@ +From: Ben Hutchings +Date: Sat, 2 Jun 2012 19:53:38 +0100 +Subject: video: Remove nvidiafb and rivafb +Bug-Debian: https://bugs.debian.org/383481 +Forwarded: no + +These drivers contain register programming code provided by the +hardware vendor that appears to have been deliberately obfuscated. +This is arguably not the preferred form for modification. + +These drivers are also largely redundant with nouveau. The RIVA 128 +(NV3) is not supported by nouveau but is about 15 years old and +probably discontinued 10 years ago. + +--- +--- a/drivers/video/fbdev/Kconfig ++++ b/drivers/video/fbdev/Kconfig +@@ -991,101 +991,6 @@ config FB_ATMEL_STN + help + This enables support for the AT91/AT32 LCD Controller. + +-config FB_NVIDIA +- tristate "nVidia Framebuffer Support" +- depends on FB && PCI +- select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT +- select FB_MODE_HELPERS +- select FB_CFB_FILLRECT +- select FB_CFB_COPYAREA +- select FB_CFB_IMAGEBLIT +- select BITREVERSE +- select VGASTATE +- help +- This driver supports graphics boards with the nVidia chips, TNT +- and newer. For very old chipsets, such as the RIVA128, then use +- the rivafb. +- Say Y if you have such a graphics board. +- +- To compile this driver as a module, choose M here: the +- module will be called nvidiafb. +- +-config FB_NVIDIA_I2C +- bool "Enable DDC Support" +- depends on FB_NVIDIA +- select FB_DDC +- help +- This enables I2C support for nVidia Chipsets. This is used +- only for getting EDID information from the attached display +- allowing for robust video mode handling and switching. +- +- Because fbdev-2.6 requires that drivers must be able to +- independently validate video mode parameters, you should say Y +- here. +- +-config FB_NVIDIA_DEBUG +- bool "Lots of debug output" +- depends on FB_NVIDIA +- default n +- help +- Say Y here if you want the nVidia driver to output all sorts +- of debugging information to provide to the maintainer when +- something goes wrong. +- +-config FB_NVIDIA_BACKLIGHT +- bool "Support for backlight control" +- depends on FB_NVIDIA +- default y +- help +- Say Y here if you want to control the backlight of your display. +- +-config FB_RIVA +- tristate "nVidia Riva support" +- depends on FB && PCI +- select FB_BACKLIGHT if FB_RIVA_BACKLIGHT +- select FB_MODE_HELPERS +- select FB_CFB_FILLRECT +- select FB_CFB_COPYAREA +- select FB_CFB_IMAGEBLIT +- select BITREVERSE +- select VGASTATE +- help +- This driver supports graphics boards with the nVidia Riva/Geforce +- chips. +- Say Y if you have such a graphics board. +- +- To compile this driver as a module, choose M here: the +- module will be called rivafb. +- +-config FB_RIVA_I2C +- bool "Enable DDC Support" +- depends on FB_RIVA +- select FB_DDC +- help +- This enables I2C support for nVidia Chipsets. This is used +- only for getting EDID information from the attached display +- allowing for robust video mode handling and switching. +- +- Because fbdev-2.6 requires that drivers must be able to +- independently validate video mode parameters, you should say Y +- here. +- +-config FB_RIVA_DEBUG +- bool "Lots of debug output" +- depends on FB_RIVA +- default n +- help +- Say Y here if you want the Riva driver to output all sorts +- of debugging information to provide to the maintainer when +- something goes wrong. +- +-config FB_RIVA_BACKLIGHT +- bool "Support for backlight control" +- depends on FB_RIVA +- default y +- help +- Say Y here if you want to control the backlight of your display. +- + config FB_I740 + tristate "Intel740 support" + depends on FB && PCI +--- a/drivers/video/fbdev/Makefile ++++ b/drivers/video/fbdev/Makefile +@@ -22,8 +22,6 @@ obj-$(CONFIG_FB_PM3) += pm3fb.o + + obj-$(CONFIG_FB_I740) += i740fb.o + obj-$(CONFIG_FB_MATROX) += matrox/ +-obj-$(CONFIG_FB_RIVA) += riva/ +-obj-$(CONFIG_FB_NVIDIA) += nvidia/ + obj-$(CONFIG_FB_ATY) += aty/ macmodes.o + obj-$(CONFIG_FB_ATY128) += aty/ macmodes.o + obj-$(CONFIG_FB_RADEON) += aty/ diff --git a/patches/debian/dfsg/vs6624-disable.patch b/patches/debian/dfsg/vs6624-disable.patch new file mode 100644 index 00000000000..7a62d6bd3db --- /dev/null +++ b/patches/debian/dfsg/vs6624-disable.patch @@ -0,0 +1,15 @@ +From: Ben Hutchings +Date: Sun, 27 May 2012 01:56:58 +0100 +Subject: vs6624: mark as broken +Forwarded: not-needed + +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -422,6 +422,7 @@ config VIDEO_OV7670 + controller. + + config VIDEO_VS6624 ++ depends on BROKEN + tristate "ST VS6624 sensor support" + depends on VIDEO_V4L2 && I2C + depends on MEDIA_CAMERA_SUPPORT diff --git a/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch b/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch new file mode 100644 index 00000000000..77d44b4312e --- /dev/null +++ b/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch @@ -0,0 +1,29 @@ +From: Ben Hutchings +Subject: fanotify: Taint on use of FANOTIFY_ACCESS_PERMISSIONS +Date: Wed, 13 Jul 2016 01:37:22 +0100 +Forwarded: not-needed + +Various free and proprietary AV products use this feature and users +apparently want it. But punting access checks to userland seems like +an easy way to deadlock the system, and there will be nothing we can +do about that. So warn and taint the kernel if this feature is +actually used. + +--- +--- a/fs/notify/fanotify/fanotify_user.c ++++ b/fs/notify/fanotify/fanotify_user.c +@@ -847,6 +847,14 @@ SYSCALL_DEFINE5(fanotify_mark, int, fano + #endif + return -EINVAL; + ++#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS ++ if (mask & FAN_ALL_PERM_EVENTS) { ++ pr_warn_once("%s (%d): Using fanotify permission checks may lead to deadlock; tainting kernel\n", ++ current->comm, current->pid); ++ add_taint(TAINT_USER, LOCKDEP_STILL_OK); ++ } ++#endif ++ + f = fdget(fanotify_fd); + if (unlikely(!f.file)) + return -EBADF; diff --git a/patches/debian/fs-enable-link-security-restrictions-by-default.patch b/patches/debian/fs-enable-link-security-restrictions-by-default.patch new file mode 100644 index 00000000000..d487c87f4da --- /dev/null +++ b/patches/debian/fs-enable-link-security-restrictions-by-default.patch @@ -0,0 +1,22 @@ +From: Ben Hutchings +Subject: fs: Enable link security restrictions by default +Date: Fri, 02 Nov 2012 05:32:06 +0000 +Bug-Debian: https://bugs.debian.org/609455 +Forwarded: not-needed + +This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415 +('VFS: don't do protected {sym,hard}links by default'). + +--- a/fs/namei.c ++++ b/fs/namei.c +@@ -847,8 +847,8 @@ static inline void put_link(struct namei + path_put(&last->link); + } + +-int sysctl_protected_symlinks __read_mostly = 0; +-int sysctl_protected_hardlinks __read_mostly = 0; ++int sysctl_protected_symlinks __read_mostly = 1; ++int sysctl_protected_hardlinks __read_mostly = 1; + + /** + * may_follow_link - Check symlink following for unsafe situations diff --git a/patches/debian/gitignore.patch b/patches/debian/gitignore.patch new file mode 100644 index 00000000000..e9edd7265e5 --- /dev/null +++ b/patches/debian/gitignore.patch @@ -0,0 +1,44 @@ +From: Ian Campbell +Date: Thu, 17 Jan 2013 08:55:21 +0000 +Subject: Tweak gitignore for Debian pkg-kernel using git svn. +Forwarded: not-needed + +[bwh: Tweak further for pure git] + +--- a/.gitignore ++++ b/.gitignore +@@ -53,23 +53,11 @@ Module.symvers + /Module.markers + + # +-# Debian directory (make deb-pkg) +-# +-/debian/ +- +-# + # tar directory (make tar*-pkg) + # + /tar-install/ + + # +-# git files that we don't want to ignore even if they are dot-files +-# +-!.gitignore +-!.mailmap +-!.cocciconfig +- +-# + # Generated include files + # + include/config +@@ -114,3 +102,10 @@ all.config + + # Kdevelop4 + *.kdev4 ++ ++# ++# Debian packaging: ignore everything at the top level, since it isn't ++# included in our repository ++# ++/* ++!/debian/ diff --git a/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch b/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch new file mode 100644 index 00000000000..2787c2518b5 --- /dev/null +++ b/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch @@ -0,0 +1,27 @@ +From: Ben Hutchings +Date: Tue, 16 Feb 2016 02:45:42 +0000 +Subject: [i386/686-pae] PCI: Set pci=nobios by default +Forwarded: not-needed + +CONFIG_PCI_GOBIOS results in physical addresses 640KB-1MB being mapped +W+X, which is undesirable for security reasons and will result in a +warning at boot now that we enable CONFIG_DEBUG_WX. + +This can be overridden using the kernel parameter "pci=nobios", but we +want to disable W+X by default. Disable PCI BIOS probing by default; +it can still be enabled using "pci=bios". + +--- +--- a/arch/x86/pci/common.c ++++ b/arch/x86/pci/common.c +@@ -20,8 +20,8 @@ + #include + #include + +-unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | +- PCI_PROBE_MMCONF; ++unsigned int pci_probe = PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | PCI_PROBE_MMCONF | ++ (IS_ENABLED(CONFIG_X86_64) || IS_ENABLED(CONFIG_X86_PAE) ? 0 : PCI_PROBE_BIOS); + + unsigned int pci_early_dump_regs; + static int pci_bf_sort; diff --git a/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch b/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch new file mode 100644 index 00000000000..171e90a456a --- /dev/null +++ b/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch @@ -0,0 +1,26 @@ +From: Ben Hutchings +Subject: iwlwifi: Do not request unreleased firmware for IWL6000 +Bug-Debian: https://bugs.debian.org/689416 +Forwarded: not-needed + +The iwlwifi driver currently supports firmware API versions 4-6 for +these devices. It will request the file for the latest supported +version and then fall back to earlier versions. However, the latest +version that has actually been released is 4, so we expect the +requests for versions 6 and then 5 to fail. + +The installer appears to report any failed request, and it is probably +not easy to detect that this particular failure is harmless. So stop +requesting the unreleased firmware. + +--- a/drivers/net/wireless/intel/iwlwifi/iwl-6000.c ++++ b/drivers/net/wireless/intel/iwlwifi/iwl-6000.c +@@ -31,7 +31,7 @@ + #include "dvm/commands.h" /* needed for BT for now */ + + /* Highest firmware API version supported */ +-#define IWL6000_UCODE_API_MAX 6 ++#define IWL6000_UCODE_API_MAX 4 /* v5-6 are supported but not released */ + #define IWL6050_UCODE_API_MAX 5 + #define IWL6000G2_UCODE_API_MAX 6 + #define IWL6035_UCODE_API_MAX 6 diff --git a/patches/debian/kernelvariables.patch b/patches/debian/kernelvariables.patch new file mode 100644 index 00000000000..f59d00b7d3d --- /dev/null +++ b/patches/debian/kernelvariables.patch @@ -0,0 +1,104 @@ +From: Bastian Blank +Subject: kbuild: Make the toolchain variables easily overwritable +Date: Sun, 22 Feb 2009 15:39:35 +0100 +Forwarded: not-needed + +Allow make variables to be overridden for each flavour by a file in +the build tree, .kernelvariables. + +We currently use this for ARCH, KERNELRELEASE, CC, and in some cases +also CROSS_COMPILE, CFLAGS_KERNEL and CFLAGS_MODULE. + +This file can only be read after we establish the build tree, and all +use of $(ARCH) needs to be moved after this. + +--- a/Makefile ++++ b/Makefile +@@ -255,42 +255,6 @@ SUBARCH := $(shell uname -m | sed -e s/i + ARCH ?= $(SUBARCH) + CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) + +-# Architecture as present in compile.h +-UTS_MACHINE := $(ARCH) +-SRCARCH := $(ARCH) +- +-# Additional ARCH settings for x86 +-ifeq ($(ARCH),i386) +- SRCARCH := x86 +-endif +-ifeq ($(ARCH),x86_64) +- SRCARCH := x86 +-endif +- +-# Additional ARCH settings for sparc +-ifeq ($(ARCH),sparc32) +- SRCARCH := sparc +-endif +-ifeq ($(ARCH),sparc64) +- SRCARCH := sparc +-endif +- +-# Additional ARCH settings for sh +-ifeq ($(ARCH),sh64) +- SRCARCH := sh +-endif +- +-# Additional ARCH settings for tile +-ifeq ($(ARCH),tilepro) +- SRCARCH := tile +-endif +-ifeq ($(ARCH),tilegx) +- SRCARCH := tile +-endif +- +-# Where to locate arch specific headers +-hdr-arch := $(SRCARCH) +- + KCONFIG_CONFIG ?= .config + export KCONFIG_CONFIG + +@@ -373,6 +337,44 @@ LDFLAGS_vmlinux = + CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized + CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,) + ++-include $(obj)/.kernelvariables ++ ++# Architecture as present in compile.h ++UTS_MACHINE := $(ARCH) ++SRCARCH := $(ARCH) ++ ++# Additional ARCH settings for x86 ++ifeq ($(ARCH),i386) ++ SRCARCH := x86 ++endif ++ifeq ($(ARCH),x86_64) ++ SRCARCH := x86 ++endif ++ ++# Additional ARCH settings for sparc ++ifeq ($(ARCH),sparc64) ++ SRCARCH := sparc ++endif ++ ++# Additional ARCH settings for sh ++ifeq ($(ARCH),sh64) ++ SRCARCH := sh ++endif ++ ++# Additional ARCH settings for tile ++ifeq ($(ARCH),tilepro) ++ SRCARCH := tile ++endif ++ifeq ($(ARCH),tilegx) ++ SRCARCH := tile ++endif ++ ++# Where to locate arch specific headers ++hdr-arch := $(SRCARCH) ++ ++ifeq ($(ARCH),m68knommu) ++ hdr-arch := m68k ++endif + + # Use USERINCLUDE when you must reference the UAPI directories only. + USERINCLUDE := \ diff --git a/patches/debian/mips-disable-werror.patch b/patches/debian/mips-disable-werror.patch new file mode 100644 index 00000000000..9e895bfc637 --- /dev/null +++ b/patches/debian/mips-disable-werror.patch @@ -0,0 +1,28 @@ +From: Ben Hutchings +Date: Mon, 13 Sep 2010 02:16:18 +0100 +Subject: [PATCH] Partially revert "MIPS: Add -Werror to arch/mips/Kbuild" +Forwarded: not-needed + +This reverts commit 66f9ba101f54bda63ab1db97f9e9e94763d0651b. + +We really don't want to add -Werror anywhere. +--- + arch/mips/Kbuild | 5 ----- + 1 files changed, 0 insertions(+), 5 deletions(-) + +diff --git a/arch/mips/Kbuild b/arch/mips/Kbuild +index e322d65..2e6b28f 100644 +--- a/arch/mips/Kbuild ++++ b/arch/mips/Kbuild +@@ -1,8 +1,3 @@ +-# Fail on warnings - also for files referenced in subdirs +-# -Werror can be disabled for specific files using: +-# CFLAGS_ := -Wno-error +-subdir-ccflags-y := -Werror +- + # platform specific definitions + include arch/mips/Kbuild.platforms + obj-y := $(platform-y) +-- +1.7.1 + diff --git a/patches/debian/modpost-symbol-prefix.patch b/patches/debian/modpost-symbol-prefix.patch new file mode 100644 index 00000000000..0bda5f2424b --- /dev/null +++ b/patches/debian/modpost-symbol-prefix.patch @@ -0,0 +1,22 @@ +From: Chris Boot +Date: Mon, 01 Jul 2013 23:10:02 +0100 +Subject: modpost symbol prefix setting +Forwarded: not-needed + +[bwh: The original version of this was added by Bastian Blank. The +upstream code includes so that +can tell whether C symbols have an underscore prefix. Since we build +modpost separately from the kernel, won't exist. +However, no Debian Linux architecture uses the symbol prefix, so we +can simply omit it.] + +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -19,7 +19,6 @@ + #include + #include + #include "modpost.h" +-#include "../../include/generated/autoconf.h" + #include "../../include/linux/license.h" + #include "../../include/linux/export.h" + diff --git a/patches/debian/powerpcspe-omit-uimage.patch b/patches/debian/powerpcspe-omit-uimage.patch new file mode 100644 index 00000000000..cb80858936c --- /dev/null +++ b/patches/debian/powerpcspe-omit-uimage.patch @@ -0,0 +1,43 @@ +Description: Prevent building uImage with missing mkimage + On some powerpc platforms, CONFIG_DEFAULT_UIMAGE is selected automatically, + which leads to uImage being built automatically with mkimage. This tool is not + available in linux's build-dependencies, and the file is not strictly + necessary, so we are omitting this step in the build process, Debian-specific. +Author: Roland Stigge +Bug-Debian: https://bugs.debian.org/708094 +Forwarded: not-needed + +--- a/arch/powerpc/boot/Makefile ++++ b/arch/powerpc/boot/Makefile +@@ -221,7 +221,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp + image-$(CONFIG_PPC_EFIKA) += zImage.chrp + image-$(CONFIG_PPC_PMAC) += zImage.pmac + image-$(CONFIG_PPC_HOLLY) += dtbImage.holly +-image-$(CONFIG_DEFAULT_UIMAGE) += uImage + image-$(CONFIG_EPAPR_BOOT) += zImage.epapr + + # +@@ -280,23 +279,6 @@ image-$(CONFIG_MPC834x_MDS) += cuImage. + image-$(CONFIG_MPC836x_MDS) += cuImage.mpc836x_mds + image-$(CONFIG_ASP834x) += dtbImage.asp834x-redboot + +-# Board ports in arch/powerpc/platform/85xx/Kconfig +-image-$(CONFIG_MPC8540_ADS) += cuImage.mpc8540ads +-image-$(CONFIG_MPC8560_ADS) += cuImage.mpc8560ads +-image-$(CONFIG_MPC85xx_CDS) += cuImage.mpc8541cds \ +- cuImage.mpc8548cds_32b \ +- cuImage.mpc8555cds +-image-$(CONFIG_MPC85xx_MDS) += cuImage.mpc8568mds +-image-$(CONFIG_MPC85xx_DS) += cuImage.mpc8544ds \ +- cuImage.mpc8572ds +-image-$(CONFIG_TQM8540) += cuImage.tqm8540 +-image-$(CONFIG_TQM8541) += cuImage.tqm8541 +-image-$(CONFIG_TQM8548) += cuImage.tqm8548 +-image-$(CONFIG_TQM8555) += cuImage.tqm8555 +-image-$(CONFIG_TQM8560) += cuImage.tqm8560 +-image-$(CONFIG_SBC8548) += cuImage.sbc8548 +-image-$(CONFIG_KSI8560) += cuImage.ksi8560 +- + # Board ports in arch/powerpc/platform/86xx/Kconfig + image-$(CONFIG_MVME7100) += dtbImage.mvme7100 + diff --git a/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch b/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch new file mode 100644 index 00000000000..3343aecace3 --- /dev/null +++ b/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Fri, 19 Nov 2010 02:12:48 +0000 +Subject: [PATCH 1/3] rds: Disable auto-loading as mitigation against local exploits +Forwarded: not-needed + +Recent review has revealed several bugs in obscure protocol +implementations that can be exploited by local users for denial of +service or privilege escalation. We can mitigate the effect of any +remaining vulnerabilities in such protocols by preventing unprivileged +users from loading the modules, so that they are only exploitable on +systems where the administrator has chosen to load the protocol. + +The 'rds' protocol is one such protocol that has been found to be +vulnerable, and which was not present in the 'lenny' kernel. +Therefore disable auto-loading. + +Signed-off-by: Ben Hutchings +--- + net/rds/af_rds.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c +index 98e0538..d8d4525 100644 +--- a/net/rds/af_rds.c ++++ b/net/rds/af_rds.c +@@ -574,4 +574,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagram Sockets" + " v" DRV_VERSION " (" DRV_RELDATE ")"); + MODULE_VERSION(DRV_VERSION); + MODULE_LICENSE("Dual BSD/GPL"); +-MODULE_ALIAS_NETPROTO(PF_RDS); ++/* MODULE_ALIAS_NETPROTO(PF_RDS); */ +-- +1.7.2.3 + diff --git a/patches/debian/sched-autogroup-disabled.patch b/patches/debian/sched-autogroup-disabled.patch new file mode 100644 index 00000000000..f95389d8428 --- /dev/null +++ b/patches/debian/sched-autogroup-disabled.patch @@ -0,0 +1,19 @@ +From: Ben Hutchings +Subject: sched: Do not enable autogrouping by default +Date: Wed, 16 Mar 2011 03:17:06 +0000 +Forwarded: not-needed + +We want to provide the option of autogrouping but without enabling +it by default yet. + +--- a/kernel/sched/auto_group.c ++++ b/kernel/sched/auto_group.c +@@ -9,7 +9,7 @@ + #include + #include + +-unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1; ++unsigned int __read_mostly sysctl_sched_autogroup_enabled = 0; + static struct autogroup autogroup_default; + static atomic_t autogroup_seq_nr; + diff --git a/patches/debian/snd-pcsp-disable-autoload.patch b/patches/debian/snd-pcsp-disable-autoload.patch new file mode 100644 index 00000000000..5871dc6ef0f --- /dev/null +++ b/patches/debian/snd-pcsp-disable-autoload.patch @@ -0,0 +1,30 @@ +From: Ben Hutchings +Date: Wed, 05 Feb 2014 23:01:30 +0000 +Subject: snd-pcsp: Disable autoload +Forwarded: not-needed +Bug-Debian: https://bugs.debian.org/697709 + +There are two drivers claiming the platform:pcspkr device: +- pcspkr creates an input(!) device that can only beep +- snd-pcsp creates an equivalent input device plus a PCM device that can + play barely recognisable renditions of sampled sound + +snd-pcsp is blacklisted by the alsa-base package, but not everyone +installs that. On PCs where no sound is wanted at all, both drivers +will still be loaded and one or other will complain that it couldn't +claim the relevant I/O range. + +In case anyone finds snd-pcsp useful, we continue to build it. But +remove the alias, to ensure it's not loaded where it's not wanted. + +--- a/sound/drivers/pcsp/pcsp.c ++++ b/sound/drivers/pcsp/pcsp.c +@@ -21,7 +21,7 @@ MODULE_AUTHOR("Stas Sergeev +Date: Fri, 07 Oct 2011 21:37:52 +0100 +Subject: Install perf scripts non-executable +Forwarded: no + +[bwh: Forward-ported to 3.12] + +--- a/tools/perf/Makefile.perf ++++ b/tools/perf/Makefile.perf +@@ -563,8 +563,8 @@ endif + ifndef NO_LIBPERL + $(call QUIET_INSTALL, perl-scripts) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \ +- $(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \ +- $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \ ++ $(INSTALL) -m 644 scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \ ++ $(INSTALL) -m 644 scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'; \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'; \ + $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' + endif +@@ -572,23 +572,23 @@ ifndef NO_LIBPYTHON + $(call QUIET_INSTALL, python-scripts) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'; \ +- $(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \ +- $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \ ++ $(INSTALL) -m 644 scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'; \ ++ $(INSTALL) -m 644 scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'; \ + $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' + endif + $(call QUIET_INSTALL, perf_completion-script) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \ +- $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)' ++ $(INSTALL) -m 644 perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)' + $(call QUIET_INSTALL, perf-tip) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \ +- $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)' ++ $(INSTALL) -m 644 Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)' + + install-tests: all install-gtk + $(call QUIET_INSTALL, tests) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \ +- $(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \ ++ $(INSTALL) -m 644 tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \ +- $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr' ++ $(INSTALL) -m 644 tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr' + + install-bin: install-tools install-tests + diff --git a/patches/debian/tools-perf-version.patch b/patches/debian/tools-perf-version.patch new file mode 100644 index 00000000000..f9fa2ca5b79 --- /dev/null +++ b/patches/debian/tools-perf-version.patch @@ -0,0 +1,106 @@ +From: Bastian Blank +Date: Mon, 26 Sep 2011 13:53:12 +0100 +Subject: Create manpages and binaries including the version +Forwarded: no + +[bwh: Fix version insertion in perf man page cross-references and perf +man page title. Install bash_completion script for perf with a +version-dependent name. And do the same for trace.] + +--- a/tools/perf/Makefile.perf ++++ b/tools/perf/Makefile.perf +@@ -539,18 +539,18 @@ install-gtk: + install-tools: all install-gtk + $(call QUIET_INSTALL, binaries) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \ +- $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \ +- $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace' ++ $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \ ++ $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)' ++ $(call QUIET_INSTALL, libexec) \ ++ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' + ifndef NO_PERF_READ_VDSO32 + $(call QUIET_INSTALL, perf-read-vdso32) \ +- $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)'; ++ $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'; + endif + ifndef NO_PERF_READ_VDSOX32 + $(call QUIET_INSTALL, perf-read-vdsox32) \ +- $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)'; ++ $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'; + endif +- $(call QUIET_INSTALL, libexec) \ +- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' + $(call QUIET_INSTALL, perf-archive) \ + $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' + $(call QUIET_INSTALL, perf-with-kcore) \ +@@ -578,7 +578,7 @@ ifndef NO_LIBPYTHON + endif + $(call QUIET_INSTALL, perf_completion-script) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \ +- $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf' ++ $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)' + $(call QUIET_INSTALL, perf-tip) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \ + $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)' +@@ -599,7 +599,7 @@ install-python_ext: + + # 'make install-doc' should call 'make -C Documentation install' + $(INSTALL_DOC_TARGETS): +- $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) ++ $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) VERSION=$(VERSION) + + ### Cleaning rules + +--- a/tools/perf/Documentation/Makefile ++++ b/tools/perf/Documentation/Makefile +@@ -183,14 +183,16 @@ ifdef missing_tools + $(error "You need to install $(missing_tools) for man pages") + endif + +-do-install-man: man ++do-install-man: $(addprefix install-man-,$(_DOC_MAN1)) ++ ++install-man-perf.1: $(OUTPUT)perf.1 ++ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) ++ sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1 ++ ++install-man-perf%.1: $(OUTPUT)perf%.1 + $(call QUIET_INSTALL, Documentation-man) \ + $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \ +-# $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \ +-# $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \ +- $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \ +-# $(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \ +-# $(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir) ++ sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1 + + install-man: check-man-tools man + +--- a/tools/perf/util/Build ++++ b/tools/perf/util/Build +@@ -138,6 +138,7 @@ CFLAGS_rbtree.o += -Wno-unused-pa + CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))" + CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))" + CFLAGS_parse-events.o += -Wno-redundant-decls ++CFLAGS_vdso.o += -DPERFEXECDIR='"$(perfexec_instdir_SQ)"' + + $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE + $(call rule_mkdir) +--- a/tools/perf/util/vdso.c ++++ b/tools/perf/util/vdso.c +@@ -51,12 +51,12 @@ static struct vdso_info *vdso_info__new( + .vdso32 = { + .temp_file_name = VDSO__TEMP_FILE_NAME, + .dso_name = DSO__NAME_VDSO32, +- .read_prog = "perf-read-vdso32", ++ .read_prog = PERFEXECDIR "/perf-read-vdso32", + }, + .vdsox32 = { + .temp_file_name = VDSO__TEMP_FILE_NAME, + .dso_name = DSO__NAME_VDSOX32, +- .read_prog = "perf-read-vdsox32", ++ .read_prog = PERFEXECDIR "/perf-read-vdsox32", + }, + #endif + }; diff --git a/patches/debian/uname-version-timestamp.patch b/patches/debian/uname-version-timestamp.patch new file mode 100644 index 00000000000..5cd565c1e01 --- /dev/null +++ b/patches/debian/uname-version-timestamp.patch @@ -0,0 +1,33 @@ +From: Ben Hutchings +Subject: Make mkcompile_h accept an alternate timestamp string +Date: Tue, 12 May 2015 19:29:22 +0100 +Forwarded: not-needed + +We want to include the Debian version in the utsname::version string +instead of a full timestamp string. However, we still need to provide +a standard timestamp string for gen_initramfs_list.sh to make the +kernel image reproducible. + +Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to +$KBUILD_BUILD_TIMESTAMP. + +--- a/scripts/mkcompile_h ++++ b/scripts/mkcompile_h +@@ -37,10 +37,14 @@ else + VERSION=$KBUILD_BUILD_VERSION + fi + +-if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then +- TIMESTAMP=`date` ++if [ -z "$KBUILD_BUILD_VERSION_TIMESTAMP" ]; then ++ if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then ++ TIMESTAMP=`date` ++ else ++ TIMESTAMP=$KBUILD_BUILD_TIMESTAMP ++ fi + else +- TIMESTAMP=$KBUILD_BUILD_TIMESTAMP ++ TIMESTAMP=$KBUILD_BUILD_VERSION_TIMESTAMP + fi + if test -z "$KBUILD_BUILD_USER"; then + LINUX_COMPILE_BY=$(whoami | sed 's/\\/\\\\/') diff --git a/patches/debian/version.patch b/patches/debian/version.patch new file mode 100644 index 00000000000..505f0b711f3 --- /dev/null +++ b/patches/debian/version.patch @@ -0,0 +1,138 @@ +From: Ben Hutchings +Subject: Include package version along with kernel release in stack traces +Date: Tue, 24 Jul 2012 03:13:10 +0100 +Forwarded: not-needed + +For distribution binary packages we assume +$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION +are set. + +--- a/Makefile ++++ b/Makefile +@@ -1024,7 +1024,7 @@ endif + prepare2: prepare3 prepare-compiler-check outputmakefile asm-generic + + prepare1: prepare2 $(version_h) include/generated/utsrelease.h \ +- include/config/auto.conf ++ include/config/auto.conf include/generated/package.h + $(cmd_crmodverdir) + + archprepare: archheaders archscripts prepare1 scripts_basic +@@ -1097,6 +1097,16 @@ define filechk_version.h + echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) + endef + ++ifneq ($(DISTRIBUTION_OFFICIAL_BUILD),) ++define filechk_package.h ++ echo \#define LINUX_PACKAGE_ID \" $(DISTRIBUTOR) $(DISTRIBUTION_VERSION)\" ++endef ++else ++define filechk_package.h ++ echo \#define LINUX_PACKAGE_ID \"\" ++endef ++endif ++ + $(version_h): $(srctree)/Makefile FORCE + $(call filechk,version.h) + $(Q)rm -f $(old_version_h) +@@ -1104,6 +1114,9 @@ $(version_h): $(srctree)/Makefile FORCE + include/generated/utsrelease.h: include/config/kernel.release FORCE + $(call filechk,utsrelease.h) + ++include/generated/package.h: $(srctree)/Makefile FORCE ++ $(call filechk,package.h) ++ + PHONY += headerdep + headerdep: + $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \ +--- a/arch/x86/um/sysrq_64.c ++++ b/arch/x86/um/sysrq_64.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -16,8 +17,9 @@ void show_regs(struct pt_regs *regs) + { + printk("\n"); + print_modules(); +- printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n", task_pid_nr(current), +- current->comm, print_tainted(), init_utsname()->release); ++ printk(KERN_INFO "Pid: %d, comm: %.20s %s %s%s\n", task_pid_nr(current), ++ current->comm, print_tainted(), init_utsname()->release, ++ LINUX_PACKAGE_ID); + printk(KERN_INFO "RIP: %04lx:[<%016lx>]\n", PT_REGS_CS(regs) & 0xffff, + PT_REGS_IP(regs)); + printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs), +--- a/arch/ia64/kernel/process.c ++++ b/arch/ia64/kernel/process.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -103,9 +104,9 @@ show_regs (struct pt_regs *regs) + print_modules(); + printk("\n"); + show_regs_print_info(KERN_DEFAULT); +- printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n", ++ printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s%s)\n", + regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(), +- init_utsname()->release); ++ init_utsname()->release, LINUX_PACKAGE_ID); + print_symbol("ip is at %s\n", ip); + printk("unat: %016lx pfs : %016lx rsc : %016lx\n", + regs->ar_unat, regs->ar_pfs, regs->ar_rsc); +--- a/arch/powerpc/kernel/process.c ++++ b/arch/powerpc/kernel/process.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1340,8 +1341,9 @@ void show_regs(struct pt_regs * regs) + + printk("NIP: "REG" LR: "REG" CTR: "REG"\n", + regs->nip, regs->link, regs->ctr); +- printk("REGS: %p TRAP: %04lx %s (%s)\n", +- regs, regs->trap, print_tainted(), init_utsname()->release); ++ printk("REGS: %p TRAP: %04lx %s (%s%s)\n", ++ regs, regs->trap, print_tainted(), init_utsname()->release, ++ LINUX_PACKAGE_ID); + printk("MSR: "REG" ", regs->msr); + print_msr_bits(regs->msr); + printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -3282,11 +3283,12 @@ void __init dump_stack_set_arch_desc(con + */ + void dump_stack_print_info(const char *log_lvl) + { +- printk("%sCPU: %d PID: %d Comm: %.20s %s %s %.*s\n", ++ printk("%sCPU: %d PID: %d Comm: %.20s %s %s %.*s%s\n", + log_lvl, raw_smp_processor_id(), current->pid, current->comm, + print_tainted(), init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), +- init_utsname()->version); ++ init_utsname()->version, ++ LINUX_PACKAGE_ID); + + if (dump_stack_arch_desc_str[0] != '\0') + printk("%sHardware name: %s\n", diff --git a/patches/debian/yama-disable-by-default.patch b/patches/debian/yama-disable-by-default.patch new file mode 100644 index 00000000000..bbf8f21a50e --- /dev/null +++ b/patches/debian/yama-disable-by-default.patch @@ -0,0 +1,26 @@ +From: Ben Hutchings +Subject: yama: Disable by default +Date: Wed, 19 Jun 2013 04:35:28 +0100 +Bug-Debian: https://bugs.debian.org/712740 +Forwarded: not-needed + +--- a/security/yama/yama_lsm.c ++++ b/security/yama/yama_lsm.c +@@ -24,7 +24,7 @@ + #define YAMA_SCOPE_CAPABILITY 2 + #define YAMA_SCOPE_NO_ATTACH 3 + +-static int ptrace_scope = YAMA_SCOPE_RELATIONAL; ++static int ptrace_scope = YAMA_SCOPE_DISABLED; + + /* describe a ptrace relationship for potential exception */ + struct ptrace_relation { +@@ -402,7 +402,7 @@ static inline void yama_init_sysctl(void + + void __init yama_add_hooks(void) + { +- pr_info("Yama: becoming mindful.\n"); ++ pr_info("Yama: disabled by default; enable with sysctl kernel.yama.*\n"); + security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks)); + yama_init_sysctl(); + } diff --git a/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch b/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch new file mode 100644 index 00000000000..efabde1806c --- /dev/null +++ b/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch @@ -0,0 +1,155 @@ +From: Ben Hutchings +Date: Tue, 14 Sep 2010 04:33:34 +0100 +Subject: Kbuild: kconfig: Verbose version of --listnewconfig +Forwarded: http://thread.gmane.org/gmane.linux.kbuild.devel/5774 + +If the KBUILD_VERBOSE environment variable is set to non-zero, show +the default values of new symbols and not just their names. + +Based on work by Bastian Blank and +maximilian attems . Simplified by Michal Marek +. + +Signed-off-by: Ben Hutchings +--- + scripts/kconfig/conf.c | 42 ++++++++++++++++++++++++++++++++---------- + scripts/kconfig/confdata.c | 9 +++++++++ + scripts/kconfig/expr.h | 2 ++ + scripts/kconfig/lkc_proto.h | 1 + + 4 files changed, 44 insertions(+), 10 deletions(-) + +--- a/scripts/kconfig/conf.c ++++ b/scripts/kconfig/conf.c +@@ -369,7 +369,6 @@ static void conf(struct menu *menu) + switch (prop->type) { + case P_MENU: + if ((input_mode == silentoldconfig || +- input_mode == listnewconfig || + input_mode == olddefconfig) && + rootEntry != menu) { + check_conf(menu); +@@ -430,11 +429,7 @@ static void check_conf(struct menu *menu + if (sym && !sym_has_value(sym)) { + if (sym_is_changable(sym) || + (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { +- if (input_mode == listnewconfig) { +- if (sym->name && !sym_is_choice_value(sym)) { +- printf("%s%s\n", CONFIG_, sym->name); +- } +- } else if (input_mode != olddefconfig) { ++ if (input_mode != olddefconfig) { + if (!conf_cnt++) + printf(_("*\n* Restart config...\n*\n")); + rootEntry = menu_get_parent_menu(menu); +@@ -447,6 +442,30 @@ static void check_conf(struct menu *menu + check_conf(child); + } + ++static void report_conf(struct menu *menu, bool verbose) ++{ ++ struct symbol *sym; ++ struct menu *child; ++ ++ if (!menu_is_visible(menu)) ++ return; ++ ++ if (verbose && menu == &rootmenu) { ++ printf("\n#\n" ++ "# Changes:\n" ++ "#\n"); ++ } ++ ++ sym = menu->sym; ++ if (sym && (sym->flags & SYMBOL_NEW) && ++ sym_is_changable(sym) && sym->name && !sym_is_choice_value(sym)) { ++ conf_write_new_symbol(stdout, sym, verbose); ++ } ++ ++ for (child = menu->list; child; child = child->next) ++ report_conf(child, verbose); ++} ++ + static struct option long_opts[] = { + {"oldaskconfig", no_argument, NULL, oldaskconfig}, + {"oldconfig", no_argument, NULL, oldconfig}, +@@ -494,6 +513,7 @@ int main(int ac, char **av) + const char *progname = av[0]; + int opt; + const char *name, *defconfig_file = NULL /* gcc uninit */; ++ const char *value; + struct stat tmpstat; + + setlocale(LC_ALL, ""); +@@ -673,16 +693,18 @@ int main(int ac, char **av) + input_mode = silentoldconfig; + /* fall through */ + case oldconfig: +- case listnewconfig: + case olddefconfig: + case silentoldconfig: + /* Update until a loop caused no more changes */ + do { + conf_cnt = 0; + check_conf(&rootmenu); +- } while (conf_cnt && +- (input_mode != listnewconfig && +- input_mode != olddefconfig)); ++ } while (conf_cnt && input_mode != olddefconfig); ++ break; ++ case listnewconfig: ++ conf_set_all_new_symbols(def_default); ++ value = getenv("KBUILD_VERBOSE"); ++ report_conf(&rootmenu, value && atoi(value)); + break; + } + +--- a/scripts/kconfig/confdata.c ++++ b/scripts/kconfig/confdata.c +@@ -738,6 +738,14 @@ next_menu: + return 0; + } + ++void conf_write_new_symbol(FILE *fp, struct symbol *sym, bool verbose) ++{ ++ if (verbose) ++ conf_write_symbol(fp, sym, &kconfig_printer_cb, NULL); ++ else ++ fprintf(fp, "%s%s\n", CONFIG_, sym->name); ++} ++ + int conf_write(const char *name) + { + FILE *out; +@@ -1171,7 +1179,10 @@ bool conf_set_all_new_symbols(enum conf_ + bool has_changed = false; + + for_all_symbols(i, sym) { +- if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID)) ++ if (sym_has_value(sym)) ++ continue; ++ sym->flags |= SYMBOL_NEW; ++ if (sym->flags & SYMBOL_VALID) + continue; + switch (sym_get_type(sym)) { + case S_BOOLEAN: +--- a/scripts/kconfig/expr.h ++++ b/scripts/kconfig/expr.h +@@ -114,6 +114,8 @@ struct symbol { + /* Set symbol to y if allnoconfig; used for symbols that hide others */ + #define SYMBOL_ALLNOCONFIG_Y 0x200000 + ++#define SYMBOL_NEW 0x400000 /* symbol is new (loaded config did not provide a value) */ ++ + #define SYMBOL_MAXLENGTH 256 + #define SYMBOL_HASHSIZE 9973 + +--- a/scripts/kconfig/lkc_proto.h ++++ b/scripts/kconfig/lkc_proto.h +@@ -7,6 +7,7 @@ int conf_read_simple(const char *name, i + int conf_write_defconfig(const char *name); + int conf_write(const char *name); + int conf_write_autoconf(void); ++void conf_write_new_symbol(FILE*, struct symbol*, bool); + bool conf_get_changed(void); + void conf_set_changed_callback(void (*fn)(void)); + void conf_set_message_callback(void (*fn)(const char *fmt, va_list ap)); diff --git a/patches/features/all/aufs4/aufs4-base.patch b/patches/features/all/aufs4/aufs4-base.patch new file mode 100644 index 00000000000..4c0442708fd --- /dev/null +++ b/patches/features/all/aufs4/aufs4-base.patch @@ -0,0 +1,240 @@ +From: J. R. Okajima +Date: Fri Dec 16 21:28:57 2016 +0900 +Subject: aufs4.9 base patch +Origin: https://github.com/sfjro/aufs4-standalone/tree/0d8e71c28da317ec6371b6b95b46a70cefe13777 +Bug-Debian: https://bugs.debian.org/541828 + +Patch headers added by debian/patches/features/all/aufs4/gen-patch + +aufs4.9 base patch + +diff --git a/MAINTAINERS b/MAINTAINERS +index 63cefa6..d78b954 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -2293,6 +2293,19 @@ F: include/linux/audit.h + F: include/uapi/linux/audit.h + F: kernel/audit* + ++AUFS (advanced multi layered unification filesystem) FILESYSTEM ++M: "J. R. Okajima" ++L: linux-unionfs@vger.kernel.org ++L: aufs-users@lists.sourceforge.net (members only) ++W: http://aufs.sourceforge.net ++T: git://github.com/sfjro/aufs4-linux.git ++S: Supported ++F: Documentation/filesystems/aufs/ ++F: Documentation/ABI/testing/debugfs-aufs ++F: Documentation/ABI/testing/sysfs-aufs ++F: fs/aufs/ ++F: include/uapi/linux/aufs_type.h ++ + AUXILIARY DISPLAY DRIVERS + M: Miguel Ojeda Sandonis + W: http://miguelojeda.es/auxdisplay.htm +diff --git a/drivers/block/loop.c b/drivers/block/loop.c +index fa1b7a9..6ee9235 100644 +--- a/drivers/block/loop.c ++++ b/drivers/block/loop.c +@@ -701,6 +701,24 @@ static inline int is_loop_device(struct file *file) + return i && S_ISBLK(i->i_mode) && MAJOR(i->i_rdev) == LOOP_MAJOR; + } + ++/* ++ * for AUFS ++ * no get/put for file. ++ */ ++struct file *loop_backing_file(struct super_block *sb) ++{ ++ struct file *ret; ++ struct loop_device *l; ++ ++ ret = NULL; ++ if (MAJOR(sb->s_dev) == LOOP_MAJOR) { ++ l = sb->s_bdev->bd_disk->private_data; ++ ret = l->lo_backing_file; ++ } ++ return ret; ++} ++EXPORT_SYMBOL_GPL(loop_backing_file); ++ + /* loop sysfs attributes */ + + static ssize_t loop_attr_show(struct device *dev, char *page, +diff --git a/fs/dcache.c b/fs/dcache.c +index 5c7cc95..df0268c 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -1164,7 +1164,7 @@ enum d_walk_ret { + * + * The @enter() and @finish() callbacks are called with d_lock held. + */ +-static void d_walk(struct dentry *parent, void *data, ++void d_walk(struct dentry *parent, void *data, + enum d_walk_ret (*enter)(void *, struct dentry *), + void (*finish)(void *)) + { +diff --git a/fs/fcntl.c b/fs/fcntl.c +index 350a2c8..6f42279 100644 +--- a/fs/fcntl.c ++++ b/fs/fcntl.c +@@ -29,7 +29,7 @@ + + #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME) + +-static int setfl(int fd, struct file * filp, unsigned long arg) ++int setfl(int fd, struct file * filp, unsigned long arg) + { + struct inode * inode = file_inode(filp); + int error = 0; +@@ -60,6 +60,8 @@ static int setfl(int fd, struct file * filp, unsigned long arg) + + if (filp->f_op->check_flags) + error = filp->f_op->check_flags(arg); ++ if (!error && filp->f_op->setfl) ++ error = filp->f_op->setfl(filp, arg); + if (error) + return error; + +diff --git a/fs/inode.c b/fs/inode.c +index 88110fd..9a9ba3a 100644 +--- a/fs/inode.c ++++ b/fs/inode.c +@@ -1642,7 +1642,7 @@ int generic_update_time(struct inode *inode, struct timespec *time, int flags) + * This does the actual work of updating an inodes time or version. Must have + * had called mnt_want_write() before calling this. + */ +-static int update_time(struct inode *inode, struct timespec *time, int flags) ++int update_time(struct inode *inode, struct timespec *time, int flags) + { + int (*update_time)(struct inode *, struct timespec *, int); + +diff --git a/fs/read_write.c b/fs/read_write.c +index 190e0d36..4052813 100644 +--- a/fs/read_write.c ++++ b/fs/read_write.c +@@ -515,6 +515,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count, + } + EXPORT_SYMBOL(__vfs_write); + ++vfs_readf_t vfs_readf(struct file *file) ++{ ++ const struct file_operations *fop = file->f_op; ++ ++ if (fop->read) ++ return fop->read; ++ if (fop->read_iter) ++ return new_sync_read; ++ return ERR_PTR(-ENOSYS); ++} ++ ++vfs_writef_t vfs_writef(struct file *file) ++{ ++ const struct file_operations *fop = file->f_op; ++ ++ if (fop->write) ++ return fop->write; ++ if (fop->write_iter) ++ return new_sync_write; ++ return ERR_PTR(-ENOSYS); ++} ++ + ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos) + { + mm_segment_t old_fs; +diff --git a/fs/splice.c b/fs/splice.c +index 5a7750b..28160a7 100644 +--- a/fs/splice.c ++++ b/fs/splice.c +@@ -855,8 +855,8 @@ ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, + /* + * Attempt to initiate a splice from pipe to file. + */ +-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +- loff_t *ppos, size_t len, unsigned int flags) ++long do_splice_from(struct pipe_inode_info *pipe, struct file *out, ++ loff_t *ppos, size_t len, unsigned int flags) + { + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, + loff_t *, size_t, unsigned int); +@@ -872,9 +872,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + /* + * Attempt to initiate a splice from a file to a pipe. + */ +-static long do_splice_to(struct file *in, loff_t *ppos, +- struct pipe_inode_info *pipe, size_t len, +- unsigned int flags) ++long do_splice_to(struct file *in, loff_t *ppos, ++ struct pipe_inode_info *pipe, size_t len, ++ unsigned int flags) + { + ssize_t (*splice_read)(struct file *, loff_t *, + struct pipe_inode_info *, size_t, unsigned int); +diff --git a/include/linux/file.h b/include/linux/file.h +index 7444f5f..bdac0be 100644 +--- a/include/linux/file.h ++++ b/include/linux/file.h +@@ -19,6 +19,7 @@ + struct path; + extern struct file *alloc_file(struct path *, fmode_t mode, + const struct file_operations *fop); ++extern struct file *get_empty_filp(void); + + static inline void fput_light(struct file *file, int fput_needed) + { +diff --git a/include/linux/fs.h b/include/linux/fs.h +index dc0478c..27c05e7 100644 +--- a/include/linux/fs.h ++++ b/include/linux/fs.h +@@ -1291,6 +1291,7 @@ struct fasync_struct { + /* can be called from interrupts */ + extern void kill_fasync(struct fasync_struct **, int, int); + ++extern int setfl(int fd, struct file * filp, unsigned long arg); + extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); + extern void f_setown(struct file *filp, unsigned long arg, int force); + extern void f_delown(struct file *filp); +@@ -1715,6 +1716,7 @@ struct file_operations { + ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); + unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + int (*check_flags)(int); ++ int (*setfl)(struct file *, unsigned long); + int (*flock) (struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); +@@ -1768,6 +1770,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, + struct iovec *fast_pointer, + struct iovec **ret_pointer); + ++typedef ssize_t (*vfs_readf_t)(struct file *, char __user *, size_t, loff_t *); ++typedef ssize_t (*vfs_writef_t)(struct file *, const char __user *, size_t, ++ loff_t *); ++vfs_readf_t vfs_readf(struct file *file); ++vfs_writef_t vfs_writef(struct file *file); ++ + extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *); + extern ssize_t __vfs_write(struct file *, const char __user *, size_t, loff_t *); + extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *); +@@ -2140,6 +2148,7 @@ extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *, + extern void ihold(struct inode * inode); + extern void iput(struct inode *); + extern int generic_update_time(struct inode *, struct timespec *, int); ++extern int update_time(struct inode *, struct timespec *, int); + + /* /sys/fs */ + extern struct kobject *fs_kobj; +diff --git a/include/linux/splice.h b/include/linux/splice.h +index 00a2116..1f0a4a2 100644 +--- a/include/linux/splice.h ++++ b/include/linux/splice.h +@@ -86,4 +86,10 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, + + extern const struct pipe_buf_operations page_cache_pipe_buf_ops; + extern const struct pipe_buf_operations default_pipe_buf_ops; ++ ++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, ++ loff_t *ppos, size_t len, unsigned int flags); ++extern long do_splice_to(struct file *in, loff_t *ppos, ++ struct pipe_inode_info *pipe, size_t len, ++ unsigned int flags); + #endif diff --git a/patches/features/all/aufs4/aufs4-mmap.patch b/patches/features/all/aufs4/aufs4-mmap.patch new file mode 100644 index 00000000000..04010d6cc3d --- /dev/null +++ b/patches/features/all/aufs4/aufs4-mmap.patch @@ -0,0 +1,418 @@ +From: J. R. Okajima +Date: Fri Dec 16 21:28:57 2016 +0900 +Subject: aufs4.9 mmap patch +Origin: https://github.com/sfjro/aufs4-standalone/tree/0d8e71c28da317ec6371b6b95b46a70cefe13777 +Bug-Debian: https://bugs.debian.org/541828 + +Patch headers added by debian/patches/features/all/aufs4/gen-patch + +aufs4.9 mmap patch + +diff --git a/fs/proc/base.c b/fs/proc/base.c +index ca651ac..0e8551a 100644 +--- a/fs/proc/base.c ++++ b/fs/proc/base.c +@@ -1953,7 +1953,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path) + down_read(&mm->mmap_sem); + vma = find_exact_vma(mm, vm_start, vm_end); + if (vma && vma->vm_file) { +- *path = vma->vm_file->f_path; ++ *path = vma_pr_or_file(vma)->f_path; + path_get(path); + rc = 0; + } +diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c +index f8595e8..cb8eda0 100644 +--- a/fs/proc/nommu.c ++++ b/fs/proc/nommu.c +@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region) + file = region->vm_file; + + if (file) { +- struct inode *inode = file_inode(region->vm_file); ++ struct inode *inode; ++ ++ file = vmr_pr_or_file(region); ++ inode = file_inode(file); + dev = inode->i_sb->s_dev; + ino = inode->i_ino; + } +diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c +index 35b92d8..5b981db 100644 +--- a/fs/proc/task_mmu.c ++++ b/fs/proc/task_mmu.c +@@ -291,7 +291,10 @@ static int is_stack(struct proc_maps_private *priv, + const char *name = NULL; + + if (file) { +- struct inode *inode = file_inode(vma->vm_file); ++ struct inode *inode; ++ ++ file = vma_pr_or_file(vma); ++ inode = file_inode(file); + dev = inode->i_sb->s_dev; + ino = inode->i_ino; + pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; +@@ -1627,7 +1630,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid) + struct proc_maps_private *proc_priv = &numa_priv->proc_maps; + struct vm_area_struct *vma = v; + struct numa_maps *md = &numa_priv->md; +- struct file *file = vma->vm_file; ++ struct file *file = vma_pr_or_file(vma); + struct mm_struct *mm = vma->vm_mm; + struct mm_walk walk = { + .hugetlb_entry = gather_hugetlb_stats, +diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c +index 3717562..6a328f1 100644 +--- a/fs/proc/task_nommu.c ++++ b/fs/proc/task_nommu.c +@@ -155,7 +155,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma, + file = vma->vm_file; + + if (file) { +- struct inode *inode = file_inode(vma->vm_file); ++ struct inode *inode; ++ ++ file = vma_pr_or_file(vma); ++ inode = file_inode(file); + dev = inode->i_sb->s_dev; + ino = inode->i_ino; + pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; +diff --git a/include/linux/mm.h b/include/linux/mm.h +index a92c8d7..1d83a2a 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -1266,6 +1266,28 @@ static inline int fixup_user_fault(struct task_struct *tsk, + } + #endif + ++extern void vma_do_file_update_time(struct vm_area_struct *, const char[], int); ++extern struct file *vma_do_pr_or_file(struct vm_area_struct *, const char[], ++ int); ++extern void vma_do_get_file(struct vm_area_struct *, const char[], int); ++extern void vma_do_fput(struct vm_area_struct *, const char[], int); ++ ++#define vma_file_update_time(vma) vma_do_file_update_time(vma, __func__, \ ++ __LINE__) ++#define vma_pr_or_file(vma) vma_do_pr_or_file(vma, __func__, \ ++ __LINE__) ++#define vma_get_file(vma) vma_do_get_file(vma, __func__, __LINE__) ++#define vma_fput(vma) vma_do_fput(vma, __func__, __LINE__) ++ ++#ifndef CONFIG_MMU ++extern struct file *vmr_do_pr_or_file(struct vm_region *, const char[], int); ++extern void vmr_do_fput(struct vm_region *, const char[], int); ++ ++#define vmr_pr_or_file(region) vmr_do_pr_or_file(region, __func__, \ ++ __LINE__) ++#define vmr_fput(region) vmr_do_fput(region, __func__, __LINE__) ++#endif /* !CONFIG_MMU */ ++ + extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, + unsigned int gup_flags); + extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, +diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h +index 4a8aced..badd16b 100644 +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h +@@ -275,6 +275,7 @@ struct vm_region { + unsigned long vm_top; /* region allocated to here */ + unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ + struct file *vm_file; /* the backing file or NULL */ ++ struct file *vm_prfile; /* the virtual backing file or NULL */ + + int vm_usage; /* region usage count (access under nommu_region_sem) */ + bool vm_icache_flushed : 1; /* true if the icache has been flushed for +@@ -349,6 +350,7 @@ struct vm_area_struct { + unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE + units */ + struct file * vm_file; /* File we map to (can be NULL). */ ++ struct file *vm_prfile; /* shadow of vm_file */ + void * vm_private_data; /* was vm_pte (shared mem) */ + + #ifndef CONFIG_MMU +diff --git a/kernel/fork.c b/kernel/fork.c +index 997ac1d..4d0131b 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -624,7 +624,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, + struct inode *inode = file_inode(file); + struct address_space *mapping = file->f_mapping; + +- get_file(file); ++ vma_get_file(tmp); + if (tmp->vm_flags & VM_DENYWRITE) + atomic_dec(&inode->i_writecount); + i_mmap_lock_write(mapping); +diff --git a/mm/Makefile b/mm/Makefile +index 295bd7a..14fa1c8 100644 +--- a/mm/Makefile ++++ b/mm/Makefile +@@ -37,7 +37,7 @@ obj-y := filemap.o mempool.o oom_kill.o \ + mm_init.o mmu_context.o percpu.o slab_common.o \ + compaction.o vmacache.o \ + interval_tree.o list_lru.o workingset.o \ +- debug.o $(mmu-y) ++ prfile.o debug.o $(mmu-y) + + obj-y += init-mm.o + +diff --git a/mm/filemap.c b/mm/filemap.c +index 50b52fe..9e607f9 100644 +--- a/mm/filemap.c ++++ b/mm/filemap.c +@@ -2304,7 +2304,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) + int ret = VM_FAULT_LOCKED; + + sb_start_pagefault(inode->i_sb); +- file_update_time(vma->vm_file); ++ vma_file_update_time(vma); + lock_page(page); + if (page->mapping != inode->i_mapping) { + unlock_page(page); +diff --git a/mm/memory.c b/mm/memory.c +index e18c57b..7be4a39 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -2117,7 +2117,7 @@ static inline int wp_page_reuse(struct fault_env *fe, pte_t orig_pte, + } + + if (!page_mkwrite) +- file_update_time(vma->vm_file); ++ vma_file_update_time(vma); + } + + return VM_FAULT_WRITE; +diff --git a/mm/mmap.c b/mm/mmap.c +index 1af87c1..95b0ff4 100644 +--- a/mm/mmap.c ++++ b/mm/mmap.c +@@ -170,7 +170,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) + if (vma->vm_ops && vma->vm_ops->close) + vma->vm_ops->close(vma); + if (vma->vm_file) +- fput(vma->vm_file); ++ vma_fput(vma); + mpol_put(vma_policy(vma)); + kmem_cache_free(vm_area_cachep, vma); + return next; +@@ -879,7 +879,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, + if (remove_next) { + if (file) { + uprobe_munmap(next, next->vm_start, next->vm_end); +- fput(file); ++ vma_fput(vma); + } + if (next->anon_vma) + anon_vma_merge(vma, next); +@@ -1727,8 +1727,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr, + return addr; + + unmap_and_free_vma: ++ vma_fput(vma); + vma->vm_file = NULL; +- fput(file); + + /* Undo any partial mapping done by a device driver. */ + unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); +@@ -2533,7 +2533,7 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, + goto out_free_mpol; + + if (new->vm_file) +- get_file(new->vm_file); ++ vma_get_file(new); + + if (new->vm_ops && new->vm_ops->open) + new->vm_ops->open(new); +@@ -2552,7 +2552,7 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, + if (new->vm_ops && new->vm_ops->close) + new->vm_ops->close(new); + if (new->vm_file) +- fput(new->vm_file); ++ vma_fput(new); + unlink_anon_vmas(new); + out_free_mpol: + mpol_put(vma_policy(new)); +@@ -2703,7 +2703,7 @@ int vm_munmap(unsigned long start, size_t len) + struct vm_area_struct *vma; + unsigned long populate = 0; + unsigned long ret = -EINVAL; +- struct file *file; ++ struct file *file, *prfile; + + pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.txt.\n", + current->comm, current->pid); +@@ -2778,10 +2778,27 @@ int vm_munmap(unsigned long start, size_t len) + } + } + +- file = get_file(vma->vm_file); ++ vma_get_file(vma); ++ file = vma->vm_file; ++ prfile = vma->vm_prfile; + ret = do_mmap_pgoff(vma->vm_file, start, size, + prot, flags, pgoff, &populate); ++ if (!IS_ERR_VALUE(ret) && file && prfile) { ++ struct vm_area_struct *new_vma; ++ ++ new_vma = find_vma(mm, ret); ++ if (!new_vma->vm_prfile) ++ new_vma->vm_prfile = prfile; ++ if (new_vma != vma) ++ get_file(prfile); ++ } ++ /* ++ * two fput()s instead of vma_fput(vma), ++ * coz vma may not be available anymore. ++ */ + fput(file); ++ if (prfile) ++ fput(prfile); + out: + up_write(&mm->mmap_sem); + if (populate) +@@ -3056,7 +3073,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, + if (anon_vma_clone(new_vma, vma)) + goto out_free_mempol; + if (new_vma->vm_file) +- get_file(new_vma->vm_file); ++ vma_get_file(new_vma); + if (new_vma->vm_ops && new_vma->vm_ops->open) + new_vma->vm_ops->open(new_vma); + vma_link(mm, new_vma, prev, rb_link, rb_parent); +diff --git a/mm/nommu.c b/mm/nommu.c +index 8b8faaf..5d26ed94 100644 +--- a/mm/nommu.c ++++ b/mm/nommu.c +@@ -636,7 +636,7 @@ static void __put_nommu_region(struct vm_region *region) + up_write(&nommu_region_sem); + + if (region->vm_file) +- fput(region->vm_file); ++ vmr_fput(region); + + /* IO memory and memory shared directly out of the pagecache + * from ramfs/tmpfs mustn't be released here */ +@@ -794,7 +794,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) + if (vma->vm_ops && vma->vm_ops->close) + vma->vm_ops->close(vma); + if (vma->vm_file) +- fput(vma->vm_file); ++ vma_fput(vma); + put_nommu_region(vma->vm_region); + kmem_cache_free(vm_area_cachep, vma); + } +@@ -1320,7 +1320,7 @@ unsigned long do_mmap(struct file *file, + goto error_just_free; + } + } +- fput(region->vm_file); ++ vmr_fput(region); + kmem_cache_free(vm_region_jar, region); + region = pregion; + result = start; +@@ -1395,10 +1395,10 @@ unsigned long do_mmap(struct file *file, + up_write(&nommu_region_sem); + error: + if (region->vm_file) +- fput(region->vm_file); ++ vmr_fput(region); + kmem_cache_free(vm_region_jar, region); + if (vma->vm_file) +- fput(vma->vm_file); ++ vma_fput(vma); + kmem_cache_free(vm_area_cachep, vma); + return ret; + +diff --git a/mm/prfile.c b/mm/prfile.c +new file mode 100644 +index 0000000..b323b8a +--- /dev/null ++++ b/mm/prfile.c +@@ -0,0 +1,86 @@ ++/* ++ * Mainly for aufs which mmap(2) diffrent file and wants to print different path ++ * in /proc/PID/maps. ++ * Call these functions via macros defined in linux/mm.h. ++ * ++ * See Documentation/filesystems/aufs/design/06mmap.txt ++ * ++ * Copyright (c) 2014 Junjro R. Okajima ++ * Copyright (c) 2014 Ian Campbell ++ */ ++ ++#include ++#include ++#include ++ ++/* #define PRFILE_TRACE */ ++static inline void prfile_trace(struct file *f, struct file *pr, ++ const char func[], int line, const char func2[]) ++{ ++#ifdef PRFILE_TRACE ++ if (pr) ++ pr_info("%s:%d: %s, %s\n", func, line, func2, ++ f ? (char *)f->f_path.dentry->d_name.name : "(null)"); ++#endif ++} ++ ++void vma_do_file_update_time(struct vm_area_struct *vma, const char func[], ++ int line) ++{ ++ struct file *f = vma->vm_file, *pr = vma->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ file_update_time(f); ++ if (f && pr) ++ file_update_time(pr); ++} ++ ++struct file *vma_do_pr_or_file(struct vm_area_struct *vma, const char func[], ++ int line) ++{ ++ struct file *f = vma->vm_file, *pr = vma->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ return (f && pr) ? pr : f; ++} ++ ++void vma_do_get_file(struct vm_area_struct *vma, const char func[], int line) ++{ ++ struct file *f = vma->vm_file, *pr = vma->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ get_file(f); ++ if (f && pr) ++ get_file(pr); ++} ++ ++void vma_do_fput(struct vm_area_struct *vma, const char func[], int line) ++{ ++ struct file *f = vma->vm_file, *pr = vma->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ fput(f); ++ if (f && pr) ++ fput(pr); ++} ++ ++#ifndef CONFIG_MMU ++struct file *vmr_do_pr_or_file(struct vm_region *region, const char func[], ++ int line) ++{ ++ struct file *f = region->vm_file, *pr = region->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ return (f && pr) ? pr : f; ++} ++ ++void vmr_do_fput(struct vm_region *region, const char func[], int line) ++{ ++ struct file *f = region->vm_file, *pr = region->vm_prfile; ++ ++ prfile_trace(f, pr, func, line, __func__); ++ fput(f); ++ if (f && pr) ++ fput(pr); ++} ++#endif /* !CONFIG_MMU */ diff --git a/patches/features/all/aufs4/aufs4-standalone.patch b/patches/features/all/aufs4/aufs4-standalone.patch new file mode 100644 index 00000000000..de345e5302c --- /dev/null +++ b/patches/features/all/aufs4/aufs4-standalone.patch @@ -0,0 +1,398 @@ +From: J. R. Okajima +Date: Fri Dec 16 21:28:57 2016 +0900 +Subject: aufs4.9 standalone patch +Origin: https://github.com/sfjro/aufs4-standalone/tree/0d8e71c28da317ec6371b6b95b46a70cefe13777 +Bug-Debian: https://bugs.debian.org/541828 + +Patch headers added by debian/patches/features/all/aufs4/gen-patch + +aufs4.9 standalone patch + +diff --git a/fs/dcache.c b/fs/dcache.c +index df0268c..755fea1 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -1272,6 +1272,7 @@ void d_walk(struct dentry *parent, void *data, + seq = 1; + goto again; + } ++EXPORT_SYMBOL_GPL(d_walk); + + /* + * Search for at least 1 mount point in the dentry's subdirs. +@@ -2855,6 +2856,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2) + + write_sequnlock(&rename_lock); + } ++EXPORT_SYMBOL_GPL(d_exchange); + + /** + * d_ancestor - search for an ancestor +diff --git a/fs/exec.c b/fs/exec.c +index 4e497b9..e27d323 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -104,6 +104,7 @@ bool path_noexec(const struct path *path) + return (path->mnt->mnt_flags & MNT_NOEXEC) || + (path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC); + } ++EXPORT_SYMBOL_GPL(path_noexec); + + #ifdef CONFIG_USELIB + /* +diff --git a/fs/fcntl.c b/fs/fcntl.c +index 6f42279..04fd33c 100644 +--- a/fs/fcntl.c ++++ b/fs/fcntl.c +@@ -82,6 +82,7 @@ int setfl(int fd, struct file * filp, unsigned long arg) + out: + return error; + } ++EXPORT_SYMBOL_GPL(setfl); + + static void f_modown(struct file *filp, struct pid *pid, enum pid_type type, + int force) +diff --git a/fs/file_table.c b/fs/file_table.c +index ad17e05..ae9f267 100644 +--- a/fs/file_table.c ++++ b/fs/file_table.c +@@ -147,6 +147,7 @@ struct file *get_empty_filp(void) + } + return ERR_PTR(-ENFILE); + } ++EXPORT_SYMBOL_GPL(get_empty_filp); + + /** + * alloc_file - allocate and initialize a 'struct file' +@@ -258,6 +259,7 @@ void flush_delayed_fput(void) + { + delayed_fput(NULL); + } ++EXPORT_SYMBOL_GPL(flush_delayed_fput); + + static DECLARE_DELAYED_WORK(delayed_fput_work, delayed_fput); + +@@ -300,6 +302,7 @@ void __fput_sync(struct file *file) + } + + EXPORT_SYMBOL(fput); ++EXPORT_SYMBOL_GPL(__fput_sync); + + void put_filp(struct file *file) + { +@@ -308,6 +311,7 @@ void put_filp(struct file *file) + file_free(file); + } + } ++EXPORT_SYMBOL_GPL(put_filp); + + void __init files_init(void) + { +diff --git a/fs/inode.c b/fs/inode.c +index 9a9ba3a..a3a18d8 100644 +--- a/fs/inode.c ++++ b/fs/inode.c +@@ -1651,6 +1651,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags) + + return update_time(inode, time, flags); + } ++EXPORT_SYMBOL_GPL(update_time); + + /** + * touch_atime - update the access time +diff --git a/fs/namespace.c b/fs/namespace.c +index e6c234b..8d13f7b 100644 +--- a/fs/namespace.c ++++ b/fs/namespace.c +@@ -466,6 +466,7 @@ void __mnt_drop_write(struct vfsmount *mnt) + mnt_dec_writers(real_mount(mnt)); + preempt_enable(); + } ++EXPORT_SYMBOL_GPL(__mnt_drop_write); + + /** + * mnt_drop_write - give up write access to a mount +@@ -1823,6 +1824,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, + } + return 0; + } ++EXPORT_SYMBOL_GPL(iterate_mounts); + + static void cleanup_group_ids(struct mount *mnt, struct mount *end) + { +diff --git a/fs/notify/group.c b/fs/notify/group.c +index fbe3cbe..bdfc61e 100644 +--- a/fs/notify/group.c ++++ b/fs/notify/group.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include + #include "fsnotify.h" +@@ -100,6 +101,7 @@ void fsnotify_get_group(struct fsnotify_group *group) + { + atomic_inc(&group->refcnt); + } ++EXPORT_SYMBOL_GPL(fsnotify_get_group); + + /* + * Drop a reference to a group. Free it if it's through. +@@ -109,6 +111,7 @@ void fsnotify_put_group(struct fsnotify_group *group) + if (atomic_dec_and_test(&group->refcnt)) + fsnotify_final_destroy_group(group); + } ++EXPORT_SYMBOL_GPL(fsnotify_put_group); + + /* + * Create a new fsnotify_group and hold a reference for the group returned. +@@ -137,6 +140,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops) + + return group; + } ++EXPORT_SYMBOL_GPL(fsnotify_alloc_group); + + int fsnotify_fasync(int fd, struct file *file, int on) + { +diff --git a/fs/notify/mark.c b/fs/notify/mark.c +index d3fea0b..5fc06ad 100644 +--- a/fs/notify/mark.c ++++ b/fs/notify/mark.c +@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) + mark->free_mark(mark); + } + } ++EXPORT_SYMBOL_GPL(fsnotify_put_mark); + + /* Calculate mask of events for a list of marks */ + u32 fsnotify_recalc_mask(struct hlist_head *head) +@@ -230,6 +231,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark, + mutex_unlock(&group->mark_mutex); + fsnotify_free_mark(mark); + } ++EXPORT_SYMBOL_GPL(fsnotify_destroy_mark); + + void fsnotify_destroy_marks(struct hlist_head *head, spinlock_t *lock) + { +@@ -415,6 +417,7 @@ int fsnotify_add_mark_locked(struct fsnotify_mark *mark, + + return ret; + } ++EXPORT_SYMBOL_GPL(fsnotify_add_mark); + + int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group, + struct inode *inode, struct vfsmount *mnt, int allow_dups) +@@ -533,6 +536,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, + atomic_set(&mark->refcnt, 1); + mark->free_mark = free_mark; + } ++EXPORT_SYMBOL_GPL(fsnotify_init_mark); + + /* + * Destroy all marks in destroy_list, waits for SRCU period to finish before +diff --git a/fs/open.c b/fs/open.c +index d3ed817..20d2494 100644 +--- a/fs/open.c ++++ b/fs/open.c +@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, + inode_unlock(dentry->d_inode); + return ret; + } ++EXPORT_SYMBOL_GPL(do_truncate); + + long vfs_truncate(const struct path *path, loff_t length) + { +@@ -695,6 +696,7 @@ int open_check_o_direct(struct file *f) + } + return 0; + } ++EXPORT_SYMBOL_GPL(open_check_o_direct); + + static int do_dentry_open(struct file *f, + struct inode *inode, +diff --git a/fs/read_write.c b/fs/read_write.c +index 4052813..7dfd732 100644 +--- a/fs/read_write.c ++++ b/fs/read_write.c +@@ -525,6 +525,7 @@ vfs_readf_t vfs_readf(struct file *file) + return new_sync_read; + return ERR_PTR(-ENOSYS); + } ++EXPORT_SYMBOL_GPL(vfs_readf); + + vfs_writef_t vfs_writef(struct file *file) + { +@@ -536,6 +537,7 @@ vfs_writef_t vfs_writef(struct file *file) + return new_sync_write; + return ERR_PTR(-ENOSYS); + } ++EXPORT_SYMBOL_GPL(vfs_writef); + + ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos) + { +diff --git a/fs/splice.c b/fs/splice.c +index 28160a7..98c1902 100644 +--- a/fs/splice.c ++++ b/fs/splice.c +@@ -868,6 +868,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + + return splice_write(pipe, out, ppos, len, flags); + } ++EXPORT_SYMBOL_GPL(do_splice_from); + + /* + * Attempt to initiate a splice from a file to a pipe. +@@ -897,6 +898,7 @@ long do_splice_to(struct file *in, loff_t *ppos, + + return splice_read(in, ppos, pipe, len, flags); + } ++EXPORT_SYMBOL_GPL(do_splice_to); + + /** + * splice_direct_to_actor - splices data directly between two non-pipes +diff --git a/fs/xattr.c b/fs/xattr.c +index 2d13b4e..41c2bcd 100644 +--- a/fs/xattr.c ++++ b/fs/xattr.c +@@ -296,6 +296,7 @@ int __vfs_setxattr_noperm(struct dentry *dentry, const char *name, + *xattr_value = value; + return error; + } ++EXPORT_SYMBOL_GPL(vfs_getxattr_alloc); + + ssize_t + __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name, +diff --git a/kernel/task_work.c b/kernel/task_work.c +index d513051..e056d54 100644 +--- a/kernel/task_work.c ++++ b/kernel/task_work.c +@@ -119,3 +119,4 @@ void task_work_run(void) + } while (work); + } + } ++EXPORT_SYMBOL_GPL(task_work_run); +diff --git a/security/commoncap.c b/security/commoncap.c +index 8df676f..6b5cc07 100644 +--- a/security/commoncap.c ++++ b/security/commoncap.c +@@ -1061,12 +1061,14 @@ int cap_mmap_addr(unsigned long addr) + } + return ret; + } ++EXPORT_SYMBOL_GPL(cap_mmap_addr); + + int cap_mmap_file(struct file *file, unsigned long reqprot, + unsigned long prot, unsigned long flags) + { + return 0; + } ++EXPORT_SYMBOL_GPL(cap_mmap_file); + + #ifdef CONFIG_SECURITY + +diff --git a/security/device_cgroup.c b/security/device_cgroup.c +index 03c1652..f88c84b 100644 +--- a/security/device_cgroup.c ++++ b/security/device_cgroup.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask) + return __devcgroup_check_permission(type, imajor(inode), iminor(inode), + access); + } ++EXPORT_SYMBOL_GPL(__devcgroup_inode_permission); + + int devcgroup_inode_mknod(int mode, dev_t dev) + { +diff --git a/security/security.c b/security/security.c +index f825304..8dd441d 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -443,6 +443,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry) + return 0; + return call_int_hook(path_rmdir, 0, dir, dentry); + } ++EXPORT_SYMBOL_GPL(security_path_rmdir); + + int security_path_unlink(const struct path *dir, struct dentry *dentry) + { +@@ -459,6 +460,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry, + return 0; + return call_int_hook(path_symlink, 0, dir, dentry, old_name); + } ++EXPORT_SYMBOL_GPL(security_path_symlink); + + int security_path_link(struct dentry *old_dentry, const struct path *new_dir, + struct dentry *new_dentry) +@@ -467,6 +469,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir, + return 0; + return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry); + } ++EXPORT_SYMBOL_GPL(security_path_link); + + int security_path_rename(const struct path *old_dir, struct dentry *old_dentry, + const struct path *new_dir, struct dentry *new_dentry, +@@ -494,6 +497,7 @@ int security_path_truncate(const struct path *path) + return 0; + return call_int_hook(path_truncate, 0, path); + } ++EXPORT_SYMBOL_GPL(security_path_truncate); + + int security_path_chmod(const struct path *path, umode_t mode) + { +@@ -501,6 +505,7 @@ int security_path_chmod(const struct path *path, umode_t mode) + return 0; + return call_int_hook(path_chmod, 0, path, mode); + } ++EXPORT_SYMBOL_GPL(security_path_chmod); + + int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) + { +@@ -508,6 +513,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) + return 0; + return call_int_hook(path_chown, 0, path, uid, gid); + } ++EXPORT_SYMBOL_GPL(security_path_chown); + + int security_path_chroot(const struct path *path) + { +@@ -593,6 +599,7 @@ int security_inode_readlink(struct dentry *dentry) + return 0; + return call_int_hook(inode_readlink, 0, dentry); + } ++EXPORT_SYMBOL_GPL(security_inode_readlink); + + int security_inode_follow_link(struct dentry *dentry, struct inode *inode, + bool rcu) +@@ -608,6 +615,7 @@ int security_inode_permission(struct inode *inode, int mask) + return 0; + return call_int_hook(inode_permission, 0, inode, mask); + } ++EXPORT_SYMBOL_GPL(security_inode_permission); + + int security_inode_setattr(struct dentry *dentry, struct iattr *attr) + { +@@ -779,6 +787,7 @@ int security_file_permission(struct file *file, int mask) + + return fsnotify_perm(file, mask); + } ++EXPORT_SYMBOL_GPL(security_file_permission); + + int security_file_alloc(struct file *file) + { +@@ -838,6 +847,7 @@ int security_mmap_file(struct file *file, unsigned long prot, + return ret; + return ima_file_mmap(file, prot); + } ++EXPORT_SYMBOL_GPL(security_mmap_file); + + int security_mmap_addr(unsigned long addr) + { diff --git a/patches/features/all/aufs4/gen-patch b/patches/features/all/aufs4/gen-patch new file mode 100755 index 00000000000..d1d96fdac91 --- /dev/null +++ b/patches/features/all/aufs4/gen-patch @@ -0,0 +1,31 @@ +#!/bin/bash -e + +aufs_dir="$1" + +export GIT_DIR="$aufs_dir/.git" + +from_line='From: J. R. Okajima ' +if [ -d "$GIT_DIR" ]; then + origin_line="Origin: https://github.com/sfjro/aufs4-standalone/tree/$(git rev-list HEAD -1)" +else + echo >&2 "W: Cannot include a specific origin URL without an aufs git repo" + origin_line='Origin: https://github.com/sfjro/aufs4-standalone/branches' +fi +bug_line='Bug-Debian: https://bugs.debian.org/541828' + +for patch in aufs4-{base,mmap,standalone}.patch; do + { + echo "$from_line" + if [ -d "$GIT_DIR" ]; then + git log --pretty='Date: %ad' HEAD -1 -- "$patch" + fi + echo -n 'Subject: ' + head -1 "$aufs_dir/$patch" + echo "$origin_line" + echo "$bug_line" + echo + echo 'Patch headers added by debian/patches/features/all/aufs4/gen-patch' + echo + sed 's/^+.*EXPORT_SYMBOL\b/&_GPL/' < "$aufs_dir"/"$patch" + } > debian/patches/features/all/aufs4/"$patch" +done diff --git a/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch b/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch new file mode 100644 index 00000000000..7ab3e6bf1ff --- /dev/null +++ b/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch @@ -0,0 +1,145 @@ +From: Ben Hutchings +Date: Mon, 24 Aug 2009 23:19:58 +0100 +Subject: af9005: Use request_firmware() to load register init script +Forwarded: no + +Read the register init script from the Windows driver. This is sick +but should avoid the potential copyright infringement in distributing +a version of the script which is directly derived from the driver. +--- + drivers/media/dvb/dvb-usb/Kconfig | 2 +- + drivers/media/dvb/dvb-usb/af9005-fe.c | 66 ++++++++++++++++++++++++++------ + 2 files changed, 54 insertions(+), 14 deletions(-) + +--- a/drivers/media/usb/dvb-usb/Kconfig ++++ b/drivers/media/usb/dvb-usb/Kconfig +@@ -227,10 +227,10 @@ config DVB_USB_OPERA1 + + config DVB_USB_AF9005 + tristate "Afatech AF9005 DVB-T USB1.1 support" +- depends on BROKEN + depends on DVB_USB + select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT + select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT ++ select FW_LOADER + help + Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver + and the TerraTec Cinergy T USB XE (Rev.1) +--- a/drivers/media/usb/dvb-usb/af9005-fe.c ++++ b/drivers/media/usb/dvb-usb/af9005-fe.c +@@ -22,10 +22,26 @@ + * see Documentation/dvb/README.dvb-usb for more information + */ + #include "af9005.h" +-#include "af9005-script.h" + #include "mt2060.h" + #include "qt1010.h" + #include ++#include ++ ++/* Register initialisation script to be extracted from the Windows driver */ ++ ++typedef struct { ++ __le16 reg; ++ u8 pos; ++ u8 len; ++ u8 val; ++ u8 pad; ++} __packed RegDesc; ++ ++#define WIN_DRV_NAME "AF05BDA.sys" ++#define WIN_DRV_VERSION "6.3.2.1" ++#define WIN_DRV_SIZE 133504 ++#define WIN_DRV_SCRIPT_OFFSET 88316 ++#define WIN_DRV_SCRIPT_SIZE 1110 + + struct af9005_fe_state { + struct dvb_usb_device *d; +@@ -816,6 +832,8 @@ static int af9005_fe_init(struct dvb_fro + { + struct af9005_fe_state *state = fe->demodulator_priv; + struct dvb_usb_adapter *adap = fe->dvb->priv; ++ const struct firmware *fw; ++ const RegDesc *script; + int ret, i, scriptlen; + u8 temp, temp0 = 0, temp1 = 0, temp2 = 0; + u8 buf[2]; +@@ -968,37 +986,55 @@ static int af9005_fe_init(struct dvb_fro + if ((ret = af9005_write_ofdm_register(state->d, 0xaefb, 0x01))) + return ret; + +- /* load init script */ +- deb_info("load init script\n"); +- scriptlen = sizeof(script) / sizeof(RegDesc); ++ /* load and validate init script */ ++ deb_info("load init script from Windows driver\n"); ++ ret = request_firmware(&fw, WIN_DRV_NAME, &state->d->udev->dev); ++ if (ret) ++ return ret; ++ BUILD_BUG_ON(sizeof(RegDesc) != 6); ++ if (fw->size != WIN_DRV_SIZE || ++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET, ++ "\x80\xa1\x00\x08\x0a\x00", 6) || ++ memcmp(fw->data + WIN_DRV_SCRIPT_OFFSET + WIN_DRV_SCRIPT_SIZE - 6, ++ "\x49\xa3\x00\x06\x02\x00", 6)) { ++ err("%s is invalid - should be version %s, size %u bytes\n", ++ WIN_DRV_NAME, WIN_DRV_VERSION, WIN_DRV_SIZE); ++ ret = -EINVAL; ++ goto fail_release; ++ } ++ ++ script = (const RegDesc *)(fw->data + WIN_DRV_SCRIPT_OFFSET); ++ scriptlen = WIN_DRV_SCRIPT_SIZE / sizeof(RegDesc); + for (i = 0; i < scriptlen; i++) { ++ u16 reg = le16_to_cpu(script[i].reg); + if ((ret = +- af9005_write_register_bits(state->d, script[i].reg, ++ af9005_write_register_bits(state->d, reg, + script[i].pos, + script[i].len, script[i].val))) +- return ret; ++ goto fail_release; + /* save 3 bytes of original fcw */ +- if (script[i].reg == 0xae18) ++ if (reg == 0xae18) + temp2 = script[i].val; +- if (script[i].reg == 0xae19) ++ if (reg == 0xae19) + temp1 = script[i].val; +- if (script[i].reg == 0xae1a) ++ if (reg == 0xae1a) + temp0 = script[i].val; + + /* save original unplug threshold */ +- if (script[i].reg == xd_p_reg_unplug_th) ++ if (reg == xd_p_reg_unplug_th) + state->original_if_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_rf_gain_th) ++ if (reg == xd_p_reg_unplug_rf_gain_th) + state->original_rf_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_dtop_if_gain_th) ++ if (reg == xd_p_reg_unplug_dtop_if_gain_th) + state->original_dtop_if_unplug_th = script[i].val; +- if (script[i].reg == xd_p_reg_unplug_dtop_rf_gain_th) ++ if (reg == xd_p_reg_unplug_dtop_rf_gain_th) + state->original_dtop_rf_unplug_th = script[i].val; + + } + state->original_fcw = + ((u32) temp2 << 16) + ((u32) temp1 << 8) + (u32) temp0; + ++ release_firmware(fw); + + /* save original TOPs */ + deb_info("save original TOPs\n"); +@@ -1078,6 +1114,10 @@ static int af9005_fe_init(struct dvb_fro + + deb_info("profit!\n"); + return 0; ++ ++fail_release: ++ release_firmware(fw); ++ return ret; + } + + static int af9005_fe_sleep(struct dvb_frontend *fe) diff --git a/patches/features/all/rt/ARM-enable-irq-in-translation-section-permission-fau.patch b/patches/features/all/rt/ARM-enable-irq-in-translation-section-permission-fau.patch new file mode 100644 index 00000000000..7c0bf97656e --- /dev/null +++ b/patches/features/all/rt/ARM-enable-irq-in-translation-section-permission-fau.patch @@ -0,0 +1,86 @@ +From: "Yadi.hu" +Date: Wed, 10 Dec 2014 10:32:09 +0800 +Subject: ARM: enable irq in translation/section permission fault handlers +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Probably happens on all ARM, with +CONFIG_PREEMPT_RT_FULL +CONFIG_DEBUG_ATOMIC_SLEEP + +This simple program.... + +int main() { + *((char*)0xc0001000) = 0; +}; + +[ 512.742724] BUG: sleeping function called from invalid context at kernel/rtmutex.c:658 +[ 512.743000] in_atomic(): 0, irqs_disabled(): 128, pid: 994, name: a +[ 512.743217] INFO: lockdep is turned off. +[ 512.743360] irq event stamp: 0 +[ 512.743482] hardirqs last enabled at (0): [< (null)>] (null) +[ 512.743714] hardirqs last disabled at (0): [] copy_process+0x3b0/0x11c0 +[ 512.744013] softirqs last enabled at (0): [] copy_process+0x3b0/0x11c0 +[ 512.744303] softirqs last disabled at (0): [< (null)>] (null) +[ 512.744631] [] (unwind_backtrace+0x0/0x104) +[ 512.745001] [] (dump_stack+0x20/0x24) +[ 512.745355] [] (__might_sleep+0x1dc/0x1e0) +[ 512.745717] [] (rt_spin_lock+0x34/0x6c) +[ 512.746073] [] (do_force_sig_info+0x34/0xf0) +[ 512.746457] [] (force_sig_info+0x18/0x1c) +[ 512.746829] [] (__do_user_fault+0x9c/0xd8) +[ 512.747185] [] (do_bad_area+0x7c/0x94) +[ 512.747536] [] (do_sect_fault+0x40/0x48) +[ 512.747898] [] (do_DataAbort+0x40/0xa0) +[ 512.748181] Exception stack(0xecaa1fb0 to 0xecaa1ff8) + +Oxc0000000 belongs to kernel address space, user task can not be +allowed to access it. For above condition, correct result is that +test case should receive a “segment fault” and exits but not stacks. + +the root cause is commit 02fe2845d6a8 ("avoid enabling interrupts in +prefetch/data abort handlers"),it deletes irq enable block in Data +abort assemble code and move them into page/breakpiont/alignment fault +handlers instead. But author does not enable irq in translation/section +permission fault handlers. ARM disables irq when it enters exception/ +interrupt mode, if kernel doesn't enable irq, it would be still disabled +during translation/section permission fault. + +We see the above splat because do_force_sig_info is still called with +IRQs off, and that code eventually does a: + + spin_lock_irqsave(&t->sighand->siglock, flags); + +As this is architecture independent code, and we've not seen any other +need for other arch to have the siglock converted to raw lock, we can +conclude that we should enable irq for ARM translation/section +permission exception. + + +Signed-off-by: Yadi.hu +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/mm/fault.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/arch/arm/mm/fault.c ++++ b/arch/arm/mm/fault.c +@@ -430,6 +430,9 @@ do_translation_fault(unsigned long addr, + if (addr < TASK_SIZE) + return do_page_fault(addr, fsr, regs); + ++ if (interrupts_enabled(regs)) ++ local_irq_enable(); ++ + if (user_mode(regs)) + goto bad_area; + +@@ -497,6 +500,9 @@ do_translation_fault(unsigned long addr, + static int + do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) + { ++ if (interrupts_enabled(regs)) ++ local_irq_enable(); ++ + do_bad_area(addr, fsr, regs); + return 0; + } diff --git a/patches/features/all/rt/HACK-printk-drop-the-logbuf_lock-more-often.patch b/patches/features/all/rt/HACK-printk-drop-the-logbuf_lock-more-often.patch new file mode 100644 index 00000000000..88ba0b7473f --- /dev/null +++ b/patches/features/all/rt/HACK-printk-drop-the-logbuf_lock-more-often.patch @@ -0,0 +1,76 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 21 Mar 2013 19:01:05 +0100 +Subject: printk: Drop the logbuf_lock more often +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The lock is hold with irgs off. The latency drops 500us+ on my arm bugs +with a "full" buffer after executing "dmesg" on the shell. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/printk/printk.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -1396,6 +1396,7 @@ static int syslog_print_all(char __user + { + char *text; + int len = 0; ++ int attempts = 0; + + text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL); + if (!text) +@@ -1407,6 +1408,14 @@ static int syslog_print_all(char __user + u64 seq; + u32 idx; + enum log_flags prev; ++ int num_msg; ++try_again: ++ attempts++; ++ if (attempts > 10) { ++ len = -EBUSY; ++ goto out; ++ } ++ num_msg = 0; + + /* + * Find first record that fits, including all following records, +@@ -1422,6 +1431,14 @@ static int syslog_print_all(char __user + prev = msg->flags; + idx = log_next(idx); + seq++; ++ num_msg++; ++ if (num_msg > 5) { ++ num_msg = 0; ++ raw_spin_unlock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); ++ if (clear_seq < log_first_seq) ++ goto try_again; ++ } + } + + /* move first record forward until length fits into the buffer */ +@@ -1435,6 +1452,14 @@ static int syslog_print_all(char __user + prev = msg->flags; + idx = log_next(idx); + seq++; ++ num_msg++; ++ if (num_msg > 5) { ++ num_msg = 0; ++ raw_spin_unlock_irq(&logbuf_lock); ++ raw_spin_lock_irq(&logbuf_lock); ++ if (clear_seq < log_first_seq) ++ goto try_again; ++ } + } + + /* last message fitting into this dump */ +@@ -1475,6 +1500,7 @@ static int syslog_print_all(char __user + clear_seq = log_next_seq; + clear_idx = log_next_idx; + } ++out: + raw_spin_unlock_irq(&logbuf_lock); + + kfree(text); diff --git a/patches/features/all/rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/patches/features/all/rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch new file mode 100644 index 00000000000..d91772f0ef4 --- /dev/null +++ b/patches/features/all/rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -0,0 +1,52 @@ +From: Josh Cartwright +Date: Thu, 11 Feb 2016 11:54:01 -0600 +Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating +the vgic and timer states to prevent the calling task from migrating to +another CPU. It does so to prevent the task from writing to the +incorrect per-CPU GIC distributor registers. + +On -rt kernels, it's possible to maintain the same guarantee with the +use of migrate_{disable,enable}(), with the added benefit that the +migrate-disabled region is preemptible. Update +kvm_arch_vcpu_ioctl_run() to do so. + +Cc: Christoffer Dall +Reported-by: Manish Jaggi +Signed-off-by: Josh Cartwright +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/kvm/arm.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/arm/kvm/arm.c ++++ b/arch/arm/kvm/arm.c +@@ -619,7 +619,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v + * involves poking the GIC, which must be done in a + * non-preemptible context. + */ +- preempt_disable(); ++ migrate_disable(); + kvm_pmu_flush_hwstate(vcpu); + kvm_timer_flush_hwstate(vcpu); + kvm_vgic_flush_hwstate(vcpu); +@@ -640,7 +640,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v + kvm_pmu_sync_hwstate(vcpu); + kvm_timer_sync_hwstate(vcpu); + kvm_vgic_sync_hwstate(vcpu); +- preempt_enable(); ++ migrate_enable(); + continue; + } + +@@ -696,7 +696,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v + + kvm_vgic_sync_hwstate(vcpu); + +- preempt_enable(); ++ migrate_enable(); + + ret = handle_exit(vcpu, run, ret); + } diff --git a/patches/features/all/rt/KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch b/patches/features/all/rt/KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch new file mode 100644 index 00000000000..13212a49c31 --- /dev/null +++ b/patches/features/all/rt/KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch @@ -0,0 +1,26 @@ +From: Marcelo Tosatti +Date: Wed, 8 Apr 2015 20:33:25 -0300 +Subject: KVM: lapic: mark LAPIC timer handler as irqsafe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Since lapic timer handler only wakes up a simple waitqueue, +it can be executed from hardirq context. + +Reduces average cyclictest latency by 3us. + +Signed-off-by: Marcelo Tosatti +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/kvm/lapic.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/x86/kvm/lapic.c ++++ b/arch/x86/kvm/lapic.c +@@ -1939,6 +1939,7 @@ int kvm_create_lapic(struct kvm_vcpu *vc + hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC, + HRTIMER_MODE_ABS_PINNED); + apic->lapic_timer.timer.function = apic_timer_fn; ++ apic->lapic_timer.timer.irqsafe = 1; + + /* + * APIC is created enabled. This will prevent kvm_lapic_set_base from diff --git a/patches/features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/patches/features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch new file mode 100644 index 00000000000..abe028a3d6d --- /dev/null +++ b/patches/features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -0,0 +1,128 @@ +Date: Fri, 28 Oct 2016 23:05:11 +0200 +From: Sebastian Andrzej Siewior +To: Trond Myklebust +Cc: Anna Schumaker , + linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, + tglx@linutronix.de +Subject: NFSv4: replace seqcount_t with a seqlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me +because it maps to preempt_disable() in -RT which I can't have at this +point. So I took a look at the code. +It the lockdep part was removed in commit abbec2da13f0 ("NFS: Use +raw_write_seqcount_begin/end int nfs4_reclaim_open_state") because +lockdep complained. The whole seqcount thing was introduced in commit +c137afabe330 ("NFSv4: Allow the state manager to mark an open_owner as +being recovered"). +The recovery threads runs only once. +write_seqlock() does not work on !RT because it disables preemption and it the +writer side is preemptible (has to remain so despite the fact that it will +block readers). + +Reported-by: kernel test robot +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/nfs/delegation.c | 4 ++-- + fs/nfs/nfs4_fs.h | 2 +- + fs/nfs/nfs4proc.c | 4 ++-- + fs/nfs/nfs4state.c | 22 ++++++++++++++++------ + 4 files changed, 21 insertions(+), 11 deletions(-) + +--- a/fs/nfs/delegation.c ++++ b/fs/nfs/delegation.c +@@ -150,11 +150,11 @@ static int nfs_delegation_claim_opens(st + sp = state->owner; + /* Block nfs4_proc_unlck */ + mutex_lock(&sp->so_delegreturn_mutex); +- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount); ++ seq = read_seqbegin(&sp->so_reclaim_seqlock); + err = nfs4_open_delegation_recall(ctx, state, stateid, type); + if (!err) + err = nfs_delegation_claim_locks(ctx, state, stateid); +- if (!err && read_seqcount_retry(&sp->so_reclaim_seqcount, seq)) ++ if (!err && read_seqretry(&sp->so_reclaim_seqlock, seq)) + err = -EAGAIN; + mutex_unlock(&sp->so_delegreturn_mutex); + put_nfs_open_context(ctx); +--- a/fs/nfs/nfs4_fs.h ++++ b/fs/nfs/nfs4_fs.h +@@ -111,7 +111,7 @@ struct nfs4_state_owner { + unsigned long so_flags; + struct list_head so_states; + struct nfs_seqid_counter so_seqid; +- seqcount_t so_reclaim_seqcount; ++ seqlock_t so_reclaim_seqlock; + struct mutex so_delegreturn_mutex; + }; + +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -2697,7 +2697,7 @@ static int _nfs4_open_and_get_state(stru + unsigned int seq; + int ret; + +- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount); ++ seq = raw_seqcount_begin(&sp->so_reclaim_seqlock.seqcount); + + ret = _nfs4_proc_open(opendata); + if (ret != 0) +@@ -2735,7 +2735,7 @@ static int _nfs4_open_and_get_state(stru + ctx->state = state; + if (d_inode(dentry) == state->inode) { + nfs_inode_attach_open_context(ctx); +- if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq)) ++ if (read_seqretry(&sp->so_reclaim_seqlock, seq)) + nfs4_schedule_stateid_recovery(server, state); + } + out: +--- a/fs/nfs/nfs4state.c ++++ b/fs/nfs/nfs4state.c +@@ -488,7 +488,7 @@ nfs4_alloc_state_owner(struct nfs_server + nfs4_init_seqid_counter(&sp->so_seqid); + atomic_set(&sp->so_count, 1); + INIT_LIST_HEAD(&sp->so_lru); +- seqcount_init(&sp->so_reclaim_seqcount); ++ seqlock_init(&sp->so_reclaim_seqlock); + mutex_init(&sp->so_delegreturn_mutex); + return sp; + } +@@ -1497,8 +1497,12 @@ static int nfs4_reclaim_open_state(struc + * recovering after a network partition or a reboot from a + * server that doesn't support a grace period. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ write_seqlock(&sp->so_reclaim_seqlock); ++#else ++ write_seqcount_begin(&sp->so_reclaim_seqlock.seqcount); ++#endif + spin_lock(&sp->so_lock); +- raw_write_seqcount_begin(&sp->so_reclaim_seqcount); + restart: + list_for_each_entry(state, &sp->so_states, open_states) { + if (!test_and_clear_bit(ops->state_flag_bit, &state->flags)) +@@ -1567,14 +1571,20 @@ static int nfs4_reclaim_open_state(struc + spin_lock(&sp->so_lock); + goto restart; + } +- raw_write_seqcount_end(&sp->so_reclaim_seqcount); + spin_unlock(&sp->so_lock); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ write_sequnlock(&sp->so_reclaim_seqlock); ++#else ++ write_seqcount_end(&sp->so_reclaim_seqlock.seqcount); ++#endif + return 0; + out_err: + nfs4_put_open_state(state); +- spin_lock(&sp->so_lock); +- raw_write_seqcount_end(&sp->so_reclaim_seqcount); +- spin_unlock(&sp->so_lock); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ write_sequnlock(&sp->so_reclaim_seqlock); ++#else ++ write_seqcount_end(&sp->so_reclaim_seqlock.seqcount); ++#endif + return status; + } + diff --git a/patches/features/all/rt/acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch b/patches/features/all/rt/acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch new file mode 100644 index 00000000000..41847476ba1 --- /dev/null +++ b/patches/features/all/rt/acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch @@ -0,0 +1,174 @@ +From: Steven Rostedt +Date: Wed, 13 Feb 2013 09:26:05 -0500 +Subject: acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We hit the following bug with 3.6-rt: + +[ 5.898990] BUG: scheduling while atomic: swapper/3/0/0x00000002 +[ 5.898991] no locks held by swapper/3/0. +[ 5.898993] Modules linked in: +[ 5.898996] Pid: 0, comm: swapper/3 Not tainted 3.6.11-rt28.19.el6rt.x86_64.debug #1 +[ 5.898997] Call Trace: +[ 5.899011] [] __schedule_bug+0x67/0x90 +[ 5.899028] [] __schedule+0x793/0x7a0 +[ 5.899032] [] ? debug_rt_mutex_print_deadlock+0x50/0x200 +[ 5.899034] [] schedule+0x29/0x70 +[ 5.899036] BUG: scheduling while atomic: swapper/7/0/0x00000002 +[ 5.899037] no locks held by swapper/7/0. +[ 5.899039] [] rt_spin_lock_slowlock+0xe5/0x2f0 +[ 5.899040] Modules linked in: +[ 5.899041] +[ 5.899045] [] ? _raw_spin_unlock_irqrestore+0x38/0x90 +[ 5.899046] Pid: 0, comm: swapper/7 Not tainted 3.6.11-rt28.19.el6rt.x86_64.debug #1 +[ 5.899047] Call Trace: +[ 5.899049] [] rt_spin_lock+0x16/0x40 +[ 5.899052] [] __schedule_bug+0x67/0x90 +[ 5.899054] [] ? notifier_call_chain+0x80/0x80 +[ 5.899056] [] __schedule+0x793/0x7a0 +[ 5.899059] [] acpi_os_acquire_lock+0x1f/0x23 +[ 5.899062] [] ? debug_rt_mutex_print_deadlock+0x50/0x200 +[ 5.899068] [] acpi_write_bit_register+0x33/0xb0 +[ 5.899071] [] schedule+0x29/0x70 +[ 5.899072] [] ? acpi_read_bit_register+0x33/0x51 +[ 5.899074] [] rt_spin_lock_slowlock+0xe5/0x2f0 +[ 5.899077] [] acpi_idle_enter_bm+0x8a/0x28e +[ 5.899079] [] ? _raw_spin_unlock_irqrestore+0x38/0x90 +[ 5.899081] [] ? this_cpu_load+0x1a/0x30 +[ 5.899083] [] rt_spin_lock+0x16/0x40 +[ 5.899087] [] cpuidle_enter+0x19/0x20 +[ 5.899088] [] ? notifier_call_chain+0x80/0x80 +[ 5.899090] [] cpuidle_enter_state+0x17/0x50 +[ 5.899092] [] acpi_os_acquire_lock+0x1f/0x23 +[ 5.899094] [] cpuidle899101] [] ? + +As the acpi code disables interrupts in acpi_idle_enter_bm, and calls +code that grabs the acpi lock, it causes issues as the lock is currently +in RT a sleeping lock. + +The lock was converted from a raw to a sleeping lock due to some +previous issues, and tests that showed it didn't seem to matter. +Unfortunately, it did matter for one of our boxes. + +This patch converts the lock back to a raw lock. I've run this code on a +few of my own machines, one being my laptop that uses the acpi quite +extensively. I've been able to suspend and resume without issues. + +[ tglx: Made the change exclusive for acpi_gbl_hardware_lock ] + +Signed-off-by: Steven Rostedt +Cc: John Kacur +Cc: Clark Williams +Link: http://lkml.kernel.org/r/1360765565.23152.5.camel@gandalf.local.home + +Signed-off-by: Thomas Gleixner +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/acpi/acpica/acglobal.h | 2 +- + drivers/acpi/acpica/hwregs.c | 4 ++-- + drivers/acpi/acpica/hwxface.c | 4 ++-- + drivers/acpi/acpica/utmutex.c | 4 ++-- + include/acpi/platform/aclinux.h | 15 +++++++++++++++ + 5 files changed, 22 insertions(+), 7 deletions(-) + +--- a/drivers/acpi/acpica/acglobal.h ++++ b/drivers/acpi/acpica/acglobal.h +@@ -116,7 +116,7 @@ ACPI_GLOBAL(u8, acpi_gbl_global_lock_pen + * interrupt level + */ + ACPI_GLOBAL(acpi_spinlock, acpi_gbl_gpe_lock); /* For GPE data structs and registers */ +-ACPI_GLOBAL(acpi_spinlock, acpi_gbl_hardware_lock); /* For ACPI H/W except GPE registers */ ++ACPI_GLOBAL(acpi_raw_spinlock, acpi_gbl_hardware_lock); /* For ACPI H/W except GPE registers */ + ACPI_GLOBAL(acpi_spinlock, acpi_gbl_reference_count_lock); + + /* Mutex for _OSI support */ +--- a/drivers/acpi/acpica/hwregs.c ++++ b/drivers/acpi/acpica/hwregs.c +@@ -363,14 +363,14 @@ acpi_status acpi_hw_clear_acpi_status(vo + ACPI_BITMASK_ALL_FIXED_STATUS, + ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address))); + +- lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock); ++ raw_spin_lock_irqsave(acpi_gbl_hardware_lock, lock_flags); + + /* Clear the fixed events in PM1 A/B */ + + status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS, + ACPI_BITMASK_ALL_FIXED_STATUS); + +- acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags); ++ raw_spin_unlock_irqrestore(acpi_gbl_hardware_lock, lock_flags); + + if (ACPI_FAILURE(status)) { + goto exit; +--- a/drivers/acpi/acpica/hwxface.c ++++ b/drivers/acpi/acpica/hwxface.c +@@ -373,7 +373,7 @@ acpi_status acpi_write_bit_register(u32 + return_ACPI_STATUS(AE_BAD_PARAMETER); + } + +- lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock); ++ raw_spin_lock_irqsave(acpi_gbl_hardware_lock, lock_flags); + + /* + * At this point, we know that the parent register is one of the +@@ -434,7 +434,7 @@ acpi_status acpi_write_bit_register(u32 + + unlock_and_exit: + +- acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags); ++ raw_spin_unlock_irqrestore(acpi_gbl_hardware_lock, lock_flags); + return_ACPI_STATUS(status); + } + +--- a/drivers/acpi/acpica/utmutex.c ++++ b/drivers/acpi/acpica/utmutex.c +@@ -88,7 +88,7 @@ acpi_status acpi_ut_mutex_initialize(voi + return_ACPI_STATUS (status); + } + +- status = acpi_os_create_lock (&acpi_gbl_hardware_lock); ++ status = acpi_os_create_raw_lock (&acpi_gbl_hardware_lock); + if (ACPI_FAILURE (status)) { + return_ACPI_STATUS (status); + } +@@ -145,7 +145,7 @@ void acpi_ut_mutex_terminate(void) + /* Delete the spinlocks */ + + acpi_os_delete_lock(acpi_gbl_gpe_lock); +- acpi_os_delete_lock(acpi_gbl_hardware_lock); ++ acpi_os_delete_raw_lock(acpi_gbl_hardware_lock); + acpi_os_delete_lock(acpi_gbl_reference_count_lock); + + /* Delete the reader/writer lock */ +--- a/include/acpi/platform/aclinux.h ++++ b/include/acpi/platform/aclinux.h +@@ -133,6 +133,7 @@ + + #define acpi_cache_t struct kmem_cache + #define acpi_spinlock spinlock_t * ++#define acpi_raw_spinlock raw_spinlock_t * + #define acpi_cpu_flags unsigned long + + /* Use native linux version of acpi_os_allocate_zeroed */ +@@ -151,6 +152,20 @@ + #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id + #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock + ++#define acpi_os_create_raw_lock(__handle) \ ++({ \ ++ raw_spinlock_t *lock = ACPI_ALLOCATE(sizeof(*lock)); \ ++ \ ++ if (lock) { \ ++ *(__handle) = lock; \ ++ raw_spin_lock_init(*(__handle)); \ ++ } \ ++ lock ? AE_OK : AE_NO_MEMORY; \ ++ }) ++ ++#define acpi_os_delete_raw_lock(__handle) kfree(__handle) ++ ++ + /* + * OSL interfaces used by debugger/disassembler + */ diff --git a/patches/features/all/rt/arch-arm64-Add-lazy-preempt-support.patch b/patches/features/all/rt/arch-arm64-Add-lazy-preempt-support.patch new file mode 100644 index 00000000000..d2256b6b63c --- /dev/null +++ b/patches/features/all/rt/arch-arm64-Add-lazy-preempt-support.patch @@ -0,0 +1,119 @@ +From: Anders Roxell +Date: Thu, 14 May 2015 17:52:17 +0200 +Subject: arch/arm64: Add lazy preempt support +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +arm64 is missing support for PREEMPT_RT. The main feature which is +lacking is support for lazy preemption. The arch-specific entry code, +thread information structure definitions, and associated data tables +have to be extended to provide this support. Then the Kconfig file has +to be extended to indicate the support is available, and also to +indicate that support for full RT preemption is now available. + +Signed-off-by: Anders Roxell +--- + arch/arm64/Kconfig | 1 + + arch/arm64/include/asm/thread_info.h | 7 ++++++- + arch/arm64/kernel/asm-offsets.c | 1 + + arch/arm64/kernel/entry.S | 12 +++++++++--- + arch/arm64/kernel/signal.c | 2 +- + 5 files changed, 18 insertions(+), 5 deletions(-) + +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -91,6 +91,7 @@ config ARM64 + select HAVE_PERF_EVENTS + select HAVE_PERF_REGS + select HAVE_PERF_USER_STACK_DUMP ++ select HAVE_PREEMPT_LAZY + select HAVE_REGS_AND_STACK_ACCESS_API + select HAVE_RCU_TABLE_FREE + select HAVE_SYSCALL_TRACEPOINTS +--- a/arch/arm64/include/asm/thread_info.h ++++ b/arch/arm64/include/asm/thread_info.h +@@ -49,6 +49,7 @@ struct thread_info { + mm_segment_t addr_limit; /* address limit */ + struct task_struct *task; /* main task structure */ + int preempt_count; /* 0 => preemptable, <0 => bug */ ++ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */ + int cpu; /* cpu */ + }; + +@@ -112,6 +113,7 @@ static inline struct thread_info *curren + #define TIF_NEED_RESCHED 1 + #define TIF_NOTIFY_RESUME 2 /* callback before returning to user */ + #define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */ ++#define TIF_NEED_RESCHED_LAZY 4 + #define TIF_NOHZ 7 + #define TIF_SYSCALL_TRACE 8 + #define TIF_SYSCALL_AUDIT 9 +@@ -127,6 +129,7 @@ static inline struct thread_info *curren + #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) + #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) + #define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE) ++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY) + #define _TIF_NOHZ (1 << TIF_NOHZ) + #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) + #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) +@@ -135,7 +138,9 @@ static inline struct thread_info *curren + #define _TIF_32BIT (1 << TIF_32BIT) + + #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ +- _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE) ++ _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \ ++ _TIF_NEED_RESCHED_LAZY) ++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY) + + #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \ +--- a/arch/arm64/kernel/asm-offsets.c ++++ b/arch/arm64/kernel/asm-offsets.c +@@ -38,6 +38,7 @@ int main(void) + BLANK(); + DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); + DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); ++ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count)); + DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit)); + DEFINE(TI_TASK, offsetof(struct thread_info, task)); + DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); +--- a/arch/arm64/kernel/entry.S ++++ b/arch/arm64/kernel/entry.S +@@ -428,11 +428,16 @@ ENDPROC(el1_sync) + + #ifdef CONFIG_PREEMPT + ldr w24, [tsk, #TI_PREEMPT] // get preempt count +- cbnz w24, 1f // preempt count != 0 ++ cbnz w24, 2f // preempt count != 0 + ldr x0, [tsk, #TI_FLAGS] // get flags +- tbz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling? +- bl el1_preempt ++ tbnz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling? ++ ++ ldr w24, [tsk, #TI_PREEMPT_LAZY] // get preempt lazy count ++ cbnz w24, 2f // preempt lazy count != 0 ++ tbz x0, #TIF_NEED_RESCHED_LAZY, 2f // needs rescheduling? + 1: ++ bl el1_preempt ++2: + #endif + #ifdef CONFIG_TRACE_IRQFLAGS + bl trace_hardirqs_on +@@ -446,6 +451,7 @@ ENDPROC(el1_irq) + 1: bl preempt_schedule_irq // irq en/disable is done inside + ldr x0, [tsk, #TI_FLAGS] // get new tasks TI_FLAGS + tbnz x0, #TIF_NEED_RESCHED, 1b // needs rescheduling? ++ tbnz x0, #TIF_NEED_RESCHED_LAZY, 1b // needs rescheduling? + ret x24 + #endif + +--- a/arch/arm64/kernel/signal.c ++++ b/arch/arm64/kernel/signal.c +@@ -409,7 +409,7 @@ asmlinkage void do_notify_resume(struct + */ + trace_hardirqs_off(); + do { +- if (thread_flags & _TIF_NEED_RESCHED) { ++ if (thread_flags & _TIF_NEED_RESCHED_MASK) { + schedule(); + } else { + local_irq_enable(); diff --git a/patches/features/all/rt/arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch b/patches/features/all/rt/arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch new file mode 100644 index 00000000000..70754dd710b --- /dev/null +++ b/patches/features/all/rt/arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch @@ -0,0 +1,145 @@ +From: Benedikt Spranger +Date: Sat, 6 Mar 2010 17:47:10 +0100 +Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Setup and remove the interrupt handler in clock event mode selection. +This avoids calling the (shared) interrupt handler when the device is +not used. + +Signed-off-by: Benedikt Spranger +Signed-off-by: Thomas Gleixner +[bigeasy: redo the patch with NR_IRQS_LEGACY which is probably required since +commit 8fe82a55 ("ARM: at91: sparse irq support") which is included since v3.6. +Patch based on what Sami Pietikäinen suggested]. +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/clocksource/timer-atmel-pit.c | 18 +++++++++--------- + drivers/clocksource/timer-atmel-st.c | 34 ++++++++++++++++++++++------------ + 2 files changed, 31 insertions(+), 21 deletions(-) + +--- a/drivers/clocksource/timer-atmel-pit.c ++++ b/drivers/clocksource/timer-atmel-pit.c +@@ -96,15 +96,24 @@ static int pit_clkevt_shutdown(struct cl + + /* disable irq, leaving the clocksource active */ + pit_write(data->base, AT91_PIT_MR, (data->cycle - 1) | AT91_PIT_PITEN); ++ free_irq(data->irq, data); + return 0; + } + ++static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id); + /* + * Clockevent device: interrupts every 1/HZ (== pit_cycles * MCK/16) + */ + static int pit_clkevt_set_periodic(struct clock_event_device *dev) + { + struct pit_data *data = clkevt_to_pit_data(dev); ++ int ret; ++ ++ ret = request_irq(data->irq, at91sam926x_pit_interrupt, ++ IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, ++ "at91_tick", data); ++ if (ret) ++ panic(pr_fmt("Unable to setup IRQ\n")); + + /* update clocksource counter */ + data->cnt += data->cycle * PIT_PICNT(pit_read(data->base, AT91_PIT_PIVR)); +@@ -230,15 +239,6 @@ static int __init at91sam926x_pit_dt_ini + return ret; + } + +- /* Set up irq handler */ +- ret = request_irq(data->irq, at91sam926x_pit_interrupt, +- IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, +- "at91_tick", data); +- if (ret) { +- pr_err("Unable to setup IRQ\n"); +- return ret; +- } +- + /* Set up and register clockevents */ + data->clkevt.name = "pit"; + data->clkevt.features = CLOCK_EVT_FEAT_PERIODIC; +--- a/drivers/clocksource/timer-atmel-st.c ++++ b/drivers/clocksource/timer-atmel-st.c +@@ -115,18 +115,29 @@ static void clkdev32k_disable_and_flush_ + last_crtr = read_CRTR(); + } + ++static int atmel_st_irq; ++ + static int clkevt32k_shutdown(struct clock_event_device *evt) + { + clkdev32k_disable_and_flush_irq(); + irqmask = 0; + regmap_write(regmap_st, AT91_ST_IER, irqmask); ++ free_irq(atmel_st_irq, regmap_st); + return 0; + } + + static int clkevt32k_set_oneshot(struct clock_event_device *dev) + { ++ int ret; ++ + clkdev32k_disable_and_flush_irq(); + ++ ret = request_irq(atmel_st_irq, at91rm9200_timer_interrupt, ++ IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, ++ "at91_tick", regmap_st); ++ if (ret) ++ panic(pr_fmt("Unable to setup IRQ\n")); ++ + /* + * ALM for oneshot irqs, set by next_event() + * before 32 seconds have passed. +@@ -139,8 +150,16 @@ static int clkevt32k_set_oneshot(struct + + static int clkevt32k_set_periodic(struct clock_event_device *dev) + { ++ int ret; ++ + clkdev32k_disable_and_flush_irq(); + ++ ret = request_irq(atmel_st_irq, at91rm9200_timer_interrupt, ++ IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, ++ "at91_tick", regmap_st); ++ if (ret) ++ panic(pr_fmt("Unable to setup IRQ\n")); ++ + /* PIT for periodic irqs; fixed rate of 1/HZ */ + irqmask = AT91_ST_PITS; + regmap_write(regmap_st, AT91_ST_PIMR, timer_latch); +@@ -198,7 +217,7 @@ static int __init atmel_st_timer_init(st + { + struct clk *sclk; + unsigned int sclk_rate, val; +- int irq, ret; ++ int ret; + + regmap_st = syscon_node_to_regmap(node); + if (IS_ERR(regmap_st)) { +@@ -212,21 +231,12 @@ static int __init atmel_st_timer_init(st + regmap_read(regmap_st, AT91_ST_SR, &val); + + /* Get the interrupts property */ +- irq = irq_of_parse_and_map(node, 0); +- if (!irq) { ++ atmel_st_irq = irq_of_parse_and_map(node, 0); ++ if (!atmel_st_irq) { + pr_err("Unable to get IRQ from DT\n"); + return -EINVAL; + } + +- /* Make IRQs happen for the system timer */ +- ret = request_irq(irq, at91rm9200_timer_interrupt, +- IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, +- "at91_tick", regmap_st); +- if (ret) { +- pr_err("Unable to setup IRQ\n"); +- return ret; +- } +- + sclk = of_clk_get(node, 0); + if (IS_ERR(sclk)) { + pr_err("Unable to get slow clock\n"); diff --git a/patches/features/all/rt/arm-at91-tclib-default-to-tclib-timer-for-rt.patch b/patches/features/all/rt/arm-at91-tclib-default-to-tclib-timer-for-rt.patch new file mode 100644 index 00000000000..d4a6cff0959 --- /dev/null +++ b/patches/features/all/rt/arm-at91-tclib-default-to-tclib-timer-for-rt.patch @@ -0,0 +1,33 @@ +From: Thomas Gleixner +Date: Sat, 1 May 2010 18:29:35 +0200 +Subject: ARM: at91: tclib: Default to tclib timer for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT is not too happy about the shared timer interrupt in AT91 +devices. Default to tclib timer for RT. + +Signed-off-by: Thomas Gleixner + +--- + drivers/misc/Kconfig | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -54,6 +54,7 @@ config AD525X_DPOT_SPI + config ATMEL_TCLIB + bool "Atmel AT32/AT91 Timer/Counter Library" + depends on (AVR32 || ARCH_AT91) ++ default y if PREEMPT_RT_FULL + help + Select this if you want a library to allocate the Timer/Counter + blocks found on many Atmel processors. This facilitates using +@@ -86,7 +87,7 @@ config ATMEL_TCB_CLKSRC_BLOCK + config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK + bool "TC Block use 32 KiHz clock" + depends on ATMEL_TCB_CLKSRC +- default y ++ default y if !PREEMPT_RT_FULL + help + Select this to use 32 KiHz base clock rate as TC block clock + source for clock events. diff --git a/patches/features/all/rt/arm-convert-boot-lock-to-raw.patch b/patches/features/all/rt/arm-convert-boot-lock-to-raw.patch new file mode 100644 index 00000000000..67b2b2e4575 --- /dev/null +++ b/patches/features/all/rt/arm-convert-boot-lock-to-raw.patch @@ -0,0 +1,408 @@ +From: Frank Rowand +Date: Mon, 19 Sep 2011 14:51:14 -0700 +Subject: arm: Convert arm boot_lock to raw +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The arm boot_lock is used by the secondary processor startup code. The locking +task is the idle thread, which has idle->sched_class == &idle_sched_class. +idle_sched_class->enqueue_task == NULL, so if the idle task blocks on the +lock, the attempt to wake it when the lock becomes available will fail: + +try_to_wake_up() + ... + activate_task() + enqueue_task() + p->sched_class->enqueue_task(rq, p, flags) + +Fix by converting boot_lock to a raw spin lock. + +Signed-off-by: Frank Rowand +Link: http://lkml.kernel.org/r/4E77B952.3010606@am.sony.com +Signed-off-by: Thomas Gleixner +--- + arch/arm/mach-exynos/platsmp.c | 12 ++++++------ + arch/arm/mach-hisi/platmcpm.c | 22 +++++++++++----------- + arch/arm/mach-omap2/omap-smp.c | 10 +++++----- + arch/arm/mach-prima2/platsmp.c | 10 +++++----- + arch/arm/mach-qcom/platsmp.c | 10 +++++----- + arch/arm/mach-spear/platsmp.c | 10 +++++----- + arch/arm/mach-sti/platsmp.c | 10 +++++----- + arch/arm/plat-versatile/platsmp.c | 10 +++++----- + 8 files changed, 47 insertions(+), 47 deletions(-) + +--- a/arch/arm/mach-exynos/platsmp.c ++++ b/arch/arm/mach-exynos/platsmp.c +@@ -229,7 +229,7 @@ static void __iomem *scu_base_addr(void) + return (void __iomem *)(S5P_VA_SCU); + } + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + static void exynos_secondary_init(unsigned int cpu) + { +@@ -242,8 +242,8 @@ static void exynos_secondary_init(unsign + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + int exynos_set_boot_addr(u32 core_id, unsigned long boot_addr) +@@ -307,7 +307,7 @@ static int exynos_boot_secondary(unsigne + * Set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * The secondary processor is waiting to be released from +@@ -334,7 +334,7 @@ static int exynos_boot_secondary(unsigne + + if (timeout == 0) { + printk(KERN_ERR "cpu1 power enable failed"); +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + return -ETIMEDOUT; + } + } +@@ -380,7 +380,7 @@ static int exynos_boot_secondary(unsigne + * calibrations, then wait for it to finish + */ + fail: +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return pen_release != -1 ? ret : 0; + } +--- a/arch/arm/mach-hisi/platmcpm.c ++++ b/arch/arm/mach-hisi/platmcpm.c +@@ -61,7 +61,7 @@ + + static void __iomem *sysctrl, *fabric; + static int hip04_cpu_table[HIP04_MAX_CLUSTERS][HIP04_MAX_CPUS_PER_CLUSTER]; +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + static u32 fabric_phys_addr; + /* + * [0]: bootwrapper physical address +@@ -113,7 +113,7 @@ static int hip04_boot_secondary(unsigned + if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER) + return -EINVAL; + +- spin_lock_irq(&boot_lock); ++ raw_spin_lock_irq(&boot_lock); + + if (hip04_cpu_table[cluster][cpu]) + goto out; +@@ -147,7 +147,7 @@ static int hip04_boot_secondary(unsigned + + out: + hip04_cpu_table[cluster][cpu]++; +- spin_unlock_irq(&boot_lock); ++ raw_spin_unlock_irq(&boot_lock); + + return 0; + } +@@ -162,11 +162,11 @@ static void hip04_cpu_die(unsigned int l + cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); + cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); + +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + hip04_cpu_table[cluster][cpu]--; + if (hip04_cpu_table[cluster][cpu] == 1) { + /* A power_up request went ahead of us. */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + return; + } else if (hip04_cpu_table[cluster][cpu] > 1) { + pr_err("Cluster %d CPU%d boots multiple times\n", cluster, cpu); +@@ -174,7 +174,7 @@ static void hip04_cpu_die(unsigned int l + } + + last_man = hip04_cluster_is_down(cluster); +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + if (last_man) { + /* Since it's Cortex A15, disable L2 prefetching. */ + asm volatile( +@@ -203,7 +203,7 @@ static int hip04_cpu_kill(unsigned int l + cpu >= HIP04_MAX_CPUS_PER_CLUSTER); + + count = TIMEOUT_MSEC / POLL_MSEC; +- spin_lock_irq(&boot_lock); ++ raw_spin_lock_irq(&boot_lock); + for (tries = 0; tries < count; tries++) { + if (hip04_cpu_table[cluster][cpu]) + goto err; +@@ -211,10 +211,10 @@ static int hip04_cpu_kill(unsigned int l + data = readl_relaxed(sysctrl + SC_CPU_RESET_STATUS(cluster)); + if (data & CORE_WFI_STATUS(cpu)) + break; +- spin_unlock_irq(&boot_lock); ++ raw_spin_unlock_irq(&boot_lock); + /* Wait for clean L2 when the whole cluster is down. */ + msleep(POLL_MSEC); +- spin_lock_irq(&boot_lock); ++ raw_spin_lock_irq(&boot_lock); + } + if (tries >= count) + goto err; +@@ -231,10 +231,10 @@ static int hip04_cpu_kill(unsigned int l + goto err; + if (hip04_cluster_is_down(cluster)) + hip04_set_snoop_filter(cluster, 0); +- spin_unlock_irq(&boot_lock); ++ raw_spin_unlock_irq(&boot_lock); + return 1; + err: +- spin_unlock_irq(&boot_lock); ++ raw_spin_unlock_irq(&boot_lock); + return 0; + } + #endif +--- a/arch/arm/mach-omap2/omap-smp.c ++++ b/arch/arm/mach-omap2/omap-smp.c +@@ -64,7 +64,7 @@ static const struct omap_smp_config omap + .startup_addr = omap5_secondary_startup, + }; + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + void __iomem *omap4_get_scu_base(void) + { +@@ -131,8 +131,8 @@ static void omap4_secondary_init(unsigne + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -146,7 +146,7 @@ static int omap4_boot_secondary(unsigned + * Set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * Update the AuxCoreBoot0 with boot state for secondary core. +@@ -223,7 +223,7 @@ static int omap4_boot_secondary(unsigned + * Now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return 0; + } +--- a/arch/arm/mach-prima2/platsmp.c ++++ b/arch/arm/mach-prima2/platsmp.c +@@ -22,7 +22,7 @@ + + static void __iomem *clk_base; + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + static void sirfsoc_secondary_init(unsigned int cpu) + { +@@ -36,8 +36,8 @@ static void sirfsoc_secondary_init(unsig + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + static const struct of_device_id clk_ids[] = { +@@ -75,7 +75,7 @@ static int sirfsoc_boot_secondary(unsign + /* make sure write buffer is drained */ + mb(); + +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * The secondary processor is waiting to be released from +@@ -107,7 +107,7 @@ static int sirfsoc_boot_secondary(unsign + * now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return pen_release != -1 ? -ENOSYS : 0; + } +--- a/arch/arm/mach-qcom/platsmp.c ++++ b/arch/arm/mach-qcom/platsmp.c +@@ -46,7 +46,7 @@ + + extern void secondary_startup_arm(void); + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + #ifdef CONFIG_HOTPLUG_CPU + static void qcom_cpu_die(unsigned int cpu) +@@ -60,8 +60,8 @@ static void qcom_secondary_init(unsigned + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + static int scss_release_secondary(unsigned int cpu) +@@ -284,7 +284,7 @@ static int qcom_boot_secondary(unsigned + * set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * Send the secondary CPU a soft interrupt, thereby causing +@@ -297,7 +297,7 @@ static int qcom_boot_secondary(unsigned + * now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return ret; + } +--- a/arch/arm/mach-spear/platsmp.c ++++ b/arch/arm/mach-spear/platsmp.c +@@ -32,7 +32,7 @@ static void write_pen_release(int val) + sync_cache_w(&pen_release); + } + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + static void __iomem *scu_base = IOMEM(VA_SCU_BASE); + +@@ -47,8 +47,8 @@ static void spear13xx_secondary_init(uns + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -59,7 +59,7 @@ static int spear13xx_boot_secondary(unsi + * set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * The secondary processor is waiting to be released from +@@ -84,7 +84,7 @@ static int spear13xx_boot_secondary(unsi + * now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return pen_release != -1 ? -ENOSYS : 0; + } +--- a/arch/arm/mach-sti/platsmp.c ++++ b/arch/arm/mach-sti/platsmp.c +@@ -35,7 +35,7 @@ static void write_pen_release(int val) + sync_cache_w(&pen_release); + } + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + static void sti_secondary_init(unsigned int cpu) + { +@@ -48,8 +48,8 @@ static void sti_secondary_init(unsigned + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + static int sti_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -60,7 +60,7 @@ static int sti_boot_secondary(unsigned i + * set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * The secondary processor is waiting to be released from +@@ -91,7 +91,7 @@ static int sti_boot_secondary(unsigned i + * now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return pen_release != -1 ? -ENOSYS : 0; + } +--- a/arch/arm/plat-versatile/platsmp.c ++++ b/arch/arm/plat-versatile/platsmp.c +@@ -32,7 +32,7 @@ static void write_pen_release(int val) + sync_cache_w(&pen_release); + } + +-static DEFINE_SPINLOCK(boot_lock); ++static DEFINE_RAW_SPINLOCK(boot_lock); + + void versatile_secondary_init(unsigned int cpu) + { +@@ -45,8 +45,8 @@ void versatile_secondary_init(unsigned i + /* + * Synchronise with the boot thread. + */ +- spin_lock(&boot_lock); +- spin_unlock(&boot_lock); ++ raw_spin_lock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + } + + int versatile_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -57,7 +57,7 @@ int versatile_boot_secondary(unsigned in + * Set synchronisation state between this boot processor + * and the secondary one + */ +- spin_lock(&boot_lock); ++ raw_spin_lock(&boot_lock); + + /* + * This is really belt and braces; we hold unintended secondary +@@ -87,7 +87,7 @@ int versatile_boot_secondary(unsigned in + * now the secondary core is starting up let it run its + * calibrations, then wait for it to finish + */ +- spin_unlock(&boot_lock); ++ raw_spin_unlock(&boot_lock); + + return pen_release != -1 ? -ENOSYS : 0; + } diff --git a/patches/features/all/rt/arm-enable-highmem-for-rt.patch b/patches/features/all/rt/arm-enable-highmem-for-rt.patch new file mode 100644 index 00000000000..9a12751a2a7 --- /dev/null +++ b/patches/features/all/rt/arm-enable-highmem-for-rt.patch @@ -0,0 +1,174 @@ +Subject: arm: Enable highmem for rt +From: Thomas Gleixner +Date: Wed, 13 Feb 2013 11:03:11 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +fixup highmem for ARM. + +Signed-off-by: Thomas Gleixner +--- + arch/arm/include/asm/switch_to.h | 8 +++++ + arch/arm/mm/highmem.c | 56 +++++++++++++++++++++++++++++++++------ + include/linux/highmem.h | 1 + 3 files changed, 57 insertions(+), 8 deletions(-) + +--- a/arch/arm/include/asm/switch_to.h ++++ b/arch/arm/include/asm/switch_to.h +@@ -3,6 +3,13 @@ + + #include + ++#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM ++void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p); ++#else ++static inline void ++switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { } ++#endif ++ + /* + * For v7 SMP cores running a preemptible kernel we may be pre-empted + * during a TLB maintenance operation, so execute an inner-shareable dsb +@@ -25,6 +32,7 @@ extern struct task_struct *__switch_to(s + #define switch_to(prev,next,last) \ + do { \ + __complete_pending_tlbi(); \ ++ switch_kmaps(prev, next); \ + last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \ + } while (0) + +--- a/arch/arm/mm/highmem.c ++++ b/arch/arm/mm/highmem.c +@@ -34,6 +34,11 @@ static inline pte_t get_fixmap_pte(unsig + return *ptep; + } + ++static unsigned int fixmap_idx(int type) ++{ ++ return FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id(); ++} ++ + void *kmap(struct page *page) + { + might_sleep(); +@@ -54,12 +59,13 @@ EXPORT_SYMBOL(kunmap); + + void *kmap_atomic(struct page *page) + { ++ pte_t pte = mk_pte(page, kmap_prot); + unsigned int idx; + unsigned long vaddr; + void *kmap; + int type; + +- preempt_disable(); ++ preempt_disable_nort(); + pagefault_disable(); + if (!PageHighMem(page)) + return page_address(page); +@@ -79,7 +85,7 @@ void *kmap_atomic(struct page *page) + + type = kmap_atomic_idx_push(); + +- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id(); ++ idx = fixmap_idx(type); + vaddr = __fix_to_virt(idx); + #ifdef CONFIG_DEBUG_HIGHMEM + /* +@@ -93,7 +99,10 @@ void *kmap_atomic(struct page *page) + * in place, so the contained TLB flush ensures the TLB is updated + * with the new mapping. + */ +- set_fixmap_pte(idx, mk_pte(page, kmap_prot)); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = pte; ++#endif ++ set_fixmap_pte(idx, pte); + + return (void *)vaddr; + } +@@ -106,10 +115,13 @@ void __kunmap_atomic(void *kvaddr) + + if (kvaddr >= (void *)FIXADDR_START) { + type = kmap_atomic_idx(); +- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id(); ++ idx = fixmap_idx(type); + + if (cache_is_vivt()) + __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = __pte(0); ++#endif + #ifdef CONFIG_DEBUG_HIGHMEM + BUG_ON(vaddr != __fix_to_virt(idx)); + #else +@@ -122,28 +134,56 @@ void __kunmap_atomic(void *kvaddr) + kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)])); + } + pagefault_enable(); +- preempt_enable(); ++ preempt_enable_nort(); + } + EXPORT_SYMBOL(__kunmap_atomic); + + void *kmap_atomic_pfn(unsigned long pfn) + { ++ pte_t pte = pfn_pte(pfn, kmap_prot); + unsigned long vaddr; + int idx, type; + struct page *page = pfn_to_page(pfn); + +- preempt_disable(); ++ preempt_disable_nort(); + pagefault_disable(); + if (!PageHighMem(page)) + return page_address(page); + + type = kmap_atomic_idx_push(); +- idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id(); ++ idx = fixmap_idx(type); + vaddr = __fix_to_virt(idx); + #ifdef CONFIG_DEBUG_HIGHMEM + BUG_ON(!pte_none(get_fixmap_pte(vaddr))); + #endif +- set_fixmap_pte(idx, pfn_pte(pfn, kmap_prot)); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = pte; ++#endif ++ set_fixmap_pte(idx, pte); + + return (void *)vaddr; + } ++#if defined CONFIG_PREEMPT_RT_FULL ++void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) ++{ ++ int i; ++ ++ /* ++ * Clear @prev's kmap_atomic mappings ++ */ ++ for (i = 0; i < prev_p->kmap_idx; i++) { ++ int idx = fixmap_idx(i); ++ ++ set_fixmap_pte(idx, __pte(0)); ++ } ++ /* ++ * Restore @next_p's kmap_atomic mappings ++ */ ++ for (i = 0; i < next_p->kmap_idx; i++) { ++ int idx = fixmap_idx(i); ++ ++ if (!pte_none(next_p->kmap_pte[i])) ++ set_fixmap_pte(idx, next_p->kmap_pte[i]); ++ } ++} ++#endif +--- a/include/linux/highmem.h ++++ b/include/linux/highmem.h +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/patches/features/all/rt/arm-highmem-flush-tlb-on-unmap.patch b/patches/features/all/rt/arm-highmem-flush-tlb-on-unmap.patch new file mode 100644 index 00000000000..69c01c5e054 --- /dev/null +++ b/patches/features/all/rt/arm-highmem-flush-tlb-on-unmap.patch @@ -0,0 +1,28 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 11 Mar 2013 21:37:27 +0100 +Subject: arm/highmem: Flush tlb on unmap +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The tlb should be flushed on unmap and thus make the mapping entry +invalid. This is only done in the non-debug case which does not look +right. + +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/mm/highmem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/mm/highmem.c ++++ b/arch/arm/mm/highmem.c +@@ -112,10 +112,10 @@ void __kunmap_atomic(void *kvaddr) + __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE); + #ifdef CONFIG_DEBUG_HIGHMEM + BUG_ON(vaddr != __fix_to_virt(idx)); +- set_fixmap_pte(idx, __pte(0)); + #else + (void) idx; /* to kill a warning */ + #endif ++ set_fixmap_pte(idx, __pte(0)); + kmap_atomic_idx_pop(); + } else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) { + /* this address was obtained through kmap_high_get() */ diff --git a/patches/features/all/rt/arm-include-definition-for-cpumask_t.patch b/patches/features/all/rt/arm-include-definition-for-cpumask_t.patch new file mode 100644 index 00000000000..87905aa84bf --- /dev/null +++ b/patches/features/all/rt/arm-include-definition-for-cpumask_t.patch @@ -0,0 +1,25 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 22 Dec 2016 17:28:33 +0100 +Subject: [PATCH] arm: include definition for cpumask_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This definition gets pulled in by other files. With the (later) split of +RCU and spinlock.h it won't compile anymore. +The split is done in ("rbtree: don't include the rcu header"). + +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/include/asm/irq.h | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/arm/include/asm/irq.h ++++ b/arch/arm/include/asm/irq.h +@@ -22,6 +22,8 @@ + #endif + + #ifndef __ASSEMBLY__ ++#include ++ + struct irqaction; + struct pt_regs; + extern void migrate_irqs(void); diff --git a/patches/features/all/rt/arm-kprobe-replace-patch_lock-to-raw-lock.patch b/patches/features/all/rt/arm-kprobe-replace-patch_lock-to-raw-lock.patch new file mode 100644 index 00000000000..d3126f0584c --- /dev/null +++ b/patches/features/all/rt/arm-kprobe-replace-patch_lock-to-raw-lock.patch @@ -0,0 +1,71 @@ +From 6e2639b6d72e1ef9e264aa658db3b6171d9ba12f Mon Sep 17 00:00:00 2001 +From: Yang Shi +Date: Thu, 10 Nov 2016 16:17:55 -0800 +Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When running kprobe on -rt kernel, the below bug is caught: + +BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 +in_atomic(): 1, irqs_disabled(): 128, pid: 14, name: migration/0 +INFO: lockdep is turned off. +irq event stamp: 238 +hardirqs last enabled at (237): [<80b5aecc>] _raw_spin_unlock_irqrestore+0x88/0x90 +hardirqs last disabled at (238): [<80b56d88>] __schedule+0xec/0x94c +softirqs last enabled at (0): [<80225584>] copy_process.part.5+0x30c/0x1994 +softirqs last disabled at (0): [< (null)>] (null) +Preemption disabled at:[<802f2b98>] cpu_stopper_thread+0xc0/0x140 + +CPU: 0 PID: 14 Comm: migration/0 Tainted: G O 4.8.3-rt2 #1 +Hardware name: Freescale LS1021A +[<80212e7c>] (unwind_backtrace) from [<8020cd2c>] (show_stack+0x20/0x24) +[<8020cd2c>] (show_stack) from [<80689e14>] (dump_stack+0xa0/0xcc) +[<80689e14>] (dump_stack) from [<8025a43c>] (___might_sleep+0x1b8/0x2a4) +[<8025a43c>] (___might_sleep) from [<80b5b324>] (rt_spin_lock+0x34/0x74) +[<80b5b324>] (rt_spin_lock) from [<80b5c31c>] (__patch_text_real+0x70/0xe8) +[<80b5c31c>] (__patch_text_real) from [<80b5c3ac>] (patch_text_stop_machine+0x18/0x20) +[<80b5c3ac>] (patch_text_stop_machine) from [<802f2920>] (multi_cpu_stop+0xfc/0x134) +[<802f2920>] (multi_cpu_stop) from [<802f2ba0>] (cpu_stopper_thread+0xc8/0x140) +[<802f2ba0>] (cpu_stopper_thread) from [<802563a4>] (smpboot_thread_fn+0x1a4/0x354) +[<802563a4>] (smpboot_thread_fn) from [<80251d38>] (kthread+0x104/0x11c) +[<80251d38>] (kthread) from [<80207f70>] (ret_from_fork+0x14/0x24) + +Since patch_text_stop_machine() is called in stop_machine() which disables IRQ, +sleepable lock should be not used in this atomic context, so replace patch_lock +to raw lock. + +Signed-off-by: Yang Shi +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/kernel/patch.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/arm/kernel/patch.c ++++ b/arch/arm/kernel/patch.c +@@ -15,7 +15,7 @@ struct patch { + unsigned int insn; + }; + +-static DEFINE_SPINLOCK(patch_lock); ++static DEFINE_RAW_SPINLOCK(patch_lock); + + static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) + __acquires(&patch_lock) +@@ -32,7 +32,7 @@ static void __kprobes *patch_map(void *a + return addr; + + if (flags) +- spin_lock_irqsave(&patch_lock, *flags); ++ raw_spin_lock_irqsave(&patch_lock, *flags); + else + __acquire(&patch_lock); + +@@ -47,7 +47,7 @@ static void __kprobes patch_unmap(int fi + clear_fixmap(fixmap); + + if (flags) +- spin_unlock_irqrestore(&patch_lock, *flags); ++ raw_spin_unlock_irqrestore(&patch_lock, *flags); + else + __release(&patch_lock); + } diff --git a/patches/features/all/rt/arm-preempt-lazy-support.patch b/patches/features/all/rt/arm-preempt-lazy-support.patch new file mode 100644 index 00000000000..f3364a2181c --- /dev/null +++ b/patches/features/all/rt/arm-preempt-lazy-support.patch @@ -0,0 +1,152 @@ +Subject: arm: Add support for lazy preemption +From: Thomas Gleixner +Date: Wed, 31 Oct 2012 12:04:11 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Implement the arm pieces for lazy preempt. + +Signed-off-by: Thomas Gleixner +--- + arch/arm/Kconfig | 1 + + arch/arm/include/asm/thread_info.h | 8 ++++++-- + arch/arm/kernel/asm-offsets.c | 1 + + arch/arm/kernel/entry-armv.S | 19 ++++++++++++++++--- + arch/arm/kernel/entry-common.S | 9 +++++++-- + arch/arm/kernel/signal.c | 3 ++- + 6 files changed, 33 insertions(+), 8 deletions(-) + +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -75,6 +75,7 @@ config ARM + select HAVE_PERF_EVENTS + select HAVE_PERF_REGS + select HAVE_PERF_USER_STACK_DUMP ++ select HAVE_PREEMPT_LAZY + select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE) + select HAVE_REGS_AND_STACK_ACCESS_API + select HAVE_SYSCALL_TRACEPOINTS +--- a/arch/arm/include/asm/thread_info.h ++++ b/arch/arm/include/asm/thread_info.h +@@ -49,6 +49,7 @@ struct cpu_context_save { + struct thread_info { + unsigned long flags; /* low level flags */ + int preempt_count; /* 0 => preemptable, <0 => bug */ ++ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */ + mm_segment_t addr_limit; /* address limit */ + struct task_struct *task; /* main task structure */ + __u32 cpu; /* cpu */ +@@ -142,7 +143,8 @@ extern int vfp_restore_user_hwstate(stru + #define TIF_SYSCALL_TRACE 4 /* syscall trace active */ + #define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */ + #define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */ +-#define TIF_SECCOMP 7 /* seccomp syscall filtering active */ ++#define TIF_SECCOMP 8 /* seccomp syscall filtering active */ ++#define TIF_NEED_RESCHED_LAZY 7 + + #define TIF_NOHZ 12 /* in adaptive nohz mode */ + #define TIF_USING_IWMMXT 17 +@@ -152,6 +154,7 @@ extern int vfp_restore_user_hwstate(stru + #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) + #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) + #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) ++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY) + #define _TIF_UPROBE (1 << TIF_UPROBE) + #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) + #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) +@@ -167,7 +170,8 @@ extern int vfp_restore_user_hwstate(stru + * Change these and you break ASM code in entry-common.S + */ + #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ +- _TIF_NOTIFY_RESUME | _TIF_UPROBE) ++ _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ ++ _TIF_NEED_RESCHED_LAZY) + + #endif /* __KERNEL__ */ + #endif /* __ASM_ARM_THREAD_INFO_H */ +--- a/arch/arm/kernel/asm-offsets.c ++++ b/arch/arm/kernel/asm-offsets.c +@@ -65,6 +65,7 @@ int main(void) + BLANK(); + DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); + DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); ++ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count)); + DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit)); + DEFINE(TI_TASK, offsetof(struct thread_info, task)); + DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); +--- a/arch/arm/kernel/entry-armv.S ++++ b/arch/arm/kernel/entry-armv.S +@@ -220,11 +220,18 @@ ENDPROC(__dabt_svc) + + #ifdef CONFIG_PREEMPT + ldr r8, [tsk, #TI_PREEMPT] @ get preempt count +- ldr r0, [tsk, #TI_FLAGS] @ get flags + teq r8, #0 @ if preempt count != 0 ++ bne 1f @ return from exeption ++ ldr r0, [tsk, #TI_FLAGS] @ get flags ++ tst r0, #_TIF_NEED_RESCHED @ if NEED_RESCHED is set ++ blne svc_preempt @ preempt! ++ ++ ldr r8, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count ++ teq r8, #0 @ if preempt lazy count != 0 + movne r0, #0 @ force flags to 0 +- tst r0, #_TIF_NEED_RESCHED ++ tst r0, #_TIF_NEED_RESCHED_LAZY + blne svc_preempt ++1: + #endif + + svc_exit r5, irq = 1 @ return from exception +@@ -239,8 +246,14 @@ ENDPROC(__irq_svc) + 1: bl preempt_schedule_irq @ irq en/disable is done inside + ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS + tst r0, #_TIF_NEED_RESCHED ++ bne 1b ++ tst r0, #_TIF_NEED_RESCHED_LAZY + reteq r8 @ go again +- b 1b ++ ldr r0, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count ++ teq r0, #0 @ if preempt lazy count != 0 ++ beq 1b ++ ret r8 @ go again ++ + #endif + + __und_fault: +--- a/arch/arm/kernel/entry-common.S ++++ b/arch/arm/kernel/entry-common.S +@@ -36,7 +36,9 @@ + UNWIND(.cantunwind ) + disable_irq_notrace @ disable interrupts + ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing +- tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK ++ tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP) ++ bne fast_work_pending ++ tst r1, #_TIF_SECCOMP + bne fast_work_pending + + /* perform architecture specific actions before user return */ +@@ -62,8 +64,11 @@ ENDPROC(ret_fast_syscall) + str r0, [sp, #S_R0 + S_OFF]! @ save returned r0 + disable_irq_notrace @ disable interrupts + ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing +- tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK ++ tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP) ++ bne do_slower_path ++ tst r1, #_TIF_SECCOMP + beq no_work_pending ++do_slower_path: + UNWIND(.fnend ) + ENDPROC(ret_fast_syscall) + +--- a/arch/arm/kernel/signal.c ++++ b/arch/arm/kernel/signal.c +@@ -572,7 +572,8 @@ do_work_pending(struct pt_regs *regs, un + */ + trace_hardirqs_off(); + do { +- if (likely(thread_flags & _TIF_NEED_RESCHED)) { ++ if (likely(thread_flags & (_TIF_NEED_RESCHED | ++ _TIF_NEED_RESCHED_LAZY))) { + schedule(); + } else { + if (unlikely(!user_mode(regs))) diff --git a/patches/features/all/rt/arm-unwind-use_raw_lock.patch b/patches/features/all/rt/arm-unwind-use_raw_lock.patch new file mode 100644 index 00000000000..622dcc73b4a --- /dev/null +++ b/patches/features/all/rt/arm-unwind-use_raw_lock.patch @@ -0,0 +1,84 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 20 Sep 2013 14:31:54 +0200 +Subject: arm/unwind: use a raw_spin_lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Mostly unwind is done with irqs enabled however SLUB may call it with +irqs disabled while creating a new SLUB cache. + +I had system freeze while loading a module which called +kmem_cache_create() on init. That means SLUB's __slab_alloc() disabled +interrupts and then + +->new_slab_objects() + ->new_slab() + ->setup_object() + ->setup_object_debug() + ->init_tracking() + ->set_track() + ->save_stack_trace() + ->save_stack_trace_tsk() + ->walk_stackframe() + ->unwind_frame() + ->unwind_find_idx() + =>spin_lock_irqsave(&unwind_lock); + + +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/kernel/unwind.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +--- a/arch/arm/kernel/unwind.c ++++ b/arch/arm/kernel/unwind.c +@@ -93,7 +93,7 @@ extern const struct unwind_idx __start_u + static const struct unwind_idx *__origin_unwind_idx; + extern const struct unwind_idx __stop_unwind_idx[]; + +-static DEFINE_SPINLOCK(unwind_lock); ++static DEFINE_RAW_SPINLOCK(unwind_lock); + static LIST_HEAD(unwind_tables); + + /* Convert a prel31 symbol to an absolute address */ +@@ -201,7 +201,7 @@ static const struct unwind_idx *unwind_f + /* module unwind tables */ + struct unwind_table *table; + +- spin_lock_irqsave(&unwind_lock, flags); ++ raw_spin_lock_irqsave(&unwind_lock, flags); + list_for_each_entry(table, &unwind_tables, list) { + if (addr >= table->begin_addr && + addr < table->end_addr) { +@@ -213,7 +213,7 @@ static const struct unwind_idx *unwind_f + break; + } + } +- spin_unlock_irqrestore(&unwind_lock, flags); ++ raw_spin_unlock_irqrestore(&unwind_lock, flags); + } + + pr_debug("%s: idx = %p\n", __func__, idx); +@@ -529,9 +529,9 @@ struct unwind_table *unwind_table_add(un + tab->begin_addr = text_addr; + tab->end_addr = text_addr + text_size; + +- spin_lock_irqsave(&unwind_lock, flags); ++ raw_spin_lock_irqsave(&unwind_lock, flags); + list_add_tail(&tab->list, &unwind_tables); +- spin_unlock_irqrestore(&unwind_lock, flags); ++ raw_spin_unlock_irqrestore(&unwind_lock, flags); + + return tab; + } +@@ -543,9 +543,9 @@ void unwind_table_del(struct unwind_tabl + if (!tab) + return; + +- spin_lock_irqsave(&unwind_lock, flags); ++ raw_spin_lock_irqsave(&unwind_lock, flags); + list_del(&tab->list); +- spin_unlock_irqrestore(&unwind_lock, flags); ++ raw_spin_unlock_irqrestore(&unwind_lock, flags); + + kfree(tab); + } diff --git a/patches/features/all/rt/arm64-xen--Make-XEN-depend-on-non-rt.patch b/patches/features/all/rt/arm64-xen--Make-XEN-depend-on-non-rt.patch new file mode 100644 index 00000000000..38d7efff096 --- /dev/null +++ b/patches/features/all/rt/arm64-xen--Make-XEN-depend-on-non-rt.patch @@ -0,0 +1,24 @@ +Subject: arm64/xen: Make XEN depend on !RT +From: Thomas Gleixner +Date: Mon, 12 Oct 2015 11:18:40 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +It's not ready and probably never will be, unless xen folks have a +look at it. + +Signed-off-by: Thomas Gleixner +--- + arch/arm64/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -694,7 +694,7 @@ config XEN_DOM0 + + config XEN + bool "Xen guest support on ARM64" +- depends on ARM64 && OF ++ depends on ARM64 && OF && !PREEMPT_RT_FULL + select SWIOTLB_XEN + select PARAVIRT + help diff --git a/patches/features/all/rt/at91_dont_enable_disable_clock.patch b/patches/features/all/rt/at91_dont_enable_disable_clock.patch new file mode 100644 index 00000000000..1c8469499ba --- /dev/null +++ b/patches/features/all/rt/at91_dont_enable_disable_clock.patch @@ -0,0 +1,92 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 09 Mar 2016 10:51:06 +0100 +Subject: arm: at91: do not disable/enable clocks in a row +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Currently the driver will disable the clock and enable it one line later +if it is switching from periodic mode into one shot. +This can be avoided and causes a needless warning on -RT. + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/clocksource/tcb_clksrc.c | 33 +++++++++++++++++++++++++++++---- + 1 file changed, 29 insertions(+), 4 deletions(-) + +--- a/drivers/clocksource/tcb_clksrc.c ++++ b/drivers/clocksource/tcb_clksrc.c +@@ -74,6 +74,7 @@ static struct clocksource clksrc = { + struct tc_clkevt_device { + struct clock_event_device clkevt; + struct clk *clk; ++ bool clk_enabled; + void __iomem *regs; + }; + +@@ -91,6 +92,24 @@ static struct tc_clkevt_device *to_tc_cl + */ + static u32 timer_clock; + ++static void tc_clk_disable(struct clock_event_device *d) ++{ ++ struct tc_clkevt_device *tcd = to_tc_clkevt(d); ++ ++ clk_disable(tcd->clk); ++ tcd->clk_enabled = false; ++} ++ ++static void tc_clk_enable(struct clock_event_device *d) ++{ ++ struct tc_clkevt_device *tcd = to_tc_clkevt(d); ++ ++ if (tcd->clk_enabled) ++ return; ++ clk_enable(tcd->clk); ++ tcd->clk_enabled = true; ++} ++ + static int tc_shutdown(struct clock_event_device *d) + { + struct tc_clkevt_device *tcd = to_tc_clkevt(d); +@@ -98,8 +117,14 @@ static int tc_shutdown(struct clock_even + + __raw_writel(0xff, regs + ATMEL_TC_REG(2, IDR)); + __raw_writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR)); ++ return 0; ++} ++ ++static int tc_shutdown_clk_off(struct clock_event_device *d) ++{ ++ tc_shutdown(d); + if (!clockevent_state_detached(d)) +- clk_disable(tcd->clk); ++ tc_clk_disable(d); + + return 0; + } +@@ -112,7 +137,7 @@ static int tc_set_oneshot(struct clock_e + if (clockevent_state_oneshot(d) || clockevent_state_periodic(d)) + tc_shutdown(d); + +- clk_enable(tcd->clk); ++ tc_clk_enable(d); + + /* slow clock, count up to RC, then irq and stop */ + __raw_writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE | +@@ -134,7 +159,7 @@ static int tc_set_periodic(struct clock_ + /* By not making the gentime core emulate periodic mode on top + * of oneshot, we get lower overhead and improved accuracy. + */ +- clk_enable(tcd->clk); ++ tc_clk_enable(d); + + /* slow clock, count up to RC, then irq and restart */ + __raw_writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, +@@ -168,7 +193,7 @@ static struct tc_clkevt_device clkevt = + /* Should be lower than at91rm9200's system timer */ + .rating = 125, + .set_next_event = tc_next_event, +- .set_state_shutdown = tc_shutdown, ++ .set_state_shutdown = tc_shutdown_clk_off, + .set_state_periodic = tc_set_periodic, + .set_state_oneshot = tc_set_oneshot, + }, diff --git a/patches/features/all/rt/ata-disable-interrupts-if-non-rt.patch b/patches/features/all/rt/ata-disable-interrupts-if-non-rt.patch new file mode 100644 index 00000000000..0befaf72f65 --- /dev/null +++ b/patches/features/all/rt/ata-disable-interrupts-if-non-rt.patch @@ -0,0 +1,65 @@ +From: Steven Rostedt +Date: Fri, 3 Jul 2009 08:44:29 -0500 +Subject: ata: Do not disable interrupts in ide code for preempt-rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the local_irq_*_nort variants. + +Signed-off-by: Steven Rostedt +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/ata/libata-sff.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/ata/libata-sff.c ++++ b/drivers/ata/libata-sff.c +@@ -678,9 +678,9 @@ unsigned int ata_sff_data_xfer_noirq(str + unsigned long flags; + unsigned int consumed; + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + consumed = ata_sff_data_xfer32(dev, buf, buflen, rw); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + return consumed; + } +@@ -719,7 +719,7 @@ static void ata_pio_sector(struct ata_qu + unsigned long flags; + + /* FIXME: use a bounce buffer */ +- local_irq_save(flags); ++ local_irq_save_nort(flags); + buf = kmap_atomic(page); + + /* do the actual data transfer */ +@@ -727,7 +727,7 @@ static void ata_pio_sector(struct ata_qu + do_write); + + kunmap_atomic(buf); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } else { + buf = page_address(page); + ap->ops->sff_data_xfer(qc->dev, buf + offset, qc->sect_size, +@@ -864,7 +864,7 @@ static int __atapi_pio_bytes(struct ata_ + unsigned long flags; + + /* FIXME: use bounce buffer */ +- local_irq_save(flags); ++ local_irq_save_nort(flags); + buf = kmap_atomic(page); + + /* do the actual data transfer */ +@@ -872,7 +872,7 @@ static int __atapi_pio_bytes(struct ata_ + count, rw); + + kunmap_atomic(buf); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } else { + buf = page_address(page); + consumed = ap->ops->sff_data_xfer(dev, buf + offset, diff --git a/patches/features/all/rt/block-blk-mq-use-swait.patch b/patches/features/all/rt/block-blk-mq-use-swait.patch new file mode 100644 index 00000000000..50de26cbf24 --- /dev/null +++ b/patches/features/all/rt/block-blk-mq-use-swait.patch @@ -0,0 +1,115 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 13 Feb 2015 11:01:26 +0100 +Subject: block: blk-mq: Use swait +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 +| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6 +| 5 locks held by kworker/u257:6/255: +| #0: ("events_unbound"){.+.+.+}, at: [] process_one_work+0x171/0x5e0 +| #1: ((&entry->work)){+.+.+.}, at: [] process_one_work+0x171/0x5e0 +| #2: (&shost->scan_mutex){+.+.+.}, at: [] __scsi_add_device+0xa3/0x130 [scsi_mod] +| #3: (&set->tag_list_lock){+.+...}, at: [] blk_mq_init_queue+0x96a/0xa50 +| #4: (rcu_read_lock_sched){......}, at: [] percpu_ref_kill_and_confirm+0x1d/0x120 +| Preemption disabled at:[] blk_mq_freeze_queue_start+0x56/0x70 +| +| CPU: 2 PID: 255 Comm: kworker/u257:6 Not tainted 3.18.7-rt0+ #1 +| Workqueue: events_unbound async_run_entry_fn +| 0000000000000003 ffff8800bc29f998 ffffffff815b3a12 0000000000000000 +| 0000000000000000 ffff8800bc29f9b8 ffffffff8109aa16 ffff8800bc29fa28 +| ffff8800bc5d1bc8 ffff8800bc29f9e8 ffffffff815b8dd4 ffff880000000000 +| Call Trace: +| [] dump_stack+0x4f/0x7c +| [] __might_sleep+0x116/0x190 +| [] rt_spin_lock+0x24/0x60 +| [] __wake_up+0x29/0x60 +| [] blk_mq_usage_counter_release+0x1e/0x20 +| [] percpu_ref_kill_and_confirm+0x106/0x120 +| [] blk_mq_freeze_queue_start+0x56/0x70 +| [] blk_mq_update_tag_set_depth+0x40/0xd0 +| [] blk_mq_init_queue+0x98c/0xa50 +| [] scsi_mq_alloc_queue+0x20/0x60 [scsi_mod] +| [] scsi_alloc_sdev+0x2f5/0x370 [scsi_mod] +| [] scsi_probe_and_add_lun+0x9e4/0xdd0 [scsi_mod] +| [] __scsi_add_device+0x126/0x130 [scsi_mod] +| [] ata_scsi_scan_host+0xaf/0x200 [libata] +| [] async_port_probe+0x46/0x60 [libata] +| [] async_run_entry_fn+0x3b/0xf0 +| [] process_one_work+0x201/0x5e0 + +Signed-off-by: Sebastian Andrzej Siewior +--- + block/blk-core.c | 6 +++--- + block/blk-mq.c | 6 +++--- + include/linux/blkdev.h | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -662,7 +662,7 @@ int blk_queue_enter(struct request_queue + if (nowait) + return -EBUSY; + +- ret = wait_event_interruptible(q->mq_freeze_wq, ++ ret = swait_event_interruptible(q->mq_freeze_wq, + !atomic_read(&q->mq_freeze_depth) || + blk_queue_dying(q)); + if (blk_queue_dying(q)) +@@ -682,7 +682,7 @@ static void blk_queue_usage_counter_rele + struct request_queue *q = + container_of(ref, struct request_queue, q_usage_counter); + +- wake_up_all(&q->mq_freeze_wq); ++ swake_up_all(&q->mq_freeze_wq); + } + + static void blk_rq_timed_out_timer(unsigned long data) +@@ -751,7 +751,7 @@ struct request_queue *blk_alloc_queue_no + q->bypass_depth = 1; + __set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags); + +- init_waitqueue_head(&q->mq_freeze_wq); ++ init_swait_queue_head(&q->mq_freeze_wq); + + /* + * Init percpu_ref in atomic mode so that it's faster to shutdown. +--- a/block/blk-mq.c ++++ b/block/blk-mq.c +@@ -72,7 +72,7 @@ EXPORT_SYMBOL_GPL(blk_mq_freeze_queue_st + + static void blk_mq_freeze_queue_wait(struct request_queue *q) + { +- wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->q_usage_counter)); ++ swait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->q_usage_counter)); + } + + /* +@@ -110,7 +110,7 @@ void blk_mq_unfreeze_queue(struct reques + WARN_ON_ONCE(freeze_depth < 0); + if (!freeze_depth) { + percpu_ref_reinit(&q->q_usage_counter); +- wake_up_all(&q->mq_freeze_wq); ++ swake_up_all(&q->mq_freeze_wq); + } + } + EXPORT_SYMBOL_GPL(blk_mq_unfreeze_queue); +@@ -129,7 +129,7 @@ void blk_mq_wake_waiters(struct request_ + * dying, we need to ensure that processes currently waiting on + * the queue are notified as well. + */ +- wake_up_all(&q->mq_freeze_wq); ++ swake_up_all(&q->mq_freeze_wq); + } + + bool blk_mq_can_queue(struct blk_mq_hw_ctx *hctx) +--- a/include/linux/blkdev.h ++++ b/include/linux/blkdev.h +@@ -468,7 +468,7 @@ struct request_queue { + struct throtl_data *td; + #endif + struct rcu_head rcu_head; +- wait_queue_head_t mq_freeze_wq; ++ struct swait_queue_head mq_freeze_wq; + struct percpu_ref q_usage_counter; + struct list_head all_q_node; + diff --git a/patches/features/all/rt/block-mq-don-t-complete-requests-via-IPI.patch b/patches/features/all/rt/block-mq-don-t-complete-requests-via-IPI.patch new file mode 100644 index 00000000000..3546d3301c6 --- /dev/null +++ b/patches/features/all/rt/block-mq-don-t-complete-requests-via-IPI.patch @@ -0,0 +1,103 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 29 Jan 2015 15:10:08 +0100 +Subject: block/mq: don't complete requests via IPI +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The IPI runs in hardirq context and there are sleeping locks. This patch +moves the completion into a workqueue. + +Signed-off-by: Sebastian Andrzej Siewior +--- + block/blk-core.c | 3 +++ + block/blk-mq.c | 20 ++++++++++++++++++++ + include/linux/blk-mq.h | 2 +- + include/linux/blkdev.h | 1 + + 4 files changed, 25 insertions(+), 1 deletion(-) + +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -125,6 +125,9 @@ void blk_rq_init(struct request_queue *q + + INIT_LIST_HEAD(&rq->queuelist); + INIT_LIST_HEAD(&rq->timeout_list); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work); ++#endif + rq->cpu = -1; + rq->q = q; + rq->__sector = (sector_t) -1; +--- a/block/blk-mq.c ++++ b/block/blk-mq.c +@@ -177,6 +177,9 @@ static void blk_mq_rq_ctx_init(struct re + rq->resid_len = 0; + rq->sense = NULL; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work); ++#endif + INIT_LIST_HEAD(&rq->timeout_list); + rq->timeout = 0; + +@@ -345,6 +348,17 @@ void blk_mq_end_request(struct request * + } + EXPORT_SYMBOL(blk_mq_end_request); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++void __blk_mq_complete_request_remote_work(struct work_struct *work) ++{ ++ struct request *rq = container_of(work, struct request, work); ++ ++ rq->q->softirq_done_fn(rq); ++} ++ ++#else ++ + static void __blk_mq_complete_request_remote(void *data) + { + struct request *rq = data; +@@ -352,6 +366,8 @@ static void __blk_mq_complete_request_re + rq->q->softirq_done_fn(rq); + } + ++#endif ++ + static void blk_mq_ipi_complete_request(struct request *rq) + { + struct blk_mq_ctx *ctx = rq->mq_ctx; +@@ -368,10 +384,14 @@ static void blk_mq_ipi_complete_request( + shared = cpus_share_cache(cpu, ctx->cpu); + + if (cpu != ctx->cpu && !shared && cpu_online(ctx->cpu)) { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ schedule_work_on(ctx->cpu, &rq->work); ++#else + rq->csd.func = __blk_mq_complete_request_remote; + rq->csd.info = rq; + rq->csd.flags = 0; + smp_call_function_single_async(ctx->cpu, &rq->csd); ++#endif + } else { + rq->q->softirq_done_fn(rq); + } +--- a/include/linux/blk-mq.h ++++ b/include/linux/blk-mq.h +@@ -209,7 +209,7 @@ static inline u16 blk_mq_unique_tag_to_t + return unique_tag & BLK_MQ_UNIQUE_TAG_MASK; + } + +- ++void __blk_mq_complete_request_remote_work(struct work_struct *work); + int blk_mq_request_started(struct request *rq); + void blk_mq_start_request(struct request *rq); + void blk_mq_end_request(struct request *rq, int error); +--- a/include/linux/blkdev.h ++++ b/include/linux/blkdev.h +@@ -89,6 +89,7 @@ struct request { + struct list_head queuelist; + union { + struct call_single_data csd; ++ struct work_struct work; + u64 fifo_time; + }; + diff --git a/patches/features/all/rt/block-mq-drop-preempt-disable.patch b/patches/features/all/rt/block-mq-drop-preempt-disable.patch new file mode 100644 index 00000000000..4b1d5a0b505 --- /dev/null +++ b/patches/features/all/rt/block-mq-drop-preempt-disable.patch @@ -0,0 +1,52 @@ +From: Sebastian Andrzej Siewior +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: block/mq: do not invoke preempt_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +preempt_disable() and get_cpu() don't play well together with the sleeping +locks it tries to allocate later. +It seems to be enough to replace it with get_cpu_light() and migrate_disable(). + +Signed-off-by: Sebastian Andrzej Siewior +--- + block/blk-mq.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/block/blk-mq.c ++++ b/block/blk-mq.c +@@ -363,7 +363,7 @@ static void blk_mq_ipi_complete_request( + return; + } + +- cpu = get_cpu(); ++ cpu = get_cpu_light(); + if (!test_bit(QUEUE_FLAG_SAME_FORCE, &rq->q->queue_flags)) + shared = cpus_share_cache(cpu, ctx->cpu); + +@@ -375,7 +375,7 @@ static void blk_mq_ipi_complete_request( + } else { + rq->q->softirq_done_fn(rq); + } +- put_cpu(); ++ put_cpu_light(); + } + + static void __blk_mq_complete_request(struct request *rq) +@@ -917,14 +917,14 @@ void blk_mq_run_hw_queue(struct blk_mq_h + return; + + if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { +- int cpu = get_cpu(); ++ int cpu = get_cpu_light(); + if (cpumask_test_cpu(cpu, hctx->cpumask)) { + __blk_mq_run_hw_queue(hctx); +- put_cpu(); ++ put_cpu_light(); + return; + } + +- put_cpu(); ++ put_cpu_light(); + } + + kblockd_schedule_work_on(blk_mq_hctx_next_cpu(hctx), &hctx->run_work); diff --git a/patches/features/all/rt/block-mq-use-cpu_light.patch b/patches/features/all/rt/block-mq-use-cpu_light.patch new file mode 100644 index 00000000000..3f8c635e50e --- /dev/null +++ b/patches/features/all/rt/block-mq-use-cpu_light.patch @@ -0,0 +1,30 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 9 Apr 2014 10:37:23 +0200 +Subject: block: mq: use cpu_light() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +there is a might sleep splat because get_cpu() disables preemption and +later we grab a lock. As a workaround for this we use get_cpu_light(). + +Signed-off-by: Sebastian Andrzej Siewior +--- + block/blk-mq.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/block/blk-mq.h ++++ b/block/blk-mq.h +@@ -72,12 +72,12 @@ static inline struct blk_mq_ctx *__blk_m + */ + static inline struct blk_mq_ctx *blk_mq_get_ctx(struct request_queue *q) + { +- return __blk_mq_get_ctx(q, get_cpu()); ++ return __blk_mq_get_ctx(q, get_cpu_light()); + } + + static inline void blk_mq_put_ctx(struct blk_mq_ctx *ctx) + { +- put_cpu(); ++ put_cpu_light(); + } + + struct blk_mq_alloc_data { diff --git a/patches/features/all/rt/block-shorten-interrupt-disabled-regions.patch b/patches/features/all/rt/block-shorten-interrupt-disabled-regions.patch new file mode 100644 index 00000000000..9ddd078c71e --- /dev/null +++ b/patches/features/all/rt/block-shorten-interrupt-disabled-regions.patch @@ -0,0 +1,97 @@ +Subject: block: Shorten interrupt disabled regions +From: Thomas Gleixner +Date: Wed, 22 Jun 2011 19:47:02 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Moving the blk_sched_flush_plug() call out of the interrupt/preempt +disabled region in the scheduler allows us to replace +local_irq_save/restore(flags) by local_irq_disable/enable() in +blk_flush_plug(). + +Now instead of doing this we disable interrupts explicitely when we +lock the request_queue and reenable them when we drop the lock. That +allows interrupts to be handled when the plug list contains requests +for more than one queue. + +Aside of that this change makes the scope of the irq disabled region +more obvious. The current code confused the hell out of me when +looking at: + + local_irq_save(flags); + spin_lock(q->queue_lock); + ... + queue_unplugged(q...); + scsi_request_fn(); + spin_unlock(q->queue_lock); + spin_lock(shost->host_lock); + spin_unlock_irq(shost->host_lock); + +-------------------^^^ ???? + + spin_lock_irq(q->queue_lock); + spin_unlock(q->lock); + local_irq_restore(flags); + +Also add a comment to __blk_run_queue() documenting that +q->request_fn() can drop q->queue_lock and reenable interrupts, but +must return with q->queue_lock held and interrupts disabled. + +Signed-off-by: Thomas Gleixner +Cc: Peter Zijlstra +Cc: Tejun Heo +Cc: Jens Axboe +Cc: Linus Torvalds +Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de +--- + block/blk-core.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -3177,7 +3177,7 @@ static void queue_unplugged(struct reque + blk_run_queue_async(q); + else + __blk_run_queue(q); +- spin_unlock(q->queue_lock); ++ spin_unlock_irq(q->queue_lock); + } + + static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule) +@@ -3225,7 +3225,6 @@ EXPORT_SYMBOL(blk_check_plugged); + void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) + { + struct request_queue *q; +- unsigned long flags; + struct request *rq; + LIST_HEAD(list); + unsigned int depth; +@@ -3245,11 +3244,6 @@ void blk_flush_plug_list(struct blk_plug + q = NULL; + depth = 0; + +- /* +- * Save and disable interrupts here, to avoid doing it for every +- * queue lock we have to take. +- */ +- local_irq_save(flags); + while (!list_empty(&list)) { + rq = list_entry_rq(list.next); + list_del_init(&rq->queuelist); +@@ -3262,7 +3256,7 @@ void blk_flush_plug_list(struct blk_plug + queue_unplugged(q, depth, from_schedule); + q = rq->q; + depth = 0; +- spin_lock(q->queue_lock); ++ spin_lock_irq(q->queue_lock); + } + + /* +@@ -3289,8 +3283,6 @@ void blk_flush_plug_list(struct blk_plug + */ + if (q) + queue_unplugged(q, depth, from_schedule); +- +- local_irq_restore(flags); + } + + void blk_finish_plug(struct blk_plug *plug) diff --git a/patches/features/all/rt/block-use-cpu-chill.patch b/patches/features/all/rt/block-use-cpu-chill.patch new file mode 100644 index 00000000000..b4760dd842c --- /dev/null +++ b/patches/features/all/rt/block-use-cpu-chill.patch @@ -0,0 +1,46 @@ +Subject: block: Use cpu_chill() for retry loops +From: Thomas Gleixner +Date: Thu, 20 Dec 2012 18:28:26 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Retry loops on RT might loop forever when the modifying side was +preempted. Steven also observed a live lock when there was a +concurrent priority boosting going on. + +Use cpu_chill() instead of cpu_relax() to let the system +make progress. + +Signed-off-by: Thomas Gleixner + +--- + block/blk-ioc.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/block/blk-ioc.c ++++ b/block/blk-ioc.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include "blk.h" + +@@ -109,7 +110,7 @@ static void ioc_release_fn(struct work_s + spin_unlock(q->queue_lock); + } else { + spin_unlock_irqrestore(&ioc->lock, flags); +- cpu_relax(); ++ cpu_chill(); + spin_lock_irqsave_nested(&ioc->lock, flags, 1); + } + } +@@ -187,7 +188,7 @@ void put_io_context_active(struct io_con + spin_unlock(icq->q->queue_lock); + } else { + spin_unlock_irqrestore(&ioc->lock, flags); +- cpu_relax(); ++ cpu_chill(); + goto retry; + } + } diff --git a/patches/features/all/rt/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch b/patches/features/all/rt/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch new file mode 100644 index 00000000000..8c666a7e36c --- /dev/null +++ b/patches/features/all/rt/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch @@ -0,0 +1,39 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Dec 2016 14:44:18 +0100 +Subject: [PATCH] btrfs: drop trace_btrfs_all_work_done() from + normal_work_helper() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +For btrfs_scrubparity_helper() the ->func() is set to +scrub_parity_bio_endio_worker(). This functions invokes invokes +scrub_free_parity() which kfrees() the worked object. All is good as +long as trace events are not enabled because we boom with a backtrace +like this: +| Workqueue: btrfs-endio btrfs_endio_helper +| RIP: 0010:[] [] trace_event_raw_event_btrfs__work__done+0x4e/0xa0 +| Call Trace: +| [] btrfs_scrubparity_helper+0x59d/0x780 +| [] btrfs_endio_helper+0x9/0x10 +| [] process_one_work+0x26e/0x7b0 +| [] worker_thread+0x46/0x560 +| [] kthread+0xee/0x110 +| [] ret_from_fork+0x2a/0x40 + +So in order to avoid this, I remove the trace point. + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/btrfs/async-thread.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/fs/btrfs/async-thread.c ++++ b/fs/btrfs/async-thread.c +@@ -318,8 +318,6 @@ static void normal_work_helper(struct bt + set_bit(WORK_DONE_BIT, &work->flags); + run_ordered_work(wq); + } +- if (!need_order) +- trace_btrfs_all_work_done(work); + } + + void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t uniq_func, diff --git a/patches/features/all/rt/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch b/patches/features/all/rt/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch new file mode 100644 index 00000000000..32e7510e2bb --- /dev/null +++ b/patches/features/all/rt/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch @@ -0,0 +1,34 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Dec 2016 12:28:52 +0100 +Subject: [PATCH] btrfs: swap free() and trace point in run_ordered_work() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The previous patch removed a trace point due to a use after free problem +with tracing enabled. While looking at the backtrace it took me a while +to find the right spot. While doing so I noticed that this trace point +could be used with two clean-up functions in run_ordered_work(): +- run_one_async_free() +- async_cow_free() + +Both of them free the `work' item so a later use in the tracepoint is +not possible. +This patches swaps the order so we first have the trace point and then +free the struct. + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/btrfs/async-thread.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/btrfs/async-thread.c ++++ b/fs/btrfs/async-thread.c +@@ -288,8 +288,8 @@ static void run_ordered_work(struct __bt + * we don't want to call the ordered free functions + * with the lock held though + */ +- work->ordered_free(work); + trace_btrfs_all_work_done(work); ++ work->ordered_free(work); + } + spin_unlock_irqrestore(lock, flags); + } diff --git a/patches/features/all/rt/bug-rt-dependend-variants.patch b/patches/features/all/rt/bug-rt-dependend-variants.patch new file mode 100644 index 00000000000..e338270d0b3 --- /dev/null +++ b/patches/features/all/rt/bug-rt-dependend-variants.patch @@ -0,0 +1,37 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:58 -0500 +Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + include/asm-generic/bug.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/include/asm-generic/bug.h ++++ b/include/asm-generic/bug.h +@@ -215,6 +215,20 @@ void __warn(const char *file, int line, + # define WARN_ON_SMP(x) ({0;}) + #endif + ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define BUG_ON_RT(c) BUG_ON(c) ++# define BUG_ON_NONRT(c) do { } while (0) ++# define WARN_ON_RT(condition) WARN_ON(condition) ++# define WARN_ON_NONRT(condition) do { } while (0) ++# define WARN_ON_ONCE_NONRT(condition) do { } while (0) ++#else ++# define BUG_ON_RT(c) do { } while (0) ++# define BUG_ON_NONRT(c) BUG_ON(c) ++# define WARN_ON_RT(condition) do { } while (0) ++# define WARN_ON_NONRT(condition) WARN_ON(condition) ++# define WARN_ON_ONCE_NONRT(condition) WARN_ON_ONCE(condition) ++#endif ++ + #endif /* __ASSEMBLY__ */ + + #endif diff --git a/patches/features/all/rt/cgroups-scheduling-while-atomic-in-cgroup-code.patch b/patches/features/all/rt/cgroups-scheduling-while-atomic-in-cgroup-code.patch new file mode 100644 index 00000000000..006095bd25b --- /dev/null +++ b/patches/features/all/rt/cgroups-scheduling-while-atomic-in-cgroup-code.patch @@ -0,0 +1,105 @@ +From: Mike Galbraith +Date: Sat, 21 Jun 2014 10:09:48 +0200 +Subject: memcontrol: Prevent scheduling while atomic in cgroup code +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +mm, memcg: make refill_stock() use get_cpu_light() + +Nikita reported the following memcg scheduling while atomic bug: + +Call Trace: +[e22d5a90] [c0007ea8] show_stack+0x4c/0x168 (unreliable) +[e22d5ad0] [c0618c04] __schedule_bug+0x94/0xb0 +[e22d5ae0] [c060b9ec] __schedule+0x530/0x550 +[e22d5bf0] [c060bacc] schedule+0x30/0xbc +[e22d5c00] [c060ca24] rt_spin_lock_slowlock+0x180/0x27c +[e22d5c70] [c00b39dc] res_counter_uncharge_until+0x40/0xc4 +[e22d5ca0] [c013ca88] drain_stock.isra.20+0x54/0x98 +[e22d5cc0] [c01402ac] __mem_cgroup_try_charge+0x2e8/0xbac +[e22d5d70] [c01410d4] mem_cgroup_charge_common+0x3c/0x70 +[e22d5d90] [c0117284] __do_fault+0x38c/0x510 +[e22d5df0] [c011a5f4] handle_pte_fault+0x98/0x858 +[e22d5e50] [c060ed08] do_page_fault+0x42c/0x6fc +[e22d5f40] [c000f5b4] handle_page_fault+0xc/0x80 + +What happens: + + refill_stock() + get_cpu_var() + drain_stock() + res_counter_uncharge() + res_counter_uncharge_until() + spin_lock() <== boom + +Fix it by replacing get/put_cpu_var() with get/put_cpu_light(). + +Reported-by: Nikita Yushchenko +Signed-off-by: Mike Galbraith +[bigeasy: use memcg_stock_ll as a locallock since it is now IRQ-off region] +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/memcontrol.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -1697,6 +1697,7 @@ struct memcg_stock_pcp { + #define FLUSHING_CACHED_CHARGE 0 + }; + static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock); ++static DEFINE_LOCAL_IRQ_LOCK(memcg_stock_ll); + static DEFINE_MUTEX(percpu_charge_mutex); + + /** +@@ -1719,7 +1720,7 @@ static bool consume_stock(struct mem_cgr + if (nr_pages > CHARGE_BATCH) + return ret; + +- local_irq_save(flags); ++ local_lock_irqsave(memcg_stock_ll, flags); + + stock = this_cpu_ptr(&memcg_stock); + if (memcg == stock->cached && stock->nr_pages >= nr_pages) { +@@ -1727,7 +1728,7 @@ static bool consume_stock(struct mem_cgr + ret = true; + } + +- local_irq_restore(flags); ++ local_unlock_irqrestore(memcg_stock_ll, flags); + + return ret; + } +@@ -1754,13 +1755,13 @@ static void drain_local_stock(struct wor + struct memcg_stock_pcp *stock; + unsigned long flags; + +- local_irq_save(flags); ++ local_lock_irqsave(memcg_stock_ll, flags); + + stock = this_cpu_ptr(&memcg_stock); + drain_stock(stock); + clear_bit(FLUSHING_CACHED_CHARGE, &stock->flags); + +- local_irq_restore(flags); ++ local_unlock_irqrestore(memcg_stock_ll, flags); + } + + /* +@@ -1772,7 +1773,7 @@ static void refill_stock(struct mem_cgro + struct memcg_stock_pcp *stock; + unsigned long flags; + +- local_irq_save(flags); ++ local_lock_irqsave(memcg_stock_ll, flags); + + stock = this_cpu_ptr(&memcg_stock); + if (stock->cached != memcg) { /* reset if necessary */ +@@ -1781,7 +1782,7 @@ static void refill_stock(struct mem_cgro + } + stock->nr_pages += nr_pages; + +- local_irq_restore(flags); ++ local_unlock_irqrestore(memcg_stock_ll, flags); + } + + /* diff --git a/patches/features/all/rt/cgroups-use-simple-wait-in-css_release.patch b/patches/features/all/rt/cgroups-use-simple-wait-in-css_release.patch new file mode 100644 index 00000000000..a5f7a6e30ca --- /dev/null +++ b/patches/features/all/rt/cgroups-use-simple-wait-in-css_release.patch @@ -0,0 +1,87 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 13 Feb 2015 15:52:24 +0100 +Subject: cgroups: use simple wait in css_release() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +To avoid: +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 +|in_atomic(): 1, irqs_disabled(): 0, pid: 92, name: rcuc/11 +|2 locks held by rcuc/11/92: +| #0: (rcu_callback){......}, at: [] rcu_cpu_kthread+0x3de/0x940 +| #1: (rcu_read_lock_sched){......}, at: [] percpu_ref_call_confirm_rcu+0x0/0xd0 +|Preemption disabled at:[] percpu_ref_switch_to_atomic_rcu+0x82/0xc0 +|CPU: 11 PID: 92 Comm: rcuc/11 Not tainted 3.18.7-rt0+ #1 +| ffff8802398cdf80 ffff880235f0bc28 ffffffff815b3a12 0000000000000000 +| 0000000000000000 ffff880235f0bc48 ffffffff8109aa16 0000000000000000 +| ffff8802398cdf80 ffff880235f0bc78 ffffffff815b8dd4 000000000000df80 +|Call Trace: +| [] dump_stack+0x4f/0x7c +| [] __might_sleep+0x116/0x190 +| [] rt_spin_lock+0x24/0x60 +| [] queue_work_on+0x6d/0x1d0 +| [] css_release+0x81/0x90 +| [] percpu_ref_call_confirm_rcu+0xbe/0xd0 +| [] percpu_ref_switch_to_atomic_rcu+0x82/0xc0 +| [] rcu_cpu_kthread+0x445/0x940 +| [] smpboot_thread_fn+0x18d/0x2d0 +| [] kthread+0xe8/0x100 +| [] ret_from_fork+0x7c/0xb0 + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/cgroup-defs.h | 2 ++ + kernel/cgroup.c | 9 +++++---- + 2 files changed, 7 insertions(+), 4 deletions(-) + +--- a/include/linux/cgroup-defs.h ++++ b/include/linux/cgroup-defs.h +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + #ifdef CONFIG_CGROUPS + +@@ -137,6 +138,7 @@ struct cgroup_subsys_state { + /* percpu_ref killing and RCU release */ + struct rcu_head rcu_head; + struct work_struct destroy_work; ++ struct swork_event destroy_swork; + }; + + /* +--- a/kernel/cgroup.c ++++ b/kernel/cgroup.c +@@ -5040,10 +5040,10 @@ static void css_free_rcu_fn(struct rcu_h + queue_work(cgroup_destroy_wq, &css->destroy_work); + } + +-static void css_release_work_fn(struct work_struct *work) ++static void css_release_work_fn(struct swork_event *sev) + { + struct cgroup_subsys_state *css = +- container_of(work, struct cgroup_subsys_state, destroy_work); ++ container_of(sev, struct cgroup_subsys_state, destroy_swork); + struct cgroup_subsys *ss = css->ss; + struct cgroup *cgrp = css->cgroup; + +@@ -5086,8 +5086,8 @@ static void css_release(struct percpu_re + struct cgroup_subsys_state *css = + container_of(ref, struct cgroup_subsys_state, refcnt); + +- INIT_WORK(&css->destroy_work, css_release_work_fn); +- queue_work(cgroup_destroy_wq, &css->destroy_work); ++ INIT_SWORK(&css->destroy_swork, css_release_work_fn); ++ swork_queue(&css->destroy_swork); + } + + static void init_and_link_css(struct cgroup_subsys_state *css, +@@ -5742,6 +5742,7 @@ static int __init cgroup_wq_init(void) + */ + cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1); + BUG_ON(!cgroup_destroy_wq); ++ BUG_ON(swork_get()); + + /* + * Used to destroy pidlists and separate to serve as flush domain. diff --git a/patches/features/all/rt/clockevents-drivers-timer-atmel-pit-fix-double-free_.patch b/patches/features/all/rt/clockevents-drivers-timer-atmel-pit-fix-double-free_.patch new file mode 100644 index 00000000000..c4e8a60f0e2 --- /dev/null +++ b/patches/features/all/rt/clockevents-drivers-timer-atmel-pit-fix-double-free_.patch @@ -0,0 +1,46 @@ +From: Alexandre Belloni +Date: Thu, 17 Mar 2016 21:09:43 +0100 +Subject: [PATCH] clockevents/drivers/timer-atmel-pit: fix double free_irq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +clockevents_exchange_device() changes the state from detached to shutdown +and so at that point the IRQ has not yet been requested. + +Acked-by: Nicolas Ferre +Signed-off-by: Alexandre Belloni +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/clocksource/timer-atmel-pit.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/clocksource/timer-atmel-pit.c ++++ b/drivers/clocksource/timer-atmel-pit.c +@@ -46,6 +46,7 @@ struct pit_data { + u32 cycle; + u32 cnt; + unsigned int irq; ++ bool irq_requested; + struct clk *mck; + }; + +@@ -96,7 +97,10 @@ static int pit_clkevt_shutdown(struct cl + + /* disable irq, leaving the clocksource active */ + pit_write(data->base, AT91_PIT_MR, (data->cycle - 1) | AT91_PIT_PITEN); +- free_irq(data->irq, data); ++ if (data->irq_requested) { ++ free_irq(data->irq, data); ++ data->irq_requested = false; ++ } + return 0; + } + +@@ -115,6 +119,8 @@ static int pit_clkevt_set_periodic(struc + if (ret) + panic(pr_fmt("Unable to setup IRQ\n")); + ++ data->irq_requested = true; ++ + /* update clocksource counter */ + data->cnt += data->cycle * PIT_PICNT(pit_read(data->base, AT91_PIT_PIVR)); + pit_write(data->base, AT91_PIT_MR, diff --git a/patches/features/all/rt/clocksource-tclib-allow-higher-clockrates.patch b/patches/features/all/rt/clocksource-tclib-allow-higher-clockrates.patch new file mode 100644 index 00000000000..7140750519f --- /dev/null +++ b/patches/features/all/rt/clocksource-tclib-allow-higher-clockrates.patch @@ -0,0 +1,158 @@ +From: Benedikt Spranger +Date: Mon, 8 Mar 2010 18:57:04 +0100 +Subject: clocksource: TCLIB: Allow higher clock rates for clock events +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +As default the TCLIB uses the 32KiHz base clock rate for clock events. +Add a compile time selection to allow higher clock resulution. + +(fixed up by Sami Pietikäinen ) + +Signed-off-by: Benedikt Spranger +Signed-off-by: Thomas Gleixner +--- + drivers/clocksource/tcb_clksrc.c | 36 +++++++++++++++++++++--------------- + drivers/misc/Kconfig | 12 ++++++++++-- + 2 files changed, 31 insertions(+), 17 deletions(-) + +--- a/drivers/clocksource/tcb_clksrc.c ++++ b/drivers/clocksource/tcb_clksrc.c +@@ -23,8 +23,7 @@ + * this 32 bit free-running counter. the second channel is not used. + * + * - The third channel may be used to provide a 16-bit clockevent +- * source, used in either periodic or oneshot mode. This runs +- * at 32 KiHZ, and can handle delays of up to two seconds. ++ * source, used in either periodic or oneshot mode. + * + * A boot clocksource and clockevent source are also currently needed, + * unless the relevant platforms (ARM/AT91, AVR32/AT32) are changed so +@@ -75,6 +74,7 @@ struct tc_clkevt_device { + struct clock_event_device clkevt; + struct clk *clk; + bool clk_enabled; ++ u32 freq; + void __iomem *regs; + }; + +@@ -83,13 +83,6 @@ static struct tc_clkevt_device *to_tc_cl + return container_of(clkevt, struct tc_clkevt_device, clkevt); + } + +-/* For now, we always use the 32K clock ... this optimizes for NO_HZ, +- * because using one of the divided clocks would usually mean the +- * tick rate can never be less than several dozen Hz (vs 0.5 Hz). +- * +- * A divided clock could be good for high resolution timers, since +- * 30.5 usec resolution can seem "low". +- */ + static u32 timer_clock; + + static void tc_clk_disable(struct clock_event_device *d) +@@ -139,7 +132,7 @@ static int tc_set_oneshot(struct clock_e + + tc_clk_enable(d); + +- /* slow clock, count up to RC, then irq and stop */ ++ /* count up to RC, then irq and stop */ + __raw_writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE | + ATMEL_TC_WAVESEL_UP_AUTO, regs + ATMEL_TC_REG(2, CMR)); + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); +@@ -161,10 +154,10 @@ static int tc_set_periodic(struct clock_ + */ + tc_clk_enable(d); + +- /* slow clock, count up to RC, then irq and restart */ ++ /* count up to RC, then irq and restart */ + __raw_writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, + regs + ATMEL_TC_REG(2, CMR)); +- __raw_writel((32768 + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); ++ __raw_writel((tcd->freq + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); + + /* Enable clock and interrupts on RC compare */ + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); +@@ -191,7 +184,11 @@ static struct tc_clkevt_device clkevt = + .features = CLOCK_EVT_FEAT_PERIODIC | + CLOCK_EVT_FEAT_ONESHOT, + /* Should be lower than at91rm9200's system timer */ ++#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK + .rating = 125, ++#else ++ .rating = 200, ++#endif + .set_next_event = tc_next_event, + .set_state_shutdown = tc_shutdown_clk_off, + .set_state_periodic = tc_set_periodic, +@@ -213,8 +210,9 @@ static irqreturn_t ch2_irq(int irq, void + return IRQ_NONE; + } + +-static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx) ++static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx) + { ++ unsigned divisor = atmel_tc_divisors[divisor_idx]; + int ret; + struct clk *t2_clk = tc->clk[2]; + int irq = tc->irq[2]; +@@ -235,7 +233,11 @@ static int __init setup_clkevents(struct + clkevt.regs = tc->regs; + clkevt.clk = t2_clk; + +- timer_clock = clk32k_divisor_idx; ++ timer_clock = divisor_idx; ++ if (!divisor) ++ clkevt.freq = 32768; ++ else ++ clkevt.freq = clk_get_rate(t2_clk) / divisor; + + clkevt.clkevt.cpumask = cpumask_of(0); + +@@ -246,7 +248,7 @@ static int __init setup_clkevents(struct + return ret; + } + +- clockevents_config_and_register(&clkevt.clkevt, 32768, 1, 0xffff); ++ clockevents_config_and_register(&clkevt.clkevt, clkevt.freq, 1, 0xffff); + + return ret; + } +@@ -383,7 +385,11 @@ static int __init tcb_clksrc_init(void) + goto err_disable_t1; + + /* channel 2: periodic and oneshot timer support */ ++#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK + ret = setup_clkevents(tc, clk32k_divisor_idx); ++#else ++ ret = setup_clkevents(tc, best_divisor_idx); ++#endif + if (ret) + goto err_unregister_clksrc; + +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -69,8 +69,7 @@ config ATMEL_TCB_CLKSRC + are combined to make a single 32-bit timer. + + When GENERIC_CLOCKEVENTS is defined, the third timer channel +- may be used as a clock event device supporting oneshot mode +- (delays of up to two seconds) based on the 32 KiHz clock. ++ may be used as a clock event device supporting oneshot mode. + + config ATMEL_TCB_CLKSRC_BLOCK + int +@@ -84,6 +83,15 @@ config ATMEL_TCB_CLKSRC_BLOCK + TC can be used for other purposes, such as PWM generation and + interval timing. + ++config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK ++ bool "TC Block use 32 KiHz clock" ++ depends on ATMEL_TCB_CLKSRC ++ default y ++ help ++ Select this to use 32 KiHz base clock rate as TC block clock ++ source for clock events. ++ ++ + config DUMMY_IRQ + tristate "Dummy IRQ handler" + default n diff --git a/patches/features/all/rt/completion-use-simple-wait-queues.patch b/patches/features/all/rt/completion-use-simple-wait-queues.patch new file mode 100644 index 00000000000..d5228b1718c --- /dev/null +++ b/patches/features/all/rt/completion-use-simple-wait-queues.patch @@ -0,0 +1,348 @@ +Subject: completion: Use simple wait queues +From: Thomas Gleixner +Date: Fri, 11 Jan 2013 11:23:51 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Completions have no long lasting callbacks and therefor do not need +the complex waitqueue variant. Use simple waitqueues which reduces the +contention on the waitqueue lock. + +Signed-off-by: Thomas Gleixner +--- + drivers/net/wireless/intersil/orinoco/orinoco_usb.c | 2 - + drivers/usb/gadget/function/f_fs.c | 2 - + drivers/usb/gadget/legacy/inode.c | 4 +- + include/linux/completion.h | 9 ++--- + include/linux/suspend.h | 6 +++ + include/linux/swait.h | 1 + include/linux/uprobes.h | 1 + kernel/power/hibernate.c | 7 ++++ + kernel/power/suspend.c | 5 +++ + kernel/sched/completion.c | 32 ++++++++++---------- + kernel/sched/core.c | 10 +++++- + kernel/sched/swait.c | 20 ++++++++++++ + 12 files changed, 72 insertions(+), 27 deletions(-) + +--- a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c ++++ b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c +@@ -697,7 +697,7 @@ static void ezusb_req_ctx_wait(struct ez + while (!ctx->done.done && msecs--) + udelay(1000); + } else { +- wait_event_interruptible(ctx->done.wait, ++ swait_event_interruptible(ctx->done.wait, + ctx->done.done); + } + break; +--- a/drivers/usb/gadget/function/f_fs.c ++++ b/drivers/usb/gadget/function/f_fs.c +@@ -1593,7 +1593,7 @@ static void ffs_data_put(struct ffs_data + pr_info("%s(): freeing\n", __func__); + ffs_data_clear(ffs); + BUG_ON(waitqueue_active(&ffs->ev.waitq) || +- waitqueue_active(&ffs->ep0req_completion.wait)); ++ swait_active(&ffs->ep0req_completion.wait)); + kfree(ffs->dev_name); + kfree(ffs); + } +--- a/drivers/usb/gadget/legacy/inode.c ++++ b/drivers/usb/gadget/legacy/inode.c +@@ -346,7 +346,7 @@ ep_io (struct ep_data *epdata, void *buf + spin_unlock_irq (&epdata->dev->lock); + + if (likely (value == 0)) { +- value = wait_event_interruptible (done.wait, done.done); ++ value = swait_event_interruptible (done.wait, done.done); + if (value != 0) { + spin_lock_irq (&epdata->dev->lock); + if (likely (epdata->ep != NULL)) { +@@ -355,7 +355,7 @@ ep_io (struct ep_data *epdata, void *buf + usb_ep_dequeue (epdata->ep, epdata->req); + spin_unlock_irq (&epdata->dev->lock); + +- wait_event (done.wait, done.done); ++ swait_event (done.wait, done.done); + if (epdata->status == -ECONNRESET) + epdata->status = -EINTR; + } else { +--- a/include/linux/completion.h ++++ b/include/linux/completion.h +@@ -7,8 +7,7 @@ + * Atomic wait-for-completion handler data structures. + * See kernel/sched/completion.c for details. + */ +- +-#include ++#include + + /* + * struct completion - structure used to maintain state for a "completion" +@@ -24,11 +23,11 @@ + */ + struct completion { + unsigned int done; +- wait_queue_head_t wait; ++ struct swait_queue_head wait; + }; + + #define COMPLETION_INITIALIZER(work) \ +- { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) } ++ { 0, __SWAIT_QUEUE_HEAD_INITIALIZER((work).wait) } + + #define COMPLETION_INITIALIZER_ONSTACK(work) \ + ({ init_completion(&work); work; }) +@@ -73,7 +72,7 @@ struct completion { + static inline void init_completion(struct completion *x) + { + x->done = 0; +- init_waitqueue_head(&x->wait); ++ init_swait_queue_head(&x->wait); + } + + /** +--- a/include/linux/suspend.h ++++ b/include/linux/suspend.h +@@ -193,6 +193,12 @@ struct platform_freeze_ops { + void (*end)(void); + }; + ++#if defined(CONFIG_SUSPEND) || defined(CONFIG_HIBERNATION) ++extern bool pm_in_action; ++#else ++# define pm_in_action false ++#endif ++ + #ifdef CONFIG_SUSPEND + /** + * suspend_set_ops - set platform dependent suspend operations +--- a/include/linux/swait.h ++++ b/include/linux/swait.h +@@ -87,6 +87,7 @@ static inline int swait_active(struct sw + extern void swake_up(struct swait_queue_head *q); + extern void swake_up_all(struct swait_queue_head *q); + extern void swake_up_locked(struct swait_queue_head *q); ++extern void swake_up_all_locked(struct swait_queue_head *q); + + extern void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait); + extern void prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait, int state); +--- a/include/linux/uprobes.h ++++ b/include/linux/uprobes.h +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + struct vm_area_struct; + struct mm_struct; +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -683,6 +683,10 @@ static int load_image_and_restore(void) + return error; + } + ++#ifndef CONFIG_SUSPEND ++bool pm_in_action; ++#endif ++ + /** + * hibernate - Carry out system hibernation, including saving the image. + */ +@@ -696,6 +700,8 @@ int hibernate(void) + return -EPERM; + } + ++ pm_in_action = true; ++ + lock_system_sleep(); + /* The snapshot device should not be opened while we're running */ + if (!atomic_add_unless(&snapshot_device_available, -1, 0)) { +@@ -773,6 +779,7 @@ int hibernate(void) + atomic_inc(&snapshot_device_available); + Unlock: + unlock_system_sleep(); ++ pm_in_action = false; + return error; + } + +--- a/kernel/power/suspend.c ++++ b/kernel/power/suspend.c +@@ -531,6 +531,8 @@ static int enter_state(suspend_state_t s + return error; + } + ++bool pm_in_action; ++ + /** + * pm_suspend - Externally visible function for suspending the system. + * @state: System sleep state to enter. +@@ -545,6 +547,8 @@ int pm_suspend(suspend_state_t state) + if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX) + return -EINVAL; + ++ pm_in_action = true; ++ + error = enter_state(state); + if (error) { + suspend_stats.fail++; +@@ -552,6 +556,7 @@ int pm_suspend(suspend_state_t state) + } else { + suspend_stats.success++; + } ++ pm_in_action = false; + return error; + } + EXPORT_SYMBOL(pm_suspend); +--- a/kernel/sched/completion.c ++++ b/kernel/sched/completion.c +@@ -30,10 +30,10 @@ void complete(struct completion *x) + { + unsigned long flags; + +- spin_lock_irqsave(&x->wait.lock, flags); ++ raw_spin_lock_irqsave(&x->wait.lock, flags); + x->done++; +- __wake_up_locked(&x->wait, TASK_NORMAL, 1); +- spin_unlock_irqrestore(&x->wait.lock, flags); ++ swake_up_locked(&x->wait); ++ raw_spin_unlock_irqrestore(&x->wait.lock, flags); + } + EXPORT_SYMBOL(complete); + +@@ -50,10 +50,10 @@ void complete_all(struct completion *x) + { + unsigned long flags; + +- spin_lock_irqsave(&x->wait.lock, flags); ++ raw_spin_lock_irqsave(&x->wait.lock, flags); + x->done += UINT_MAX/2; +- __wake_up_locked(&x->wait, TASK_NORMAL, 0); +- spin_unlock_irqrestore(&x->wait.lock, flags); ++ swake_up_all_locked(&x->wait); ++ raw_spin_unlock_irqrestore(&x->wait.lock, flags); + } + EXPORT_SYMBOL(complete_all); + +@@ -62,20 +62,20 @@ do_wait_for_common(struct completion *x, + long (*action)(long), long timeout, int state) + { + if (!x->done) { +- DECLARE_WAITQUEUE(wait, current); ++ DECLARE_SWAITQUEUE(wait); + +- __add_wait_queue_tail_exclusive(&x->wait, &wait); ++ __prepare_to_swait(&x->wait, &wait); + do { + if (signal_pending_state(state, current)) { + timeout = -ERESTARTSYS; + break; + } + __set_current_state(state); +- spin_unlock_irq(&x->wait.lock); ++ raw_spin_unlock_irq(&x->wait.lock); + timeout = action(timeout); +- spin_lock_irq(&x->wait.lock); ++ raw_spin_lock_irq(&x->wait.lock); + } while (!x->done && timeout); +- __remove_wait_queue(&x->wait, &wait); ++ __finish_swait(&x->wait, &wait); + if (!x->done) + return timeout; + } +@@ -89,9 +89,9 @@ static inline long __sched + { + might_sleep(); + +- spin_lock_irq(&x->wait.lock); ++ raw_spin_lock_irq(&x->wait.lock); + timeout = do_wait_for_common(x, action, timeout, state); +- spin_unlock_irq(&x->wait.lock); ++ raw_spin_unlock_irq(&x->wait.lock); + return timeout; + } + +@@ -277,12 +277,12 @@ bool try_wait_for_completion(struct comp + if (!READ_ONCE(x->done)) + return 0; + +- spin_lock_irqsave(&x->wait.lock, flags); ++ raw_spin_lock_irqsave(&x->wait.lock, flags); + if (!x->done) + ret = 0; + else + x->done--; +- spin_unlock_irqrestore(&x->wait.lock, flags); ++ raw_spin_unlock_irqrestore(&x->wait.lock, flags); + return ret; + } + EXPORT_SYMBOL(try_wait_for_completion); +@@ -311,7 +311,7 @@ bool completion_done(struct completion * + * after it's acquired the lock. + */ + smp_rmb(); +- spin_unlock_wait(&x->wait.lock); ++ raw_spin_unlock_wait(&x->wait.lock); + return true; + } + EXPORT_SYMBOL(completion_done); +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3323,7 +3323,10 @@ void migrate_disable(void) + } + + #ifdef CONFIG_SCHED_DEBUG +- WARN_ON_ONCE(p->migrate_disable_atomic); ++ if (unlikely(p->migrate_disable_atomic)) { ++ tracing_off(); ++ WARN_ON_ONCE(1); ++ } + #endif + + if (p->migrate_disable) { +@@ -3350,7 +3353,10 @@ void migrate_enable(void) + } + + #ifdef CONFIG_SCHED_DEBUG +- WARN_ON_ONCE(p->migrate_disable_atomic); ++ if (unlikely(p->migrate_disable_atomic)) { ++ tracing_off(); ++ WARN_ON_ONCE(1); ++ } + #endif + WARN_ON_ONCE(p->migrate_disable <= 0); + +--- a/kernel/sched/swait.c ++++ b/kernel/sched/swait.c +@@ -1,5 +1,6 @@ + #include + #include ++#include + + void __init_swait_queue_head(struct swait_queue_head *q, const char *name, + struct lock_class_key *key) +@@ -29,6 +30,25 @@ void swake_up_locked(struct swait_queue_ + } + EXPORT_SYMBOL(swake_up_locked); + ++void swake_up_all_locked(struct swait_queue_head *q) ++{ ++ struct swait_queue *curr; ++ int wakes = 0; ++ ++ while (!list_empty(&q->task_list)) { ++ ++ curr = list_first_entry(&q->task_list, typeof(*curr), ++ task_list); ++ wake_up_process(curr->task); ++ list_del_init(&curr->task_list); ++ wakes++; ++ } ++ if (pm_in_action) ++ return; ++ WARN(wakes > 2, "complete_all() with %d waiters\n", wakes); ++} ++EXPORT_SYMBOL(swake_up_all_locked); ++ + void swake_up(struct swait_queue_head *q) + { + unsigned long flags; diff --git a/patches/features/all/rt/cond-resched-lock-rt-tweak.patch b/patches/features/all/rt/cond-resched-lock-rt-tweak.patch new file mode 100644 index 00000000000..44a9fd5873a --- /dev/null +++ b/patches/features/all/rt/cond-resched-lock-rt-tweak.patch @@ -0,0 +1,27 @@ +Subject: sched: Use the proper LOCK_OFFSET for cond_resched() +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 22:51:33 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT does not increment preempt count when a 'sleeping' spinlock is +locked. Update PREEMPT_LOCK_OFFSET for that case. + +Signed-off-by: Thomas Gleixner +--- + include/linux/preempt.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -91,7 +91,11 @@ + /* + * The preempt_count offset after spin_lock() + */ ++#if !defined(CONFIG_PREEMPT_RT_FULL) + #define PREEMPT_LOCK_OFFSET PREEMPT_DISABLE_OFFSET ++#else ++#define PREEMPT_LOCK_OFFSET 0 ++#endif + + /* + * The preempt_count offset needed for things like: diff --git a/patches/features/all/rt/cond-resched-softirq-rt.patch b/patches/features/all/rt/cond-resched-softirq-rt.patch new file mode 100644 index 00000000000..430bce707cf --- /dev/null +++ b/patches/features/all/rt/cond-resched-softirq-rt.patch @@ -0,0 +1,53 @@ +Subject: sched: Take RT softirq semantics into account in cond_resched() +From: Thomas Gleixner +Date: Thu, 14 Jul 2011 09:56:44 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in +the preemption counter which leads to the BUG_ON() statement in +__cond_resched_softirq(). As for -RT it is enough to perform a "normal" +schedule. + +Signed-off-by: Thomas Gleixner +--- + include/linux/sched.h | 4 ++++ + kernel/sched/core.c | 2 ++ + 2 files changed, 6 insertions(+) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -3366,12 +3366,16 @@ extern int __cond_resched_lock(spinlock_ + __cond_resched_lock(lock); \ + }) + ++#ifndef CONFIG_PREEMPT_RT_FULL + extern int __cond_resched_softirq(void); + + #define cond_resched_softirq() ({ \ + ___might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET); \ + __cond_resched_softirq(); \ + }) ++#else ++# define cond_resched_softirq() cond_resched() ++#endif + + static inline void cond_resched_rcu(void) + { +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -5050,6 +5050,7 @@ int __cond_resched_lock(spinlock_t *lock + } + EXPORT_SYMBOL(__cond_resched_lock); + ++#ifndef CONFIG_PREEMPT_RT_FULL + int __sched __cond_resched_softirq(void) + { + BUG_ON(!in_softirq()); +@@ -5063,6 +5064,7 @@ int __sched __cond_resched_softirq(void) + return 0; + } + EXPORT_SYMBOL(__cond_resched_softirq); ++#endif + + /** + * yield - yield the current processor to other threads. diff --git a/patches/features/all/rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/patches/features/all/rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch new file mode 100644 index 00000000000..310f6c50752 --- /dev/null +++ b/patches/features/all/rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -0,0 +1,68 @@ +From: Mike Galbraith +Date: Sun, 16 Oct 2016 05:11:54 +0200 +Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock + on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 +|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep +|Preemption disabled at:[] proc_exit_connector+0xbb/0x140 +| +|CPU: 4 PID: 31807 Comm: sleep Tainted: G W E 4.8.0-rt11-rt #106 +|Call Trace: +| [] dump_stack+0x65/0x88 +| [] ___might_sleep+0xf5/0x180 +| [] __rt_spin_lock+0x20/0x50 +| [] rt_read_lock+0x28/0x30 +| [] netlink_broadcast_filtered+0x49/0x3f0 +| [] ? __kmalloc_reserve.isra.33+0x31/0x90 +| [] netlink_broadcast+0x1d/0x20 +| [] cn_netlink_send_mult+0x19a/0x1f0 +| [] cn_netlink_send+0x1b/0x20 +| [] proc_exit_connector+0xf8/0x140 +| [] do_exit+0x5d1/0xba0 +| [] do_group_exit+0x4c/0xc0 +| [] SyS_exit_group+0x14/0x20 +| [] entry_SYSCALL_64_fastpath+0x1a/0xa4 + +Since ab8ed951080e ("connector: fix out-of-order cn_proc netlink message +delivery") which is v4.7-rc6. + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/connector/cn_proc.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/connector/cn_proc.c ++++ b/drivers/connector/cn_proc.c +@@ -32,6 +32,7 @@ + #include + + #include ++#include + + /* + * Size of a cn_msg followed by a proc_event structure. Since the +@@ -54,10 +55,11 @@ static struct cb_id cn_proc_event_id = { + + /* proc_event_counts is used as the sequence number of the netlink message */ + static DEFINE_PER_CPU(__u32, proc_event_counts) = { 0 }; ++static DEFINE_LOCAL_IRQ_LOCK(send_msg_lock); + + static inline void send_msg(struct cn_msg *msg) + { +- preempt_disable(); ++ local_lock(send_msg_lock); + + msg->seq = __this_cpu_inc_return(proc_event_counts) - 1; + ((struct proc_event *)msg->data)->cpu = smp_processor_id(); +@@ -70,7 +72,7 @@ static inline void send_msg(struct cn_ms + */ + cn_netlink_send(msg, 0, CN_IDX_PROC, GFP_NOWAIT); + +- preempt_enable(); ++ local_unlock(send_msg_lock); + } + + void proc_fork_connector(struct task_struct *task) diff --git a/patches/features/all/rt/cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch b/patches/features/all/rt/cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch new file mode 100644 index 00000000000..8b78c1b29c2 --- /dev/null +++ b/patches/features/all/rt/cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch @@ -0,0 +1,56 @@ +From: Steven Rostedt +Date: Thu, 5 Dec 2013 09:16:52 -0500 +Subject: cpu hotplug: Document why PREEMPT_RT uses a spinlock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The patch: + + cpu: Make hotplug.lock a "sleeping" spinlock on RT + + Tasks can block on hotplug.lock in pin_current_cpu(), but their + state might be != RUNNING. So the mutex wakeup will set the state + unconditionally to RUNNING. That might cause spurious unexpected + wakeups. We could provide a state preserving mutex_lock() function, + but this is semantically backwards. So instead we convert the + hotplug.lock() to a spinlock for RT, which has the state preserving + semantics already. + +Fixed a bug where the hotplug lock on PREEMPT_RT can be called after a +task set its state to TASK_UNINTERRUPTIBLE and before it called +schedule. If the hotplug_lock used a mutex, and there was contention, +the current task's state would be turned to TASK_RUNNABLE and the +schedule call will not sleep. This caused unexpected results. + +Although the patch had a description of the change, the code had no +comments about it. This causes confusion to those that review the code, +and as PREEMPT_RT is held in a quilt queue and not git, it's not as easy +to see why a change was made. Even if it was in git, the code should +still have a comment for something as subtle as this. + +Document the rational for using a spinlock on PREEMPT_RT in the hotplug +lock code. + +Reported-by: Nicholas Mc Guire +Signed-off-by: Steven Rostedt +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/cpu.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -260,6 +260,14 @@ struct hotplug_pcp { + int grab_lock; + struct completion synced; + #ifdef CONFIG_PREEMPT_RT_FULL ++ /* ++ * Note, on PREEMPT_RT, the hotplug lock must save the state of ++ * the task, otherwise the mutex will cause the task to fail ++ * to sleep when required. (Because it's called from migrate_disable()) ++ * ++ * The spinlock_t on PREEMPT_RT is a mutex that saves the task's ++ * state. ++ */ + spinlock_t lock; + #else + struct mutex mutex; diff --git a/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch b/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch new file mode 100644 index 00000000000..49086f8ae69 --- /dev/null +++ b/patches/features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch @@ -0,0 +1,115 @@ +Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT +From: Steven Rostedt +Date: Fri, 02 Mar 2012 10:36:57 -0500 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Tasks can block on hotplug.lock in pin_current_cpu(), but their state +might be != RUNNING. So the mutex wakeup will set the state +unconditionally to RUNNING. That might cause spurious unexpected +wakeups. We could provide a state preserving mutex_lock() function, +but this is semantically backwards. So instead we convert the +hotplug.lock() to a spinlock for RT, which has the state preserving +semantics already. + +Signed-off-by: Steven Rostedt +Cc: Carsten Emde +Cc: John Kacur +Cc: Peter Zijlstra +Cc: Clark Williams + +Link: http://lkml.kernel.org/r/1330702617.25686.265.camel@gandalf.stny.rr.com +Signed-off-by: Thomas Gleixner +--- + kernel/cpu.c | 32 +++++++++++++++++++++++++------- + 1 file changed, 25 insertions(+), 7 deletions(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -210,10 +210,16 @@ static int cpu_hotplug_disabled; + + static struct { + struct task_struct *active_writer; ++ + /* wait queue to wake up the active_writer */ + wait_queue_head_t wq; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ /* Makes the lock keep the task's state */ ++ spinlock_t lock; ++#else + /* verifies that no writer will get active while readers are active */ + struct mutex lock; ++#endif + /* + * Also blocks the new readers during + * an ongoing cpu hotplug operation. +@@ -226,12 +232,24 @@ static struct { + } cpu_hotplug = { + .active_writer = NULL, + .wq = __WAIT_QUEUE_HEAD_INITIALIZER(cpu_hotplug.wq), ++#ifdef CONFIG_PREEMPT_RT_FULL ++ .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), ++#else + .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), ++#endif + #ifdef CONFIG_DEBUG_LOCK_ALLOC + .dep_map = STATIC_LOCKDEP_MAP_INIT("cpu_hotplug.dep_map", &cpu_hotplug.dep_map), + #endif + }; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define hotplug_lock() rt_spin_lock__no_mg(&cpu_hotplug.lock) ++# define hotplug_unlock() rt_spin_unlock__no_mg(&cpu_hotplug.lock) ++#else ++# define hotplug_lock() mutex_lock(&cpu_hotplug.lock) ++# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock) ++#endif ++ + /* Lockdep annotations for get/put_online_cpus() and cpu_hotplug_begin/end() */ + #define cpuhp_lock_acquire_read() lock_map_acquire_read(&cpu_hotplug.dep_map) + #define cpuhp_lock_acquire_tryread() \ +@@ -268,8 +286,8 @@ void pin_current_cpu(void) + return; + } + preempt_enable(); +- mutex_lock(&cpu_hotplug.lock); +- mutex_unlock(&cpu_hotplug.lock); ++ hotplug_lock(); ++ hotplug_unlock(); + preempt_disable(); + goto retry; + } +@@ -342,9 +360,9 @@ void get_online_cpus(void) + if (cpu_hotplug.active_writer == current) + return; + cpuhp_lock_acquire_read(); +- mutex_lock(&cpu_hotplug.lock); ++ hotplug_lock(); + atomic_inc(&cpu_hotplug.refcount); +- mutex_unlock(&cpu_hotplug.lock); ++ hotplug_unlock(); + } + EXPORT_SYMBOL_GPL(get_online_cpus); + +@@ -397,11 +415,11 @@ void cpu_hotplug_begin(void) + cpuhp_lock_acquire(); + + for (;;) { +- mutex_lock(&cpu_hotplug.lock); ++ hotplug_lock(); + prepare_to_wait(&cpu_hotplug.wq, &wait, TASK_UNINTERRUPTIBLE); + if (likely(!atomic_read(&cpu_hotplug.refcount))) + break; +- mutex_unlock(&cpu_hotplug.lock); ++ hotplug_unlock(); + schedule(); + } + finish_wait(&cpu_hotplug.wq, &wait); +@@ -410,7 +428,7 @@ void cpu_hotplug_begin(void) + void cpu_hotplug_done(void) + { + cpu_hotplug.active_writer = NULL; +- mutex_unlock(&cpu_hotplug.lock); ++ hotplug_unlock(); + cpuhp_lock_release(); + } + diff --git a/patches/features/all/rt/cpu-rt-rework-cpu-down.patch b/patches/features/all/rt/cpu-rt-rework-cpu-down.patch new file mode 100644 index 00000000000..2ec7d159f13 --- /dev/null +++ b/patches/features/all/rt/cpu-rt-rework-cpu-down.patch @@ -0,0 +1,526 @@ +From: Steven Rostedt +Date: Mon, 16 Jul 2012 08:07:43 +0000 +Subject: cpu/rt: Rework cpu down for PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Bringing a CPU down is a pain with the PREEMPT_RT kernel because +tasks can be preempted in many more places than in non-RT. In +order to handle per_cpu variables, tasks may be pinned to a CPU +for a while, and even sleep. But these tasks need to be off the CPU +if that CPU is going down. + +Several synchronization methods have been tried, but when stressed +they failed. This is a new approach. + +A sync_tsk thread is still created and tasks may still block on a +lock when the CPU is going down, but how that works is a bit different. +When cpu_down() starts, it will create the sync_tsk and wait on it +to inform that current tasks that are pinned on the CPU are no longer +pinned. But new tasks that are about to be pinned will still be allowed +to do so at this time. + +Then the notifiers are called. Several notifiers will bring down tasks +that will enter these locations. Some of these tasks will take locks +of other tasks that are on the CPU. If we don't let those other tasks +continue, but make them block until CPU down is done, the tasks that +the notifiers are waiting on will never complete as they are waiting +for the locks held by the tasks that are blocked. + +Thus we still let the task pin the CPU until the notifiers are done. +After the notifiers run, we then make new tasks entering the pinned +CPU sections grab a mutex and wait. This mutex is now a per CPU mutex +in the hotplug_pcp descriptor. + +To help things along, a new function in the scheduler code is created +called migrate_me(). This function will try to migrate the current task +off the CPU this is going down if possible. When the sync_tsk is created, +all tasks will then try to migrate off the CPU going down. There are +several cases that this wont work, but it helps in most cases. + +After the notifiers are called and if a task can't migrate off but enters +the pin CPU sections, it will be forced to wait on the hotplug_pcp mutex +until the CPU down is complete. Then the scheduler will force the migration +anyway. + +Also, I found that THREAD_BOUND need to also be accounted for in the +pinned CPU, and the migrate_disable no longer treats them special. +This helps fix issues with ksoftirqd and workqueue that unbind on CPU down. + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner + +--- + include/linux/sched.h | 7 + + kernel/cpu.c | 236 +++++++++++++++++++++++++++++++++++++++++--------- + kernel/sched/core.c | 78 ++++++++++++++++ + 3 files changed, 280 insertions(+), 41 deletions(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -2473,6 +2473,10 @@ extern void do_set_cpus_allowed(struct t + + extern int set_cpus_allowed_ptr(struct task_struct *p, + const struct cpumask *new_mask); ++int migrate_me(void); ++void tell_sched_cpu_down_begin(int cpu); ++void tell_sched_cpu_down_done(int cpu); ++ + #else + static inline void do_set_cpus_allowed(struct task_struct *p, + const struct cpumask *new_mask) +@@ -2485,6 +2489,9 @@ static inline int set_cpus_allowed_ptr(s + return -EINVAL; + return 0; + } ++static inline int migrate_me(void) { return 0; } ++static inline void tell_sched_cpu_down_begin(int cpu) { } ++static inline void tell_sched_cpu_down_done(int cpu) { } + #endif + + #ifdef CONFIG_NO_HZ_COMMON +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -210,16 +210,10 @@ static int cpu_hotplug_disabled; + + static struct { + struct task_struct *active_writer; +- + /* wait queue to wake up the active_writer */ + wait_queue_head_t wq; +-#ifdef CONFIG_PREEMPT_RT_FULL +- /* Makes the lock keep the task's state */ +- spinlock_t lock; +-#else + /* verifies that no writer will get active while readers are active */ + struct mutex lock; +-#endif + /* + * Also blocks the new readers during + * an ongoing cpu hotplug operation. +@@ -232,24 +226,12 @@ static struct { + } cpu_hotplug = { + .active_writer = NULL, + .wq = __WAIT_QUEUE_HEAD_INITIALIZER(cpu_hotplug.wq), +-#ifdef CONFIG_PREEMPT_RT_FULL +- .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), +-#else + .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), +-#endif + #ifdef CONFIG_DEBUG_LOCK_ALLOC + .dep_map = STATIC_LOCKDEP_MAP_INIT("cpu_hotplug.dep_map", &cpu_hotplug.dep_map), + #endif + }; + +-#ifdef CONFIG_PREEMPT_RT_FULL +-# define hotplug_lock() rt_spin_lock__no_mg(&cpu_hotplug.lock) +-# define hotplug_unlock() rt_spin_unlock__no_mg(&cpu_hotplug.lock) +-#else +-# define hotplug_lock() mutex_lock(&cpu_hotplug.lock) +-# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock) +-#endif +- + /* Lockdep annotations for get/put_online_cpus() and cpu_hotplug_begin/end() */ + #define cpuhp_lock_acquire_read() lock_map_acquire_read(&cpu_hotplug.dep_map) + #define cpuhp_lock_acquire_tryread() \ +@@ -257,12 +239,42 @@ static struct { + #define cpuhp_lock_acquire() lock_map_acquire(&cpu_hotplug.dep_map) + #define cpuhp_lock_release() lock_map_release(&cpu_hotplug.dep_map) + ++/** ++ * hotplug_pcp - per cpu hotplug descriptor ++ * @unplug: set when pin_current_cpu() needs to sync tasks ++ * @sync_tsk: the task that waits for tasks to finish pinned sections ++ * @refcount: counter of tasks in pinned sections ++ * @grab_lock: set when the tasks entering pinned sections should wait ++ * @synced: notifier for @sync_tsk to tell cpu_down it's finished ++ * @mutex: the mutex to make tasks wait (used when @grab_lock is true) ++ * @mutex_init: zero if the mutex hasn't been initialized yet. ++ * ++ * Although @unplug and @sync_tsk may point to the same task, the @unplug ++ * is used as a flag and still exists after @sync_tsk has exited and ++ * @sync_tsk set to NULL. ++ */ + struct hotplug_pcp { + struct task_struct *unplug; ++ struct task_struct *sync_tsk; + int refcount; ++ int grab_lock; + struct completion synced; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ spinlock_t lock; ++#else ++ struct mutex mutex; ++#endif ++ int mutex_init; + }; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define hotplug_lock(hp) rt_spin_lock__no_mg(&(hp)->lock) ++# define hotplug_unlock(hp) rt_spin_unlock__no_mg(&(hp)->lock) ++#else ++# define hotplug_lock(hp) mutex_lock(&(hp)->mutex) ++# define hotplug_unlock(hp) mutex_unlock(&(hp)->mutex) ++#endif ++ + static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp); + + /** +@@ -276,18 +288,39 @@ static DEFINE_PER_CPU(struct hotplug_pcp + void pin_current_cpu(void) + { + struct hotplug_pcp *hp; ++ int force = 0; + + retry: + hp = this_cpu_ptr(&hotplug_pcp); + +- if (!hp->unplug || hp->refcount || preempt_count() > 1 || ++ if (!hp->unplug || hp->refcount || force || preempt_count() > 1 || + hp->unplug == current) { + hp->refcount++; + return; + } +- preempt_enable(); +- hotplug_lock(); +- hotplug_unlock(); ++ if (hp->grab_lock) { ++ preempt_enable(); ++ hotplug_lock(hp); ++ hotplug_unlock(hp); ++ } else { ++ preempt_enable(); ++ /* ++ * Try to push this task off of this CPU. ++ */ ++ if (!migrate_me()) { ++ preempt_disable(); ++ hp = this_cpu_ptr(&hotplug_pcp); ++ if (!hp->grab_lock) { ++ /* ++ * Just let it continue it's already pinned ++ * or about to sleep. ++ */ ++ force = 1; ++ goto retry; ++ } ++ preempt_enable(); ++ } ++ } + preempt_disable(); + goto retry; + } +@@ -308,26 +341,84 @@ void unpin_current_cpu(void) + wake_up_process(hp->unplug); + } + +-/* +- * FIXME: Is this really correct under all circumstances ? +- */ ++static void wait_for_pinned_cpus(struct hotplug_pcp *hp) ++{ ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ while (hp->refcount) { ++ schedule_preempt_disabled(); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++} ++ + static int sync_unplug_thread(void *data) + { + struct hotplug_pcp *hp = data; + + preempt_disable(); + hp->unplug = current; ++ wait_for_pinned_cpus(hp); ++ ++ /* ++ * This thread will synchronize the cpu_down() with threads ++ * that have pinned the CPU. When the pinned CPU count reaches ++ * zero, we inform the cpu_down code to continue to the next step. ++ */ + set_current_state(TASK_UNINTERRUPTIBLE); +- while (hp->refcount) { +- schedule_preempt_disabled(); ++ preempt_enable(); ++ complete(&hp->synced); ++ ++ /* ++ * If all succeeds, the next step will need tasks to wait till ++ * the CPU is offline before continuing. To do this, the grab_lock ++ * is set and tasks going into pin_current_cpu() will block on the ++ * mutex. But we still need to wait for those that are already in ++ * pinned CPU sections. If the cpu_down() failed, the kthread_should_stop() ++ * will kick this thread out. ++ */ ++ while (!hp->grab_lock && !kthread_should_stop()) { ++ schedule(); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++ ++ /* Make sure grab_lock is seen before we see a stale completion */ ++ smp_mb(); ++ ++ /* ++ * Now just before cpu_down() enters stop machine, we need to make ++ * sure all tasks that are in pinned CPU sections are out, and new ++ * tasks will now grab the lock, keeping them from entering pinned ++ * CPU sections. ++ */ ++ if (!kthread_should_stop()) { ++ preempt_disable(); ++ wait_for_pinned_cpus(hp); ++ preempt_enable(); ++ complete(&hp->synced); ++ } ++ ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ while (!kthread_should_stop()) { ++ schedule(); + set_current_state(TASK_UNINTERRUPTIBLE); + } + set_current_state(TASK_RUNNING); +- preempt_enable(); +- complete(&hp->synced); ++ ++ /* ++ * Force this thread off this CPU as it's going down and ++ * we don't want any more work on this CPU. ++ */ ++ current->flags &= ~PF_NO_SETAFFINITY; ++ do_set_cpus_allowed(current, cpu_present_mask); ++ migrate_me(); + return 0; + } + ++static void __cpu_unplug_sync(struct hotplug_pcp *hp) ++{ ++ wake_up_process(hp->sync_tsk); ++ wait_for_completion(&hp->synced); ++} ++ + /* + * Start the sync_unplug_thread on the target cpu and wait for it to + * complete. +@@ -335,23 +426,83 @@ static int sync_unplug_thread(void *data + static int cpu_unplug_begin(unsigned int cpu) + { + struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); +- struct task_struct *tsk; ++ int err; ++ ++ /* Protected by cpu_hotplug.lock */ ++ if (!hp->mutex_init) { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ spin_lock_init(&hp->lock); ++#else ++ mutex_init(&hp->mutex); ++#endif ++ hp->mutex_init = 1; ++ } ++ ++ /* Inform the scheduler to migrate tasks off this CPU */ ++ tell_sched_cpu_down_begin(cpu); + + init_completion(&hp->synced); +- tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); +- if (IS_ERR(tsk)) +- return (PTR_ERR(tsk)); +- kthread_bind(tsk, cpu); +- wake_up_process(tsk); +- wait_for_completion(&hp->synced); ++ ++ hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); ++ if (IS_ERR(hp->sync_tsk)) { ++ err = PTR_ERR(hp->sync_tsk); ++ hp->sync_tsk = NULL; ++ return err; ++ } ++ kthread_bind(hp->sync_tsk, cpu); ++ ++ /* ++ * Wait for tasks to get out of the pinned sections, ++ * it's still OK if new tasks enter. Some CPU notifiers will ++ * wait for tasks that are going to enter these sections and ++ * we must not have them block. ++ */ ++ __cpu_unplug_sync(hp); ++ + return 0; + } + ++static void cpu_unplug_sync(unsigned int cpu) ++{ ++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); ++ ++ init_completion(&hp->synced); ++ /* The completion needs to be initialzied before setting grab_lock */ ++ smp_wmb(); ++ ++ /* Grab the mutex before setting grab_lock */ ++ hotplug_lock(hp); ++ hp->grab_lock = 1; ++ ++ /* ++ * The CPU notifiers have been completed. ++ * Wait for tasks to get out of pinned CPU sections and have new ++ * tasks block until the CPU is completely down. ++ */ ++ __cpu_unplug_sync(hp); ++ ++ /* All done with the sync thread */ ++ kthread_stop(hp->sync_tsk); ++ hp->sync_tsk = NULL; ++} ++ + static void cpu_unplug_done(unsigned int cpu) + { + struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); + + hp->unplug = NULL; ++ /* Let all tasks know cpu unplug is finished before cleaning up */ ++ smp_wmb(); ++ ++ if (hp->sync_tsk) ++ kthread_stop(hp->sync_tsk); ++ ++ if (hp->grab_lock) { ++ hotplug_unlock(hp); ++ /* protected by cpu_hotplug.lock */ ++ hp->grab_lock = 0; ++ } ++ tell_sched_cpu_down_done(cpu); + } + + void get_online_cpus(void) +@@ -360,9 +511,9 @@ void get_online_cpus(void) + if (cpu_hotplug.active_writer == current) + return; + cpuhp_lock_acquire_read(); +- hotplug_lock(); ++ mutex_lock(&cpu_hotplug.lock); + atomic_inc(&cpu_hotplug.refcount); +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + } + EXPORT_SYMBOL_GPL(get_online_cpus); + +@@ -415,11 +566,11 @@ void cpu_hotplug_begin(void) + cpuhp_lock_acquire(); + + for (;;) { +- hotplug_lock(); ++ mutex_lock(&cpu_hotplug.lock); + prepare_to_wait(&cpu_hotplug.wq, &wait, TASK_UNINTERRUPTIBLE); + if (likely(!atomic_read(&cpu_hotplug.refcount))) + break; +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + schedule(); + } + finish_wait(&cpu_hotplug.wq, &wait); +@@ -428,7 +579,7 @@ void cpu_hotplug_begin(void) + void cpu_hotplug_done(void) + { + cpu_hotplug.active_writer = NULL; +- hotplug_unlock(); ++ mutex_unlock(&cpu_hotplug.lock); + cpuhp_lock_release(); + } + +@@ -907,6 +1058,9 @@ static int takedown_cpu(unsigned int cpu + kthread_park(per_cpu_ptr(&cpuhp_state, cpu)->thread); + smpboot_park_threads(cpu); + ++ /* Notifiers are done. Don't let any more tasks pin this CPU. */ ++ cpu_unplug_sync(cpu); ++ + /* + * Prevent irq alloc/free while the dying cpu reorganizes the + * interrupt affinities. +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -1140,6 +1140,84 @@ void do_set_cpus_allowed(struct task_str + set_curr_task(rq, p); + } + ++static DEFINE_PER_CPU(struct cpumask, sched_cpumasks); ++static DEFINE_MUTEX(sched_down_mutex); ++static cpumask_t sched_down_cpumask; ++ ++void tell_sched_cpu_down_begin(int cpu) ++{ ++ mutex_lock(&sched_down_mutex); ++ cpumask_set_cpu(cpu, &sched_down_cpumask); ++ mutex_unlock(&sched_down_mutex); ++} ++ ++void tell_sched_cpu_down_done(int cpu) ++{ ++ mutex_lock(&sched_down_mutex); ++ cpumask_clear_cpu(cpu, &sched_down_cpumask); ++ mutex_unlock(&sched_down_mutex); ++} ++ ++/** ++ * migrate_me - try to move the current task off this cpu ++ * ++ * Used by the pin_current_cpu() code to try to get tasks ++ * to move off the current CPU as it is going down. ++ * It will only move the task if the task isn't pinned to ++ * the CPU (with migrate_disable, affinity or NO_SETAFFINITY) ++ * and the task has to be in a RUNNING state. Otherwise the ++ * movement of the task will wake it up (change its state ++ * to running) when the task did not expect it. ++ * ++ * Returns 1 if it succeeded in moving the current task ++ * 0 otherwise. ++ */ ++int migrate_me(void) ++{ ++ struct task_struct *p = current; ++ struct migration_arg arg; ++ struct cpumask *cpumask; ++ struct cpumask *mask; ++ unsigned int dest_cpu; ++ struct rq_flags rf; ++ struct rq *rq; ++ ++ /* ++ * We can not migrate tasks bounded to a CPU or tasks not ++ * running. The movement of the task will wake it up. ++ */ ++ if (p->flags & PF_NO_SETAFFINITY || p->state) ++ return 0; ++ ++ mutex_lock(&sched_down_mutex); ++ rq = task_rq_lock(p, &rf); ++ ++ cpumask = this_cpu_ptr(&sched_cpumasks); ++ mask = &p->cpus_allowed; ++ ++ cpumask_andnot(cpumask, mask, &sched_down_cpumask); ++ ++ if (!cpumask_weight(cpumask)) { ++ /* It's only on this CPU? */ ++ task_rq_unlock(rq, p, &rf); ++ mutex_unlock(&sched_down_mutex); ++ return 0; ++ } ++ ++ dest_cpu = cpumask_any_and(cpu_active_mask, cpumask); ++ ++ arg.task = p; ++ arg.dest_cpu = dest_cpu; ++ ++ task_rq_unlock(rq, p, &rf); ++ ++ stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg); ++ tlb_migrate_finish(p->mm); ++ mutex_unlock(&sched_down_mutex); ++ ++ return 1; ++} ++ + /* + * Change a given task's CPU affinity. Migrate the thread to a + * proper CPU and schedule it away if the CPU it's executing on diff --git a/patches/features/all/rt/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch b/patches/features/all/rt/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch new file mode 100644 index 00000000000..aadc056537e --- /dev/null +++ b/patches/features/all/rt/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch @@ -0,0 +1,107 @@ +From: Steven Rostedt +Date: Tue, 4 Mar 2014 12:28:32 -0500 +Subject: cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We hit another bug that was caused by switching cpu_chill() from +msleep() to hrtimer_nanosleep(). + +This time it is a livelock. The problem is that hrtimer_nanosleep() +calls schedule with the state == TASK_INTERRUPTIBLE. But these means +that if a signal is pending, the scheduler wont schedule, and will +simply change the current task state back to TASK_RUNNING. This +nullifies the whole point of cpu_chill() in the first place. That is, +if a task is spinning on a try_lock() and it preempted the owner of the +lock, if it has a signal pending, it will never give up the CPU to let +the owner of the lock run. + +I made a static function __hrtimer_nanosleep() that takes a fifth +parameter "state", which determines the task state of that the +nanosleep() will be in. The normal hrtimer_nanosleep() will act the +same, but cpu_chill() will call the __hrtimer_nanosleep() directly with +the TASK_UNINTERRUPTIBLE state. + +cpu_chill() only cares that the first sleep happens, and does not care +about the state of the restart schedule (in hrtimer_nanosleep_restart). + + +Reported-by: Ulrich Obergfell +Signed-off-by: Steven Rostedt +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/time/hrtimer.c | 25 ++++++++++++++++++------- + 1 file changed, 18 insertions(+), 7 deletions(-) + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -1649,12 +1649,13 @@ void hrtimer_init_sleeper(struct hrtimer + } + EXPORT_SYMBOL_GPL(hrtimer_init_sleeper); + +-static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode) ++static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode, ++ unsigned long state) + { + hrtimer_init_sleeper(t, current); + + do { +- set_current_state(TASK_INTERRUPTIBLE); ++ set_current_state(state); + hrtimer_start_expires(&t->timer, mode); + + if (likely(t->task)) +@@ -1696,7 +1697,8 @@ long __sched hrtimer_nanosleep_restart(s + HRTIMER_MODE_ABS); + hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires); + +- if (do_nanosleep(&t, HRTIMER_MODE_ABS)) ++ /* cpu_chill() does not care about restart state. */ ++ if (do_nanosleep(&t, HRTIMER_MODE_ABS, TASK_INTERRUPTIBLE)) + goto out; + + rmtp = restart->nanosleep.rmtp; +@@ -1713,8 +1715,10 @@ long __sched hrtimer_nanosleep_restart(s + return ret; + } + +-long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, +- const enum hrtimer_mode mode, const clockid_t clockid) ++static long ++__hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, ++ const enum hrtimer_mode mode, const clockid_t clockid, ++ unsigned long state) + { + struct restart_block *restart; + struct hrtimer_sleeper t; +@@ -1727,7 +1731,7 @@ long hrtimer_nanosleep(struct timespec * + + hrtimer_init_on_stack(&t.timer, clockid, mode); + hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack); +- if (do_nanosleep(&t, mode)) ++ if (do_nanosleep(&t, mode, state)) + goto out; + + /* Absolute timers do not update the rmtp value and restart: */ +@@ -1754,6 +1758,12 @@ long hrtimer_nanosleep(struct timespec * + return ret; + } + ++long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, ++ const enum hrtimer_mode mode, const clockid_t clockid) ++{ ++ return __hrtimer_nanosleep(rqtp, rmtp, mode, clockid, TASK_INTERRUPTIBLE); ++} ++ + SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp, + struct timespec __user *, rmtp) + { +@@ -1780,7 +1790,8 @@ void cpu_chill(void) + unsigned int freeze_flag = current->flags & PF_NOFREEZE; + + current->flags |= PF_NOFREEZE; +- hrtimer_nanosleep(&tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC); ++ __hrtimer_nanosleep(&tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC, ++ TASK_UNINTERRUPTIBLE); + if (!freeze_flag) + current->flags &= ~PF_NOFREEZE; + } diff --git a/patches/features/all/rt/cpu_down_move_migrate_enable_back.patch b/patches/features/all/rt/cpu_down_move_migrate_enable_back.patch new file mode 100644 index 00000000000..504c8964bd5 --- /dev/null +++ b/patches/features/all/rt/cpu_down_move_migrate_enable_back.patch @@ -0,0 +1,53 @@ +From: Tiejun Chen +Subject: cpu_down: move migrate_enable() back +Date: Thu, 7 Nov 2013 10:06:07 +0800 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to +use migrate_enable()/migrate_disable() to replace that combination +of preempt_enable() and preempt_disable(), but actually in +!CONFIG_PREEMPT_RT_FULL case, migrate_enable()/migrate_disable() +are still equal to preempt_enable()/preempt_disable(). So that +followed cpu_hotplug_begin()/cpu_unplug_begin(cpu) would go schedule() +to trigger schedule_debug() like this: + +_cpu_down() + | + + migrate_disable() = preempt_disable() + | + + cpu_hotplug_begin() or cpu_unplug_begin() + | + + schedule() + | + + __schedule() + | + + preempt_disable(); + | + + __schedule_bug() is true! + +So we should move migrate_enable() as the original scheme. + + +Signed-off-by: Tiejun Chen +--- + kernel/cpu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -1195,6 +1195,7 @@ static int __ref _cpu_down(unsigned int + goto restore_cpus; + } + ++ migrate_enable(); + cpu_hotplug_begin(); + ret = cpu_unplug_begin(cpu); + if (ret) { +@@ -1242,7 +1243,6 @@ static int __ref _cpu_down(unsigned int + cpu_unplug_done(cpu); + out_cancel: + cpu_hotplug_done(); +- migrate_enable(); + /* This post dead nonsense must die */ + if (!ret && hasdied) + cpu_notify_nofail(CPU_POST_DEAD, cpu); diff --git a/patches/features/all/rt/cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/patches/features/all/rt/cpufreq-drop-K8-s-driver-from-beeing-selected.patch new file mode 100644 index 00000000000..b97d3f54eca --- /dev/null +++ b/patches/features/all/rt/cpufreq-drop-K8-s-driver-from-beeing-selected.patch @@ -0,0 +1,33 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 9 Apr 2015 15:23:01 +0200 +Subject: cpufreq: drop K8's driver from beeing selected +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Ralf posted a picture of a backtrace from + +| powernowk8_target_fn() -> transition_frequency_fidvid() and then at the +| end: +| 932 policy = cpufreq_cpu_get(smp_processor_id()); +| 933 cpufreq_cpu_put(policy); + +crashing the system on -RT. I assumed that policy was a NULL pointer but +was rulled out. Since Ralf can't do any more investigations on this and +I have no machine with this, I simply switch it off. + +Reported-by: Ralf Mardorf +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/cpufreq/Kconfig.x86 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/cpufreq/Kconfig.x86 ++++ b/drivers/cpufreq/Kconfig.x86 +@@ -124,7 +124,7 @@ config X86_POWERNOW_K7_ACPI + + config X86_POWERNOW_K8 + tristate "AMD Opteron/Athlon64 PowerNow!" +- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ ++ depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ && !PREEMPT_RT_BASE + help + This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors. + Support for K10 and newer processors is now in acpi-cpufreq. diff --git a/patches/features/all/rt/cpumask-disable-offstack-on-rt.patch b/patches/features/all/rt/cpumask-disable-offstack-on-rt.patch new file mode 100644 index 00000000000..fd6e15fff88 --- /dev/null +++ b/patches/features/all/rt/cpumask-disable-offstack-on-rt.patch @@ -0,0 +1,68 @@ +Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT +From: Thomas Gleixner +Date: Wed, 14 Dec 2011 01:03:49 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There are "valid" GFP_ATOMIC allocations such as + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 +|in_atomic(): 1, irqs_disabled(): 0, pid: 2130, name: tar +|1 lock held by tar/2130: +| #0: (&mm->mmap_sem){++++++}, at: [] SyS_brk+0x39/0x190 +|Preemption disabled at:[] flush_tlb_mm_range+0x28/0x350 +| +|CPU: 1 PID: 2130 Comm: tar Tainted: G W 4.8.2-rt2+ #747 +|Call Trace: +| [] dump_stack+0x86/0xca +| [] ___might_sleep+0x14b/0x240 +| [] rt_spin_lock+0x24/0x60 +| [] get_page_from_freelist+0x83a/0x11b0 +| [] __alloc_pages_nodemask+0x15b/0x1190 +| [] alloc_pages_current+0xa1/0x1f0 +| [] new_slab+0x3e5/0x690 +| [] ___slab_alloc+0x495/0x660 +| [] __slab_alloc.isra.79+0x71/0xc0 +| [] __kmalloc_node+0xe7/0x240 +| [] alloc_cpumask_var_node+0x20/0x50 +| [] alloc_cpumask_var+0xe/0x10 +| [] native_send_call_func_ipi+0x21/0x130 +| [] smp_call_function_many+0x22f/0x370 +| [] native_flush_tlb_others+0x1a4/0x3a0 +| [] flush_tlb_mm_range+0x7b/0x350 +| [] tlb_flush_mmu_tlbonly+0x62/0xd0 +| [] tlb_finish_mmu+0x14/0x50 +| [] unmap_region+0xe4/0x110 +| [] do_munmap+0x293/0x470 +| [] SyS_brk+0x13c/0x190 +| [] do_fast_syscall_32+0xb2/0x2f0 +| [] entry_SYSENTER_compat+0x51/0x60 + +which forbid allocations at run-time. + +Signed-off-by: Thomas Gleixner +--- + arch/x86/Kconfig | 2 +- + lib/Kconfig | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -900,7 +900,7 @@ config IOMMU_HELPER + config MAXSMP + bool "Enable Maximum number of SMP Processors and NUMA Nodes" + depends on X86_64 && SMP && DEBUG_KERNEL +- select CPUMASK_OFFSTACK ++ select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL + ---help--- + Enable maximum number of CPUS and NUMA Nodes for this architecture. + If unsure, say N. +--- a/lib/Kconfig ++++ b/lib/Kconfig +@@ -400,6 +400,7 @@ config CHECK_SIGNATURE + + config CPUMASK_OFFSTACK + bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS ++ depends on !PREEMPT_RT_FULL + help + Use dynamic allocation for cpumask_var_t, instead of putting + them on the stack. This is a bit more expensive, but avoids diff --git a/patches/features/all/rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch b/patches/features/all/rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch new file mode 100644 index 00000000000..2a95cfecb93 --- /dev/null +++ b/patches/features/all/rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -0,0 +1,242 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 21 Feb 2014 17:24:04 +0100 +Subject: crypto: Reduce preempt disabled regions, more algos +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Don Estabrook reported +| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() +| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2462 migrate_enable+0x17b/0x200() +| kernel: WARNING: CPU: 3 PID: 865 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() + +and his backtrace showed some crypto functions which looked fine. + +The problem is the following sequence: + +glue_xts_crypt_128bit() +{ + blkcipher_walk_virt(); /* normal migrate_disable() */ + + glue_fpu_begin(); /* get atomic */ + + while (nbytes) { + __glue_xts_crypt_128bit(); + blkcipher_walk_done(); /* with nbytes = 0, migrate_enable() + * while we are atomic */ + }; + glue_fpu_end() /* no longer atomic */ +} + +and this is why the counter get out of sync and the warning is printed. +The other problem is that we are non-preemptible between +glue_fpu_begin() and glue_fpu_end() and the latency grows. To fix this, +I shorten the FPU off region and ensure blkcipher_walk_done() is called +with preemption enabled. This might hurt the performance because we now +enable/disable the FPU state more often but we gain lower latency and +the bug is gone. + + +Reported-by: Don Estabrook +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/crypto/cast5_avx_glue.c | 21 +++++++++------------ + arch/x86/crypto/glue_helper.c | 31 +++++++++++++++---------------- + 2 files changed, 24 insertions(+), 28 deletions(-) + +--- a/arch/x86/crypto/cast5_avx_glue.c ++++ b/arch/x86/crypto/cast5_avx_glue.c +@@ -59,7 +59,7 @@ static inline void cast5_fpu_end(bool fp + static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk, + bool enc) + { +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct cast5_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); + const unsigned int bsize = CAST5_BLOCK_SIZE; + unsigned int nbytes; +@@ -75,7 +75,7 @@ static int ecb_crypt(struct blkcipher_de + u8 *wsrc = walk->src.virt.addr; + u8 *wdst = walk->dst.virt.addr; + +- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes); ++ fpu_enabled = cast5_fpu_begin(false, nbytes); + + /* Process multi-block batch */ + if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) { +@@ -103,10 +103,9 @@ static int ecb_crypt(struct blkcipher_de + } while (nbytes >= bsize); + + done: ++ cast5_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, walk, nbytes); + } +- +- cast5_fpu_end(fpu_enabled); + return err; + } + +@@ -227,7 +226,7 @@ static unsigned int __cbc_decrypt(struct + static int cbc_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, + struct scatterlist *src, unsigned int nbytes) + { +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct blkcipher_walk walk; + int err; + +@@ -236,12 +235,11 @@ static int cbc_decrypt(struct blkcipher_ + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + + while ((nbytes = walk.nbytes)) { +- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes); ++ fpu_enabled = cast5_fpu_begin(false, nbytes); + nbytes = __cbc_decrypt(desc, &walk); ++ cast5_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, &walk, nbytes); + } +- +- cast5_fpu_end(fpu_enabled); + return err; + } + +@@ -311,7 +309,7 @@ static unsigned int __ctr_crypt(struct b + static int ctr_crypt(struct blkcipher_desc *desc, struct scatterlist *dst, + struct scatterlist *src, unsigned int nbytes) + { +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct blkcipher_walk walk; + int err; + +@@ -320,13 +318,12 @@ static int ctr_crypt(struct blkcipher_de + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + + while ((nbytes = walk.nbytes) >= CAST5_BLOCK_SIZE) { +- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes); ++ fpu_enabled = cast5_fpu_begin(false, nbytes); + nbytes = __ctr_crypt(desc, &walk); ++ cast5_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, &walk, nbytes); + } + +- cast5_fpu_end(fpu_enabled); +- + if (walk.nbytes) { + ctr_crypt_final(desc, &walk); + err = blkcipher_walk_done(desc, &walk, 0); +--- a/arch/x86/crypto/glue_helper.c ++++ b/arch/x86/crypto/glue_helper.c +@@ -39,7 +39,7 @@ static int __glue_ecb_crypt_128bit(const + void *ctx = crypto_blkcipher_ctx(desc->tfm); + const unsigned int bsize = 128 / 8; + unsigned int nbytes, i, func_bytes; +- bool fpu_enabled = false; ++ bool fpu_enabled; + int err; + + err = blkcipher_walk_virt(desc, walk); +@@ -49,7 +49,7 @@ static int __glue_ecb_crypt_128bit(const + u8 *wdst = walk->dst.virt.addr; + + fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit, +- desc, fpu_enabled, nbytes); ++ desc, false, nbytes); + + for (i = 0; i < gctx->num_funcs; i++) { + func_bytes = bsize * gctx->funcs[i].num_blocks; +@@ -71,10 +71,10 @@ static int __glue_ecb_crypt_128bit(const + } + + done: ++ glue_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, walk, nbytes); + } + +- glue_fpu_end(fpu_enabled); + return err; + } + +@@ -194,7 +194,7 @@ int glue_cbc_decrypt_128bit(const struct + struct scatterlist *src, unsigned int nbytes) + { + const unsigned int bsize = 128 / 8; +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct blkcipher_walk walk; + int err; + +@@ -203,12 +203,12 @@ int glue_cbc_decrypt_128bit(const struct + + while ((nbytes = walk.nbytes)) { + fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit, +- desc, fpu_enabled, nbytes); ++ desc, false, nbytes); + nbytes = __glue_cbc_decrypt_128bit(gctx, desc, &walk); ++ glue_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, &walk, nbytes); + } + +- glue_fpu_end(fpu_enabled); + return err; + } + EXPORT_SYMBOL_GPL(glue_cbc_decrypt_128bit); +@@ -277,7 +277,7 @@ int glue_ctr_crypt_128bit(const struct c + struct scatterlist *src, unsigned int nbytes) + { + const unsigned int bsize = 128 / 8; +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct blkcipher_walk walk; + int err; + +@@ -286,13 +286,12 @@ int glue_ctr_crypt_128bit(const struct c + + while ((nbytes = walk.nbytes) >= bsize) { + fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit, +- desc, fpu_enabled, nbytes); ++ desc, false, nbytes); + nbytes = __glue_ctr_crypt_128bit(gctx, desc, &walk); ++ glue_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, &walk, nbytes); + } + +- glue_fpu_end(fpu_enabled); +- + if (walk.nbytes) { + glue_ctr_crypt_final_128bit( + gctx->funcs[gctx->num_funcs - 1].fn_u.ctr, desc, &walk); +@@ -347,7 +346,7 @@ int glue_xts_crypt_128bit(const struct c + void *tweak_ctx, void *crypt_ctx) + { + const unsigned int bsize = 128 / 8; +- bool fpu_enabled = false; ++ bool fpu_enabled; + struct blkcipher_walk walk; + int err; + +@@ -360,21 +359,21 @@ int glue_xts_crypt_128bit(const struct c + + /* set minimum length to bsize, for tweak_fn */ + fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit, +- desc, fpu_enabled, ++ desc, false, + nbytes < bsize ? bsize : nbytes); +- + /* calculate first value of T */ + tweak_fn(tweak_ctx, walk.iv, walk.iv); ++ glue_fpu_end(fpu_enabled); + + while (nbytes) { ++ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit, ++ desc, false, nbytes); + nbytes = __glue_xts_crypt_128bit(gctx, crypt_ctx, desc, &walk); + ++ glue_fpu_end(fpu_enabled); + err = blkcipher_walk_done(desc, &walk, nbytes); + nbytes = walk.nbytes; + } +- +- glue_fpu_end(fpu_enabled); +- + return err; + } + EXPORT_SYMBOL_GPL(glue_xts_crypt_128bit); diff --git a/patches/features/all/rt/debugobjects-rt.patch b/patches/features/all/rt/debugobjects-rt.patch new file mode 100644 index 00000000000..6ca7597a152 --- /dev/null +++ b/patches/features/all/rt/debugobjects-rt.patch @@ -0,0 +1,26 @@ +Subject: debugobjects: Make RT aware +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 21:41:35 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Avoid filling the pool / allocating memory with irqs off(). + +Signed-off-by: Thomas Gleixner +--- + lib/debugobjects.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/lib/debugobjects.c ++++ b/lib/debugobjects.c +@@ -308,7 +308,10 @@ static void + struct debug_obj *obj; + unsigned long flags; + +- fill_pool(); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (preempt_count() == 0 && !irqs_disabled()) ++#endif ++ fill_pool(); + + db = get_bucket((unsigned long) addr); + diff --git a/patches/features/all/rt/dm-make-rt-aware.patch b/patches/features/all/rt/dm-make-rt-aware.patch new file mode 100644 index 00000000000..265a99d986a --- /dev/null +++ b/patches/features/all/rt/dm-make-rt-aware.patch @@ -0,0 +1,27 @@ +Subject: dm: Make rt aware +From: Thomas Gleixner +Date: Mon, 14 Nov 2011 23:06:09 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has +interrupts legitimately enabled here as we cant deadlock against the +irq thread due to the "sleeping spinlocks" conversion. + +Reported-by: Luis Claudio R. Goncalves + +Signed-off-by: Thomas Gleixner +--- + drivers/md/dm-rq.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/md/dm-rq.c ++++ b/drivers/md/dm-rq.c +@@ -832,7 +832,7 @@ static void dm_old_request_fn(struct req + /* Establish tio->ti before queuing work (map_tio_request) */ + tio->ti = ti; + kthread_queue_work(&md->kworker, &tio->work); +- BUG_ON(!irqs_disabled()); ++ BUG_ON_NONRT(!irqs_disabled()); + } + } + diff --git a/patches/features/all/rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/patches/features/all/rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch new file mode 100644 index 00000000000..b429c9006f1 --- /dev/null +++ b/patches/features/all/rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -0,0 +1,176 @@ +From: Mike Galbraith +Date: Thu, 31 Mar 2016 04:08:28 +0200 +Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex + for -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +They're nondeterministic, and lead to ___might_sleep() splats in -rt. +OTOH, they're a lot less wasteful than an rtmutex per page. + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/block/zram/zram_drv.c | 30 ++++++++++++++++-------------- + drivers/block/zram/zram_drv.h | 41 +++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 57 insertions(+), 14 deletions(-) + +--- a/drivers/block/zram/zram_drv.c ++++ b/drivers/block/zram/zram_drv.c +@@ -519,6 +519,8 @@ static struct zram_meta *zram_meta_alloc + goto out_error; + } + ++ zram_meta_init_table_locks(meta, disksize); ++ + return meta; + + out_error: +@@ -567,12 +569,12 @@ static int zram_decompress_page(struct z + unsigned long handle; + unsigned int size; + +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + handle = meta->table[index].handle; + size = zram_get_obj_size(meta, index); + + if (!handle || zram_test_flag(meta, index, ZRAM_ZERO)) { +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + clear_page(mem); + return 0; + } +@@ -587,7 +589,7 @@ static int zram_decompress_page(struct z + zcomp_stream_put(zram->comp); + } + zs_unmap_object(meta->mem_pool, handle); +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + + /* Should NEVER happen. Return bio error if it does. */ + if (unlikely(ret)) { +@@ -607,14 +609,14 @@ static int zram_bvec_read(struct zram *z + struct zram_meta *meta = zram->meta; + page = bvec->bv_page; + +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + if (unlikely(!meta->table[index].handle) || + zram_test_flag(meta, index, ZRAM_ZERO)) { +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + handle_zero_page(bvec); + return 0; + } +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + + if (is_partial_io(bvec)) + /* Use a temporary buffer to decompress the page */ +@@ -691,10 +693,10 @@ static int zram_bvec_write(struct zram * + if (user_mem) + kunmap_atomic(user_mem); + /* Free memory associated with this sector now. */ +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + zram_free_page(zram, index); + zram_set_flag(meta, index, ZRAM_ZERO); +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + + atomic64_inc(&zram->stats.zero_pages); + ret = 0; +@@ -785,12 +787,12 @@ static int zram_bvec_write(struct zram * + * Free memory associated with this sector + * before overwriting unused sectors. + */ +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + zram_free_page(zram, index); + + meta->table[index].handle = handle; + zram_set_obj_size(meta, index, clen); +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + + /* Update stats */ + atomic64_add(clen, &zram->stats.compr_data_size); +@@ -833,9 +835,9 @@ static void zram_bio_discard(struct zram + } + + while (n >= PAGE_SIZE) { +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + zram_free_page(zram, index); +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + atomic64_inc(&zram->stats.notify_free); + index++; + n -= PAGE_SIZE; +@@ -964,9 +966,9 @@ static void zram_slot_free_notify(struct + zram = bdev->bd_disk->private_data; + meta = zram->meta; + +- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_lock_table(&meta->table[index]); + zram_free_page(zram, index); +- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value); ++ zram_unlock_table(&meta->table[index]); + atomic64_inc(&zram->stats.notify_free); + } + +--- a/drivers/block/zram/zram_drv.h ++++ b/drivers/block/zram/zram_drv.h +@@ -73,6 +73,9 @@ enum zram_pageflags { + struct zram_table_entry { + unsigned long handle; + unsigned long value; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ spinlock_t lock; ++#endif + }; + + struct zram_stats { +@@ -120,4 +123,42 @@ struct zram { + */ + bool claim; /* Protected by bdev->bd_mutex */ + }; ++ ++#ifndef CONFIG_PREEMPT_RT_BASE ++static inline void zram_lock_table(struct zram_table_entry *table) ++{ ++ bit_spin_lock(ZRAM_ACCESS, &table->value); ++} ++ ++static inline void zram_unlock_table(struct zram_table_entry *table) ++{ ++ bit_spin_unlock(ZRAM_ACCESS, &table->value); ++} ++ ++static inline void zram_meta_init_table_locks(struct zram_meta *meta, u64 disksize) { } ++#else /* CONFIG_PREEMPT_RT_BASE */ ++static inline void zram_lock_table(struct zram_table_entry *table) ++{ ++ spin_lock(&table->lock); ++ __set_bit(ZRAM_ACCESS, &table->value); ++} ++ ++static inline void zram_unlock_table(struct zram_table_entry *table) ++{ ++ __clear_bit(ZRAM_ACCESS, &table->value); ++ spin_unlock(&table->lock); ++} ++ ++static inline void zram_meta_init_table_locks(struct zram_meta *meta, u64 disksize) ++{ ++ size_t num_pages = disksize >> PAGE_SHIFT; ++ size_t index; ++ ++ for (index = 0; index < num_pages; index++) { ++ spinlock_t *lock = &meta->table[index].lock; ++ spin_lock_init(lock); ++ } ++} ++#endif /* CONFIG_PREEMPT_RT_BASE */ ++ + #endif diff --git a/patches/features/all/rt/drivers-net-8139-disable-irq-nosync.patch b/patches/features/all/rt/drivers-net-8139-disable-irq-nosync.patch new file mode 100644 index 00000000000..ee0a24414af --- /dev/null +++ b/patches/features/all/rt/drivers-net-8139-disable-irq-nosync.patch @@ -0,0 +1,26 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:24 -0500 +Subject: drivers/net: Use disable_irq_nosync() in 8139too +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use disable_irq_nosync() instead of disable_irq() as this might be +called in atomic context with netpoll. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/net/ethernet/realtek/8139too.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/ethernet/realtek/8139too.c ++++ b/drivers/net/ethernet/realtek/8139too.c +@@ -2233,7 +2233,7 @@ static void rtl8139_poll_controller(stru + struct rtl8139_private *tp = netdev_priv(dev); + const int irq = tp->pci_dev->irq; + +- disable_irq(irq); ++ disable_irq_nosync(irq); + rtl8139_interrupt(irq, dev); + enable_irq(irq); + } diff --git a/patches/features/all/rt/drivers-net-vortex-fix-locking-issues.patch b/patches/features/all/rt/drivers-net-vortex-fix-locking-issues.patch new file mode 100644 index 00000000000..4b6d2da4456 --- /dev/null +++ b/patches/features/all/rt/drivers-net-vortex-fix-locking-issues.patch @@ -0,0 +1,49 @@ +From: Steven Rostedt +Date: Fri, 3 Jul 2009 08:30:00 -0500 +Subject: drivers/net: vortex fix locking issues +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Argh, cut and paste wasn't enough... + +Use this patch instead. It needs an irq disable. But, believe it or not, +on SMP this is actually better. If the irq is shared (as it is in Mark's +case), we don't stop the irq of other devices from being handled on +another CPU (unfortunately for Mark, he pinned all interrupts to one CPU). + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner + + drivers/net/ethernet/3com/3c59x.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +Signed-off-by: Ingo Molnar + +--- a/drivers/net/ethernet/3com/3c59x.c ++++ b/drivers/net/ethernet/3com/3c59x.c +@@ -842,9 +842,9 @@ static void poll_vortex(struct net_devic + { + struct vortex_private *vp = netdev_priv(dev); + unsigned long flags; +- local_irq_save(flags); ++ local_irq_save_nort(flags); + (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + #endif + +@@ -1910,12 +1910,12 @@ static void vortex_tx_timeout(struct net + * Block interrupts because vortex_interrupt does a bare spin_lock() + */ + unsigned long flags; +- local_irq_save(flags); ++ local_irq_save_nort(flags); + if (vp->full_bus_master_tx) + boomerang_interrupt(dev->irq, dev); + else + vortex_interrupt(dev->irq, dev); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + } + diff --git a/patches/features/all/rt/drivers-random-reduce-preempt-disabled-region.patch b/patches/features/all/rt/drivers-random-reduce-preempt-disabled-region.patch new file mode 100644 index 00000000000..61649dbb649 --- /dev/null +++ b/patches/features/all/rt/drivers-random-reduce-preempt-disabled-region.patch @@ -0,0 +1,33 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:30 -0500 +Subject: drivers: random: Reduce preempt disabled region +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +No need to keep preemption disabled across the whole function. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/char/random.c | 3 --- + 1 file changed, 3 deletions(-) + +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -1028,8 +1028,6 @@ static void add_timer_randomness(struct + } sample; + long delta, delta2, delta3; + +- preempt_disable(); +- + sample.jiffies = jiffies; + sample.cycles = random_get_entropy(); + sample.num = num; +@@ -1070,7 +1068,6 @@ static void add_timer_randomness(struct + */ + credit_entropy_bits(r, min_t(int, fls(delta>>1), 11)); + } +- preempt_enable(); + } + + void add_input_randomness(unsigned int type, unsigned int code, diff --git a/patches/features/all/rt/drivers-tty-fix-omap-lock-crap.patch b/patches/features/all/rt/drivers-tty-fix-omap-lock-crap.patch new file mode 100644 index 00000000000..bfe4685f31b --- /dev/null +++ b/patches/features/all/rt/drivers-tty-fix-omap-lock-crap.patch @@ -0,0 +1,43 @@ +Subject: tty/serial/omap: Make the locking RT aware +From: Thomas Gleixner +Date: Thu, 28 Jul 2011 13:32:57 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The lock is a sleeping lock and local_irq_save() is not the +optimsation we are looking for. Redo it to make it work on -RT and +non-RT. + +Signed-off-by: Thomas Gleixner +--- + drivers/tty/serial/omap-serial.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +--- a/drivers/tty/serial/omap-serial.c ++++ b/drivers/tty/serial/omap-serial.c +@@ -1257,13 +1257,10 @@ serial_omap_console_write(struct console + + pm_runtime_get_sync(up->dev); + +- local_irq_save(flags); +- if (up->port.sysrq) +- locked = 0; +- else if (oops_in_progress) +- locked = spin_trylock(&up->port.lock); ++ if (up->port.sysrq || oops_in_progress) ++ locked = spin_trylock_irqsave(&up->port.lock, flags); + else +- spin_lock(&up->port.lock); ++ spin_lock_irqsave(&up->port.lock, flags); + + /* + * First save the IER then disable the interrupts +@@ -1292,8 +1289,7 @@ serial_omap_console_write(struct console + pm_runtime_mark_last_busy(up->dev); + pm_runtime_put_autosuspend(up->dev); + if (locked) +- spin_unlock(&up->port.lock); +- local_irq_restore(flags); ++ spin_unlock_irqrestore(&up->port.lock, flags); + } + + static int __init diff --git a/patches/features/all/rt/drivers-tty-pl011-irq-disable-madness.patch b/patches/features/all/rt/drivers-tty-pl011-irq-disable-madness.patch new file mode 100644 index 00000000000..e368bdb7c40 --- /dev/null +++ b/patches/features/all/rt/drivers-tty-pl011-irq-disable-madness.patch @@ -0,0 +1,48 @@ +Subject: tty/serial/pl011: Make the locking work on RT +From: Thomas Gleixner +Date: Tue, 08 Jan 2013 21:36:51 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The lock is a sleeping lock and local_irq_save() is not the optimsation +we are looking for. Redo it to make it work on -RT and non-RT. + +Signed-off-by: Thomas Gleixner +--- + drivers/tty/serial/amba-pl011.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +--- a/drivers/tty/serial/amba-pl011.c ++++ b/drivers/tty/serial/amba-pl011.c +@@ -2194,13 +2194,19 @@ pl011_console_write(struct console *co, + + clk_enable(uap->clk); + +- local_irq_save(flags); ++ /* ++ * local_irq_save(flags); ++ * ++ * This local_irq_save() is nonsense. If we come in via sysrq ++ * handling then interrupts are already disabled. Aside of ++ * that the port.sysrq check is racy on SMP regardless. ++ */ + if (uap->port.sysrq) + locked = 0; + else if (oops_in_progress) +- locked = spin_trylock(&uap->port.lock); ++ locked = spin_trylock_irqsave(&uap->port.lock, flags); + else +- spin_lock(&uap->port.lock); ++ spin_lock_irqsave(&uap->port.lock, flags); + + /* + * First save the CR then disable the interrupts +@@ -2224,8 +2230,7 @@ pl011_console_write(struct console *co, + pl011_write(old_cr, uap, REG_CR); + + if (locked) +- spin_unlock(&uap->port.lock); +- local_irq_restore(flags); ++ spin_unlock_irqrestore(&uap->port.lock, flags); + + clk_disable(uap->clk); + } diff --git a/patches/features/all/rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/patches/features/all/rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch new file mode 100644 index 00000000000..f54003a8ca8 --- /dev/null +++ b/patches/features/all/rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -0,0 +1,92 @@ +From: Mike Galbraith +Date: Thu, 20 Oct 2016 11:15:22 +0200 +Subject: [PATCH] drivers/zram: Don't disable preemption in + zcomp_stream_get/put() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +In v4.7, the driver switched to percpu compression streams, disabling +preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We +also have to fix an lock order issue in zram_decompress_page() such +that zs_map_object() nests inside of zcomp_stream_put() as it does in +zram_bvec_write(). + +Signed-off-by: Mike Galbraith +[bigeasy: get_locked_var() -> per zcomp_strm lock] +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/block/zram/zcomp.c | 12 ++++++++++-- + drivers/block/zram/zcomp.h | 1 + + drivers/block/zram/zram_drv.c | 6 +++--- + 3 files changed, 14 insertions(+), 5 deletions(-) + +--- a/drivers/block/zram/zcomp.c ++++ b/drivers/block/zram/zcomp.c +@@ -118,12 +118,19 @@ ssize_t zcomp_available_show(const char + + struct zcomp_strm *zcomp_stream_get(struct zcomp *comp) + { +- return *get_cpu_ptr(comp->stream); ++ struct zcomp_strm *zstrm; ++ ++ zstrm = *this_cpu_ptr(comp->stream); ++ spin_lock(&zstrm->zcomp_lock); ++ return zstrm; + } + + void zcomp_stream_put(struct zcomp *comp) + { +- put_cpu_ptr(comp->stream); ++ struct zcomp_strm *zstrm; ++ ++ zstrm = *this_cpu_ptr(comp->stream); ++ spin_unlock(&zstrm->zcomp_lock); + } + + int zcomp_compress(struct zcomp_strm *zstrm, +@@ -174,6 +181,7 @@ static int __zcomp_cpu_notifier(struct z + pr_err("Can't allocate a compression stream\n"); + return NOTIFY_BAD; + } ++ spin_lock_init(&zstrm->zcomp_lock); + *per_cpu_ptr(comp->stream, cpu) = zstrm; + break; + case CPU_DEAD: +--- a/drivers/block/zram/zcomp.h ++++ b/drivers/block/zram/zcomp.h +@@ -14,6 +14,7 @@ struct zcomp_strm { + /* compression/decompression buffer */ + void *buffer; + struct crypto_comp *tfm; ++ spinlock_t zcomp_lock; + }; + + /* dynamic per-device compression frontend */ +--- a/drivers/block/zram/zram_drv.c ++++ b/drivers/block/zram/zram_drv.c +@@ -568,6 +568,7 @@ static int zram_decompress_page(struct z + struct zram_meta *meta = zram->meta; + unsigned long handle; + unsigned int size; ++ struct zcomp_strm *zstrm; + + zram_lock_table(&meta->table[index]); + handle = meta->table[index].handle; +@@ -579,16 +580,15 @@ static int zram_decompress_page(struct z + return 0; + } + ++ zstrm = zcomp_stream_get(zram->comp); + cmem = zs_map_object(meta->mem_pool, handle, ZS_MM_RO); + if (size == PAGE_SIZE) { + copy_page(mem, cmem); + } else { +- struct zcomp_strm *zstrm = zcomp_stream_get(zram->comp); +- + ret = zcomp_decompress(zstrm, cmem, size, mem); +- zcomp_stream_put(zram->comp); + } + zs_unmap_object(meta->mem_pool, handle); ++ zcomp_stream_put(zram->comp); + zram_unlock_table(&meta->table[index]); + + /* Should NEVER happen. Return bio error if it does. */ diff --git a/patches/features/all/rt/drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch b/patches/features/all/rt/drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch new file mode 100644 index 00000000000..0a22a295d1e --- /dev/null +++ b/patches/features/all/rt/drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch @@ -0,0 +1,59 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 25 Apr 2013 18:12:52 +0200 +Subject: drm/i915: drop trace_i915_gem_ring_dispatch on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This tracepoint is responsible for: + +|[<814cc358>] __schedule_bug+0x4d/0x59 +|[<814d24cc>] __schedule+0x88c/0x930 +|[<814d3b90>] ? _raw_spin_unlock_irqrestore+0x40/0x50 +|[<814d3b95>] ? _raw_spin_unlock_irqrestore+0x45/0x50 +|[<810b57b5>] ? task_blocks_on_rt_mutex+0x1f5/0x250 +|[<814d27d9>] schedule+0x29/0x70 +|[<814d3423>] rt_spin_lock_slowlock+0x15b/0x278 +|[<814d3786>] rt_spin_lock+0x26/0x30 +|[] gen6_gt_force_wake_get+0x29/0x60 [i915] +|[] gen6_ring_get_irq+0x5f/0x100 [i915] +|[] ftrace_raw_event_i915_gem_ring_dispatch+0xe3/0x100 [i915] +|[] i915_gem_do_execbuffer.isra.13+0xbd3/0x1430 [i915] +|[<810f8943>] ? trace_buffer_unlock_commit+0x43/0x60 +|[<8113e8d2>] ? ftrace_raw_event_kmem_alloc+0xd2/0x180 +|[<8101d063>] ? native_sched_clock+0x13/0x80 +|[] i915_gem_execbuffer2+0x99/0x280 [i915] +|[] drm_ioctl+0x4c3/0x570 [drm] +|[<8101d0d9>] ? sched_clock+0x9/0x10 +|[] ? i915_gem_execbuffer+0x480/0x480 [i915] +|[<810f1c18>] ? rb_commit+0x68/0xa0 +|[<810f1c6c>] ? ring_buffer_unlock_commit+0x1c/0xa0 +|[<81197467>] do_vfs_ioctl+0x97/0x540 +|[<81021318>] ? ftrace_raw_event_sys_enter+0xd8/0x130 +|[<811979a1>] sys_ioctl+0x91/0xb0 +|[<814db931>] tracesys+0xe1/0xe6 + +Chris Wilson does not like to move i915_trace_irq_get() out of the macro + +|No. This enables the IRQ, as well as making a number of +|very expensively serialised read, unconditionally. + +so it is gone now on RT. + + +Reported-by: Joakim Hernberg +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c ++++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +@@ -1537,7 +1537,9 @@ execbuf_submit(struct i915_execbuffer_pa + if (ret) + return ret; + ++#ifndef CONFIG_PREEMPT_RT_BASE + trace_i915_gem_ring_dispatch(params->request, params->dispatch_flags); ++#endif + + i915_gem_execbuffer_move_to_active(vmas, params->request); + diff --git a/patches/features/all/rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch b/patches/features/all/rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch new file mode 100644 index 00000000000..74faa6ecd64 --- /dev/null +++ b/patches/features/all/rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch @@ -0,0 +1,113 @@ +Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() +From: Mike Galbraith +Date: Sat, 27 Feb 2016 09:01:42 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + + +[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 +[ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4 +[ 8.014045] CPU: 1 PID: 78 Comm: kworker/u4:4 Not tainted 4.1.7-rt7 #5 +[ 8.014055] Workqueue: events_unbound async_run_entry_fn +[ 8.014059] 0000000000000000 ffff880037153748 ffffffff815f32c9 0000000000000002 +[ 8.014063] ffff88013a50e380 ffff880037153768 ffffffff815ef075 ffff8800372c06c8 +[ 8.014066] ffff8800372c06c8 ffff880037153778 ffffffff8107c0b3 ffff880037153798 +[ 8.014067] Call Trace: +[ 8.014074] [] dump_stack+0x4a/0x61 +[ 8.014078] [] ___might_sleep.part.93+0xe9/0xee +[ 8.014082] [] ___might_sleep+0x53/0x80 +[ 8.014086] [] rt_spin_lock+0x24/0x50 +[ 8.014090] [] prepare_to_wait+0x2b/0xa0 +[ 8.014152] [] intel_pipe_update_start+0x17c/0x300 [i915] +[ 8.014156] [] ? prepare_to_wait_event+0x120/0x120 +[ 8.014201] [] intel_begin_crtc_commit+0x166/0x1e0 [i915] +[ 8.014215] [] drm_atomic_helper_commit_planes+0x5d/0x1a0 [drm_kms_helper] +[ 8.014260] [] intel_atomic_commit+0xab/0xf0 [i915] +[ 8.014288] [] drm_atomic_commit+0x37/0x60 [drm] +[ 8.014298] [] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper] +[ 8.014301] [] ? __ww_mutex_lock+0x39/0x40 +[ 8.014319] [] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm] +[ 8.014328] [] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper] +[ 8.014337] [] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper] +[ 8.014346] [] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper] +[ 8.014390] [] intel_fbdev_set_par+0x1a/0x60 [i915] +[ 8.014394] [] fbcon_init+0x4f4/0x580 +[ 8.014398] [] visual_init+0xbc/0x120 +[ 8.014401] [] do_bind_con_driver+0x163/0x330 +[ 8.014405] [] do_take_over_console+0x11c/0x1c0 +[ 8.014408] [] do_fbcon_takeover+0x63/0xd0 +[ 8.014410] [] fbcon_event_notify+0x785/0x8d0 +[ 8.014413] [] ? __might_sleep+0x4d/0x90 +[ 8.014416] [] notifier_call_chain+0x4e/0x80 +[ 8.014419] [] __blocking_notifier_call_chain+0x4d/0x70 +[ 8.014422] [] blocking_notifier_call_chain+0x16/0x20 +[ 8.014425] [] fb_notifier_call_chain+0x1b/0x20 +[ 8.014428] [] register_framebuffer+0x21a/0x350 +[ 8.014439] [] drm_fb_helper_initial_config+0x274/0x3e0 [drm_kms_helper] +[ 8.014483] [] intel_fbdev_initial_config+0x1b/0x20 [i915] +[ 8.014486] [] async_run_entry_fn+0x4c/0x160 +[ 8.014490] [] process_one_work+0x14a/0x470 +[ 8.014493] [] worker_thread+0x169/0x4c0 +[ 8.014496] [] ? process_one_work+0x470/0x470 +[ 8.014499] [] kthread+0xc6/0xe0 +[ 8.014502] [] ? queue_work_on+0x80/0x110 +[ 8.014506] [] ? kthread_worker_fn+0x1c0/0x1c0 + +Signed-off-by: Mike Galbraith +Cc: Sebastian Andrzej Siewior +Cc: linux-rt-users +Signed-off-by: Thomas Gleixner +--- + drivers/gpu/drm/i915/intel_sprite.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_sprite.c ++++ b/drivers/gpu/drm/i915/intel_sprite.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include "intel_drv.h" + #include "intel_frontbuffer.h" + #include +@@ -65,6 +66,8 @@ int intel_usecs_to_scanlines(const struc + 1000 * adjusted_mode->crtc_htotal); + } + ++static DEFINE_LOCAL_IRQ_LOCK(pipe_update_lock); ++ + /** + * intel_pipe_update_start() - start update of a set of display registers + * @crtc: the crtc of which the registers are going to be updated +@@ -95,7 +98,7 @@ void intel_pipe_update_start(struct inte + min = vblank_start - intel_usecs_to_scanlines(adjusted_mode, 100); + max = vblank_start - 1; + +- local_irq_disable(); ++ local_lock_irq(pipe_update_lock); + + if (min <= 0 || max <= 0) + return; +@@ -125,11 +128,11 @@ void intel_pipe_update_start(struct inte + break; + } + +- local_irq_enable(); ++ local_unlock_irq(pipe_update_lock); + + timeout = schedule_timeout(timeout); + +- local_irq_disable(); ++ local_lock_irq(pipe_update_lock); + } + + finish_wait(wq, &wait); +@@ -181,7 +184,7 @@ void intel_pipe_update_end(struct intel_ + crtc->base.state->event = NULL; + } + +- local_irq_enable(); ++ local_unlock_irq(pipe_update_lock); + + if (crtc->debug.start_vbl_count && + crtc->debug.start_vbl_count != end_vbl_count) { diff --git a/patches/features/all/rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch b/patches/features/all/rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch new file mode 100644 index 00000000000..1f5ef82506a --- /dev/null +++ b/patches/features/all/rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch @@ -0,0 +1,52 @@ +Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended +From: Mike Galbraith +Date: Sat, 27 Feb 2016 08:09:11 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +DRM folks identified the spots, so use them. + +Signed-off-by: Mike Galbraith +Cc: Sebastian Andrzej Siewior +Cc: linux-rt-users +Signed-off-by: Thomas Gleixner +--- + drivers/gpu/drm/i915/i915_irq.c | 2 ++ + drivers/gpu/drm/radeon/radeon_display.c | 2 ++ + 2 files changed, 4 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_irq.c ++++ b/drivers/gpu/drm/i915/i915_irq.c +@@ -812,6 +812,7 @@ static int i915_get_crtc_scanoutpos(stru + spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); + + /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ ++ preempt_disable_rt(); + + /* Get optional system timestamp before query. */ + if (stime) +@@ -863,6 +864,7 @@ static int i915_get_crtc_scanoutpos(stru + *etime = ktime_get(); + + /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */ ++ preempt_enable_rt(); + + spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); + +--- a/drivers/gpu/drm/radeon/radeon_display.c ++++ b/drivers/gpu/drm/radeon/radeon_display.c +@@ -1845,6 +1845,7 @@ int radeon_get_crtc_scanoutpos(struct dr + struct radeon_device *rdev = dev->dev_private; + + /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ ++ preempt_disable_rt(); + + /* Get optional system timestamp before query. */ + if (stime) +@@ -1937,6 +1938,7 @@ int radeon_get_crtc_scanoutpos(struct dr + *etime = ktime_get(); + + /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */ ++ preempt_enable_rt(); + + /* Decode into vertical and horizontal scanout position. */ + *vpos = position & 0x1fff; diff --git a/patches/features/all/rt/epoll-use-get-cpu-light.patch b/patches/features/all/rt/epoll-use-get-cpu-light.patch new file mode 100644 index 00000000000..f05b19cb725 --- /dev/null +++ b/patches/features/all/rt/epoll-use-get-cpu-light.patch @@ -0,0 +1,31 @@ +Subject: fs/epoll: Do not disable preemption on RT +From: Thomas Gleixner +Date: Fri, 08 Jul 2011 16:35:35 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +ep_call_nested() takes a sleeping lock so we can't disable preemption. +The light version is enough since ep_call_nested() doesn't mind beeing +invoked twice on the same CPU. + +Signed-off-by: Thomas Gleixner +--- + fs/eventpoll.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/fs/eventpoll.c ++++ b/fs/eventpoll.c +@@ -510,12 +510,12 @@ static int ep_poll_wakeup_proc(void *pri + */ + static void ep_poll_safewake(wait_queue_head_t *wq) + { +- int this_cpu = get_cpu(); ++ int this_cpu = get_cpu_light(); + + ep_call_nested(&poll_safewake_ncalls, EP_MAX_NESTS, + ep_poll_wakeup_proc, NULL, wq, (void *) (long) this_cpu); + +- put_cpu(); ++ put_cpu_light(); + } + + static void ep_remove_wait_queue(struct eppoll_entry *pwq) diff --git a/patches/features/all/rt/fs-aio-simple-simple-work.patch b/patches/features/all/rt/fs-aio-simple-simple-work.patch new file mode 100644 index 00000000000..996a77c8b19 --- /dev/null +++ b/patches/features/all/rt/fs-aio-simple-simple-work.patch @@ -0,0 +1,107 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 16 Feb 2015 18:49:10 +0100 +Subject: fs/aio: simple simple work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768 +|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2 +|2 locks held by rcuos/2/26: +| #0: (rcu_callback){.+.+..}, at: [] rcu_nocb_kthread+0x1e2/0x380 +| #1: (rcu_read_lock_sched){.+.+..}, at: [] percpu_ref_kill_rcu+0xa6/0x1c0 +|Preemption disabled at:[] rcu_nocb_kthread+0x263/0x380 +|Call Trace: +| [] dump_stack+0x4e/0x9c +| [] __might_sleep+0xfb/0x170 +| [] rt_spin_lock+0x24/0x70 +| [] free_ioctx_users+0x30/0x130 +| [] percpu_ref_kill_rcu+0x1b4/0x1c0 +| [] rcu_nocb_kthread+0x263/0x380 +| [] kthread+0xd6/0xf0 +| [] ret_from_fork+0x7c/0xb0 + +replace this preempt_disable() friendly swork. + +Reported-By: Mike Galbraith +Suggested-by: Benjamin LaHaise +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/aio.c | 24 +++++++++++++++++------- + 1 file changed, 17 insertions(+), 7 deletions(-) + +--- a/fs/aio.c ++++ b/fs/aio.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -115,7 +116,7 @@ struct kioctx { + struct page **ring_pages; + long nr_pages; + +- struct work_struct free_work; ++ struct swork_event free_work; + + /* + * signals when all in-flight requests are done +@@ -258,6 +259,7 @@ static int __init aio_setup(void) + .mount = aio_mount, + .kill_sb = kill_anon_super, + }; ++ BUG_ON(swork_get()); + aio_mnt = kern_mount(&aio_fs); + if (IS_ERR(aio_mnt)) + panic("Failed to create aio fs mount."); +@@ -581,9 +583,9 @@ static int kiocb_cancel(struct aio_kiocb + return cancel(&kiocb->common); + } + +-static void free_ioctx(struct work_struct *work) ++static void free_ioctx(struct swork_event *sev) + { +- struct kioctx *ctx = container_of(work, struct kioctx, free_work); ++ struct kioctx *ctx = container_of(sev, struct kioctx, free_work); + + pr_debug("freeing %p\n", ctx); + +@@ -602,8 +604,8 @@ static void free_ioctx_reqs(struct percp + if (ctx->rq_wait && atomic_dec_and_test(&ctx->rq_wait->count)) + complete(&ctx->rq_wait->comp); + +- INIT_WORK(&ctx->free_work, free_ioctx); +- schedule_work(&ctx->free_work); ++ INIT_SWORK(&ctx->free_work, free_ioctx); ++ swork_queue(&ctx->free_work); + } + + /* +@@ -611,9 +613,9 @@ static void free_ioctx_reqs(struct percp + * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted - + * now it's safe to cancel any that need to be. + */ +-static void free_ioctx_users(struct percpu_ref *ref) ++static void free_ioctx_users_work(struct swork_event *sev) + { +- struct kioctx *ctx = container_of(ref, struct kioctx, users); ++ struct kioctx *ctx = container_of(sev, struct kioctx, free_work); + struct aio_kiocb *req; + + spin_lock_irq(&ctx->ctx_lock); +@@ -632,6 +634,14 @@ static void free_ioctx_users(struct perc + percpu_ref_put(&ctx->reqs); + } + ++static void free_ioctx_users(struct percpu_ref *ref) ++{ ++ struct kioctx *ctx = container_of(ref, struct kioctx, users); ++ ++ INIT_SWORK(&ctx->free_work, free_ioctx_users_work); ++ swork_queue(&ctx->free_work); ++} ++ + static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm) + { + unsigned i, new_nr; diff --git a/patches/features/all/rt/fs-block-rt-support.patch b/patches/features/all/rt/fs-block-rt-support.patch new file mode 100644 index 00000000000..69e101a4436 --- /dev/null +++ b/patches/features/all/rt/fs-block-rt-support.patch @@ -0,0 +1,23 @@ +Subject: block: Turn off warning which is bogus on RT +From: Thomas Gleixner +Date: Tue, 14 Jun 2011 17:05:09 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On -RT the context is always with IRQs enabled. Ignore this warning on -RT. + +Signed-off-by: Thomas Gleixner +--- + block/blk-core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -233,7 +233,7 @@ EXPORT_SYMBOL(blk_start_queue_async); + **/ + void blk_start_queue(struct request_queue *q) + { +- WARN_ON(!irqs_disabled()); ++ WARN_ON_NONRT(!irqs_disabled()); + + queue_flag_clear(QUEUE_FLAG_STOPPED, q); + __blk_run_queue(q); diff --git a/patches/features/all/rt/fs-dcache-include-wait.h.patch b/patches/features/all/rt/fs-dcache-include-wait.h.patch new file mode 100644 index 00000000000..119d32770c2 --- /dev/null +++ b/patches/features/all/rt/fs-dcache-include-wait.h.patch @@ -0,0 +1,24 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Sep 2016 11:55:23 +0200 +Subject: fs/dcache: include wait.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Since commit d9171b934526 ("parallel lookups machinery, part 4 (and +last)") dcache.h is using but does not include wait.h. It works as long +as it is included somehow earlier and fails otherwise. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/dcache.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/linux/dcache.h ++++ b/include/linux/dcache.h +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + + struct path; + struct vfsmount; diff --git a/patches/features/all/rt/fs-dcache-init-in_lookup_hashtable.patch b/patches/features/all/rt/fs-dcache-init-in_lookup_hashtable.patch new file mode 100644 index 00000000000..e46f0364b56 --- /dev/null +++ b/patches/features/all/rt/fs-dcache-init-in_lookup_hashtable.patch @@ -0,0 +1,28 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Sep 2016 17:57:03 +0200 +Subject: [PATCH] fs/dcache: init in_lookup_hashtable +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +in_lookup_hashtable was introduced in commit 94bdd655caba ("parallel +lookups machinery, part 3") and never initialized but since it is in +the data it is all zeros. But we need this for -RT. + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/dcache.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -3601,6 +3601,11 @@ EXPORT_SYMBOL(d_genocide); + + void __init vfs_caches_init_early(void) + { ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(in_lookup_hashtable); i++) ++ INIT_HLIST_BL_HEAD(&in_lookup_hashtable[i]); ++ + dcache_init_early(); + inode_init_early(); + } diff --git a/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch b/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch new file mode 100644 index 00000000000..717fac9d927 --- /dev/null +++ b/patches/features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch @@ -0,0 +1,108 @@ +Subject: fs: dcache: Use cpu_chill() in trylock loops +From: Thomas Gleixner +Date: Wed, 07 Mar 2012 21:00:34 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Retry loops on RT might loop forever when the modifying side was +preempted. Use cpu_chill() instead of cpu_relax() to let the system +make progress. + +Signed-off-by: Thomas Gleixner + +--- + fs/autofs4/autofs_i.h | 1 + + fs/autofs4/expire.c | 2 +- + fs/dcache.c | 20 ++++++++++++++++---- + fs/namespace.c | 3 ++- + 4 files changed, 20 insertions(+), 6 deletions(-) + +--- a/fs/autofs4/autofs_i.h ++++ b/fs/autofs4/autofs_i.h +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + +--- a/fs/autofs4/expire.c ++++ b/fs/autofs4/expire.c +@@ -148,7 +148,7 @@ static struct dentry *get_next_positive_ + parent = p->d_parent; + if (!spin_trylock(&parent->d_lock)) { + spin_unlock(&p->d_lock); +- cpu_relax(); ++ cpu_chill(); + goto relock; + } + spin_unlock(&p->d_lock); +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -750,6 +751,8 @@ static inline bool fast_dput(struct dent + */ + void dput(struct dentry *dentry) + { ++ struct dentry *parent; ++ + if (unlikely(!dentry)) + return; + +@@ -788,9 +791,18 @@ void dput(struct dentry *dentry) + return; + + kill_it: +- dentry = dentry_kill(dentry); +- if (dentry) { +- cond_resched(); ++ parent = dentry_kill(dentry); ++ if (parent) { ++ int r; ++ ++ if (parent == dentry) { ++ /* the task with the highest priority won't schedule */ ++ r = cond_resched(); ++ if (!r) ++ cpu_chill(); ++ } else { ++ dentry = parent; ++ } + goto repeat; + } + } +@@ -2321,7 +2333,7 @@ void d_delete(struct dentry * dentry) + if (dentry->d_lockref.count == 1) { + if (!spin_trylock(&inode->i_lock)) { + spin_unlock(&dentry->d_lock); +- cpu_relax(); ++ cpu_chill(); + goto again; + } + dentry->d_flags &= ~DCACHE_CANT_MOUNT; +--- a/fs/namespace.c ++++ b/fs/namespace.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include /* init_rootfs */ +@@ -358,7 +359,7 @@ int __mnt_want_write(struct vfsmount *m) + smp_mb(); + while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) { + preempt_enable(); +- cpu_relax(); ++ cpu_chill(); + preempt_disable(); + } + /* diff --git a/patches/features/all/rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/patches/features/all/rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch new file mode 100644 index 00000000000..c8ceaf60f59 --- /dev/null +++ b/patches/features/all/rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -0,0 +1,215 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Sep 2016 14:35:49 +0200 +Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() +which disables preemption. As a workaround convert it to swait. + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/cifs/readdir.c | 2 +- + fs/dcache.c | 27 +++++++++++++++------------ + fs/fuse/dir.c | 2 +- + fs/namei.c | 4 ++-- + fs/nfs/dir.c | 4 ++-- + fs/nfs/unlink.c | 4 ++-- + fs/proc/base.c | 2 +- + fs/proc/proc_sysctl.c | 2 +- + include/linux/dcache.h | 4 ++-- + include/linux/nfs_xdr.h | 2 +- + kernel/sched/swait.c | 1 + + 11 files changed, 29 insertions(+), 25 deletions(-) + +--- a/fs/cifs/readdir.c ++++ b/fs/cifs/readdir.c +@@ -80,7 +80,7 @@ cifs_prime_dcache(struct dentry *parent, + struct inode *inode; + struct super_block *sb = parent->d_sb; + struct cifs_sb_info *cifs_sb = CIFS_SB(sb); +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + + cifs_dbg(FYI, "%s: for %s\n", __func__, name->name); + +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -2393,21 +2393,24 @@ static inline void end_dir_add(struct in + + static void d_wait_lookup(struct dentry *dentry) + { +- if (d_in_lookup(dentry)) { +- DECLARE_WAITQUEUE(wait, current); +- add_wait_queue(dentry->d_wait, &wait); +- do { +- set_current_state(TASK_UNINTERRUPTIBLE); +- spin_unlock(&dentry->d_lock); +- schedule(); +- spin_lock(&dentry->d_lock); +- } while (d_in_lookup(dentry)); +- } ++ struct swait_queue __wait; ++ ++ if (!d_in_lookup(dentry)) ++ return; ++ ++ INIT_LIST_HEAD(&__wait.task_list); ++ do { ++ prepare_to_swait(dentry->d_wait, &__wait, TASK_UNINTERRUPTIBLE); ++ spin_unlock(&dentry->d_lock); ++ schedule(); ++ spin_lock(&dentry->d_lock); ++ } while (d_in_lookup(dentry)); ++ finish_swait(dentry->d_wait, &__wait); + } + + struct dentry *d_alloc_parallel(struct dentry *parent, + const struct qstr *name, +- wait_queue_head_t *wq) ++ struct swait_queue_head *wq) + { + unsigned int hash = name->hash; + struct hlist_bl_head *b = in_lookup_hash(parent, hash); +@@ -2516,7 +2519,7 @@ void __d_lookup_done(struct dentry *dent + hlist_bl_lock(b); + dentry->d_flags &= ~DCACHE_PAR_LOOKUP; + __hlist_bl_del(&dentry->d_u.d_in_lookup_hash); +- wake_up_all(dentry->d_wait); ++ swake_up_all(dentry->d_wait); + dentry->d_wait = NULL; + hlist_bl_unlock(b); + INIT_HLIST_NODE(&dentry->d_u.d_alias); +--- a/fs/fuse/dir.c ++++ b/fs/fuse/dir.c +@@ -1191,7 +1191,7 @@ static int fuse_direntplus_link(struct f + struct inode *dir = d_inode(parent); + struct fuse_conn *fc; + struct inode *inode; +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + + if (!o->nodeid) { + /* +--- a/fs/namei.c ++++ b/fs/namei.c +@@ -1629,7 +1629,7 @@ static struct dentry *lookup_slow(const + { + struct dentry *dentry = ERR_PTR(-ENOENT), *old; + struct inode *inode = dir->d_inode; +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + + inode_lock_shared(inode); + /* Don't go there if it's already dead */ +@@ -3086,7 +3086,7 @@ static int lookup_open(struct nameidata + struct dentry *dentry; + int error, create_error = 0; + umode_t mode = op->mode; +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + + if (unlikely(IS_DEADDIR(dir_inode))) + return -ENOENT; +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -485,7 +485,7 @@ static + void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry) + { + struct qstr filename = QSTR_INIT(entry->name, entry->len); +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + struct dentry *dentry; + struct dentry *alias; + struct inode *dir = d_inode(parent); +@@ -1498,7 +1498,7 @@ int nfs_atomic_open(struct inode *dir, s + struct file *file, unsigned open_flags, + umode_t mode, int *opened) + { +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + struct nfs_open_context *ctx; + struct dentry *res; + struct iattr attr = { .ia_valid = ATTR_OPEN }; +--- a/fs/nfs/unlink.c ++++ b/fs/nfs/unlink.c +@@ -12,7 +12,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +@@ -205,7 +205,7 @@ nfs_async_unlink(struct dentry *dentry, + goto out_free_name; + } + data->res.dir_attr = &data->dir_attr; +- init_waitqueue_head(&data->wq); ++ init_swait_queue_head(&data->wq); + + status = -EBUSY; + spin_lock(&dentry->d_lock); +--- a/fs/proc/base.c ++++ b/fs/proc/base.c +@@ -1834,7 +1834,7 @@ bool proc_fill_cache(struct file *file, + + child = d_hash_and_lookup(dir, &qname); + if (!child) { +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + child = d_alloc_parallel(dir, &qname, &wq); + if (IS_ERR(child)) + goto end_instantiate; +--- a/fs/proc/proc_sysctl.c ++++ b/fs/proc/proc_sysctl.c +@@ -632,7 +632,7 @@ static bool proc_sys_fill_cache(struct f + + child = d_lookup(dir, &qname); + if (!child) { +- DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); ++ DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(wq); + child = d_alloc_parallel(dir, &qname, &wq); + if (IS_ERR(child)) + return false; +--- a/include/linux/dcache.h ++++ b/include/linux/dcache.h +@@ -101,7 +101,7 @@ struct dentry { + + union { + struct list_head d_lru; /* LRU list */ +- wait_queue_head_t *d_wait; /* in-lookup ones only */ ++ struct swait_queue_head *d_wait; /* in-lookup ones only */ + }; + struct list_head d_child; /* child of parent list */ + struct list_head d_subdirs; /* our children */ +@@ -231,7 +231,7 @@ extern void d_set_d_op(struct dentry *de + extern struct dentry * d_alloc(struct dentry *, const struct qstr *); + extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *); + extern struct dentry * d_alloc_parallel(struct dentry *, const struct qstr *, +- wait_queue_head_t *); ++ struct swait_queue_head *); + extern struct dentry * d_splice_alias(struct inode *, struct dentry *); + extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *); + extern struct dentry * d_exact_alias(struct dentry *, struct inode *); +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -1490,7 +1490,7 @@ struct nfs_unlinkdata { + struct nfs_removeargs args; + struct nfs_removeres res; + struct dentry *dentry; +- wait_queue_head_t wq; ++ struct swait_queue_head wq; + struct rpc_cred *cred; + struct nfs_fattr dir_attr; + long timeout; +--- a/kernel/sched/swait.c ++++ b/kernel/sched/swait.c +@@ -74,6 +74,7 @@ void swake_up_all(struct swait_queue_hea + if (!swait_active(q)) + return; + ++ WARN_ON(irqs_disabled()); + raw_spin_lock_irq(&q->lock); + list_splice_init(&q->task_list, &tmp); + while (!list_empty(&tmp)) { diff --git a/patches/features/all/rt/fs-jbd-replace-bh_state-lock.patch b/patches/features/all/rt/fs-jbd-replace-bh_state-lock.patch new file mode 100644 index 00000000000..75696351eae --- /dev/null +++ b/patches/features/all/rt/fs-jbd-replace-bh_state-lock.patch @@ -0,0 +1,97 @@ +From: Thomas Gleixner +Date: Fri, 18 Mar 2011 10:11:25 +0100 +Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +bit_spin_locks break under RT. + +Based on a previous patch from Steven Rostedt +Signed-off-by: Thomas Gleixner +-- + include/linux/buffer_head.h | 8 ++++++++ + include/linux/jbd2.h | 24 ++++++++++++++++++++++++ + 2 files changed, 32 insertions(+) + +--- a/include/linux/buffer_head.h ++++ b/include/linux/buffer_head.h +@@ -77,6 +77,10 @@ struct buffer_head { + atomic_t b_count; /* users using this buffer_head */ + #ifdef CONFIG_PREEMPT_RT_BASE + spinlock_t b_uptodate_lock; ++#if IS_ENABLED(CONFIG_JBD2) ++ spinlock_t b_state_lock; ++ spinlock_t b_journal_head_lock; ++#endif + #endif + }; + +@@ -108,6 +112,10 @@ static inline void buffer_head_init_lock + { + #ifdef CONFIG_PREEMPT_RT_BASE + spin_lock_init(&bh->b_uptodate_lock); ++#if IS_ENABLED(CONFIG_JBD2) ++ spin_lock_init(&bh->b_state_lock); ++ spin_lock_init(&bh->b_journal_head_lock); ++#endif + #endif + } + +--- a/include/linux/jbd2.h ++++ b/include/linux/jbd2.h +@@ -347,32 +347,56 @@ static inline struct journal_head *bh2jh + + static inline void jbd_lock_bh_state(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + bit_spin_lock(BH_State, &bh->b_state); ++#else ++ spin_lock(&bh->b_state_lock); ++#endif + } + + static inline int jbd_trylock_bh_state(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + return bit_spin_trylock(BH_State, &bh->b_state); ++#else ++ return spin_trylock(&bh->b_state_lock); ++#endif + } + + static inline int jbd_is_locked_bh_state(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + return bit_spin_is_locked(BH_State, &bh->b_state); ++#else ++ return spin_is_locked(&bh->b_state_lock); ++#endif + } + + static inline void jbd_unlock_bh_state(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + bit_spin_unlock(BH_State, &bh->b_state); ++#else ++ spin_unlock(&bh->b_state_lock); ++#endif + } + + static inline void jbd_lock_bh_journal_head(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + bit_spin_lock(BH_JournalHead, &bh->b_state); ++#else ++ spin_lock(&bh->b_journal_head_lock); ++#endif + } + + static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + bit_spin_unlock(BH_JournalHead, &bh->b_state); ++#else ++ spin_unlock(&bh->b_journal_head_lock); ++#endif + } + + #define J_ASSERT(assert) BUG_ON(!(assert)) diff --git a/patches/features/all/rt/fs-jbd2-pull-your-plug-when-waiting-for-space.patch b/patches/features/all/rt/fs-jbd2-pull-your-plug-when-waiting-for-space.patch new file mode 100644 index 00000000000..aa2bfb9b9d9 --- /dev/null +++ b/patches/features/all/rt/fs-jbd2-pull-your-plug-when-waiting-for-space.patch @@ -0,0 +1,32 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 17 Feb 2014 17:30:03 +0100 +Subject: fs: jbd2: pull your plug when waiting for space +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Two cps in parallel managed to stall the the ext4 fs. It seems that +journal code is either waiting for locks or sleeping waiting for +something to happen. This seems similar to what Mike observed on ext3, +here is his description: + +|With an -rt kernel, and a heavy sync IO load, tasks can jam +|up on journal locks without unplugging, which can lead to +|terminal IO starvation. Unplug and schedule when waiting +|for space. + + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/jbd2/checkpoint.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/fs/jbd2/checkpoint.c ++++ b/fs/jbd2/checkpoint.c +@@ -116,6 +116,8 @@ void __jbd2_log_wait_for_space(journal_t + nblocks = jbd2_space_needed(journal); + while (jbd2_log_space_left(journal) < nblocks) { + write_unlock(&journal->j_state_lock); ++ if (current->plug) ++ io_schedule(); + mutex_lock(&journal->j_checkpoint_mutex); + + /* diff --git a/patches/features/all/rt/fs-namespace-preemption-fix.patch b/patches/features/all/rt/fs-namespace-preemption-fix.patch new file mode 100644 index 00000000000..76311eae4fa --- /dev/null +++ b/patches/features/all/rt/fs-namespace-preemption-fix.patch @@ -0,0 +1,31 @@ +From: Thomas Gleixner +Date: Sun, 19 Jul 2009 08:44:27 -0500 +Subject: fs: namespace preemption fix +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On RT we cannot loop with preemption disabled here as +mnt_make_readonly() might have been preempted. We can safely enable +preemption while waiting for MNT_WRITE_HOLD to be cleared. Safe on !RT +as well. + +Signed-off-by: Thomas Gleixner + +--- + fs/namespace.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/fs/namespace.c ++++ b/fs/namespace.c +@@ -356,8 +356,11 @@ int __mnt_want_write(struct vfsmount *m) + * incremented count after it has set MNT_WRITE_HOLD. + */ + smp_mb(); +- while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) ++ while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) { ++ preempt_enable(); + cpu_relax(); ++ preempt_disable(); ++ } + /* + * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will + * be set to match its requirements. So we must not load that until diff --git a/patches/features/all/rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/patches/features/all/rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch new file mode 100644 index 00000000000..1880192034e --- /dev/null +++ b/patches/features/all/rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -0,0 +1,139 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 15 Sep 2016 10:51:27 +0200 +Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The RW semaphore had a reader side which used the _non_owner version +because it most likely took the reader lock in one thread and released it +in another which would cause lockdep to complain if the "regular" +version was used. +On -RT we need the owner because the rw lock is turned into a rtmutex. +The semaphores on the hand are "plain simple" and should work as +expected. We can't have multiple readers but on -RT we don't allow +multiple readers anyway so that is not a loss. + +Signed-off-by: Sebastian Andrzej Siewior +--- + fs/nfs/dir.c | 8 ++++++++ + fs/nfs/inode.c | 4 ++++ + fs/nfs/unlink.c | 31 +++++++++++++++++++++++++++---- + include/linux/nfs_fs.h | 4 ++++ + 4 files changed, 43 insertions(+), 4 deletions(-) + +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -1813,7 +1813,11 @@ int nfs_rmdir(struct inode *dir, struct + + trace_nfs_rmdir_enter(dir, dentry); + if (d_really_is_positive(dentry)) { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ down(&NFS_I(d_inode(dentry))->rmdir_sem); ++#else + down_write(&NFS_I(d_inode(dentry))->rmdir_sem); ++#endif + error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); + /* Ensure the VFS deletes this inode */ + switch (error) { +@@ -1823,7 +1827,11 @@ int nfs_rmdir(struct inode *dir, struct + case -ENOENT: + nfs_dentry_handle_enoent(dentry); + } ++#ifdef CONFIG_PREEMPT_RT_BASE ++ up(&NFS_I(d_inode(dentry))->rmdir_sem); ++#else + up_write(&NFS_I(d_inode(dentry))->rmdir_sem); ++#endif + } else + error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); + trace_nfs_rmdir_exit(dir, dentry, error); +--- a/fs/nfs/inode.c ++++ b/fs/nfs/inode.c +@@ -1957,7 +1957,11 @@ static void init_once(void *foo) + nfsi->nrequests = 0; + nfsi->commit_info.ncommit = 0; + atomic_set(&nfsi->commit_info.rpcs_out, 0); ++#ifdef CONFIG_PREEMPT_RT_BASE ++ sema_init(&nfsi->rmdir_sem, 1); ++#else + init_rwsem(&nfsi->rmdir_sem); ++#endif + nfs4_init_once(nfsi); + } + +--- a/fs/nfs/unlink.c ++++ b/fs/nfs/unlink.c +@@ -51,6 +51,29 @@ static void nfs_async_unlink_done(struct + rpc_restart_call_prepare(task); + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++static void nfs_down_anon(struct semaphore *sema) ++{ ++ down(sema); ++} ++ ++static void nfs_up_anon(struct semaphore *sema) ++{ ++ up(sema); ++} ++ ++#else ++static void nfs_down_anon(struct rw_semaphore *rwsem) ++{ ++ down_read_non_owner(rwsem); ++} ++ ++static void nfs_up_anon(struct rw_semaphore *rwsem) ++{ ++ up_read_non_owner(rwsem); ++} ++#endif ++ + /** + * nfs_async_unlink_release - Release the sillydelete data. + * @task: rpc_task of the sillydelete +@@ -64,7 +87,7 @@ static void nfs_async_unlink_release(voi + struct dentry *dentry = data->dentry; + struct super_block *sb = dentry->d_sb; + +- up_read_non_owner(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem); ++ nfs_up_anon(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem); + d_lookup_done(dentry); + nfs_free_unlinkdata(data); + dput(dentry); +@@ -117,10 +140,10 @@ static int nfs_call_unlink(struct dentry + struct inode *dir = d_inode(dentry->d_parent); + struct dentry *alias; + +- down_read_non_owner(&NFS_I(dir)->rmdir_sem); ++ nfs_down_anon(&NFS_I(dir)->rmdir_sem); + alias = d_alloc_parallel(dentry->d_parent, &data->args.name, &data->wq); + if (IS_ERR(alias)) { +- up_read_non_owner(&NFS_I(dir)->rmdir_sem); ++ nfs_up_anon(&NFS_I(dir)->rmdir_sem); + return 0; + } + if (!d_in_lookup(alias)) { +@@ -142,7 +165,7 @@ static int nfs_call_unlink(struct dentry + ret = 0; + spin_unlock(&alias->d_lock); + dput(alias); +- up_read_non_owner(&NFS_I(dir)->rmdir_sem); ++ nfs_up_anon(&NFS_I(dir)->rmdir_sem); + /* + * If we'd displaced old cached devname, free it. At that + * point dentry is definitely not a root, so we won't need +--- a/include/linux/nfs_fs.h ++++ b/include/linux/nfs_fs.h +@@ -165,7 +165,11 @@ struct nfs_inode { + + /* Readers: in-flight sillydelete RPC calls */ + /* Writers: rmdir */ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct semaphore rmdir_sem; ++#else + struct rw_semaphore rmdir_sem; ++#endif + + #if IS_ENABLED(CONFIG_NFS_V4) + struct nfs4_cached_acl *nfs4_acl; diff --git a/patches/features/all/rt/fs-ntfs-disable-interrupt-non-rt.patch b/patches/features/all/rt/fs-ntfs-disable-interrupt-non-rt.patch new file mode 100644 index 00000000000..bad318fa2f2 --- /dev/null +++ b/patches/features/all/rt/fs-ntfs-disable-interrupt-non-rt.patch @@ -0,0 +1,76 @@ +From: Mike Galbraith +Date: Fri, 3 Jul 2009 08:44:12 -0500 +Subject: fs: ntfs: disable interrupt only on !RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote: +> * Nick Piggin wrote: +> +> > > [10138.175796] [] show_trace+0x12/0x14 +> > > [10138.180291] [] dump_stack+0x16/0x18 +> > > [10138.184769] [] native_smp_call_function_mask+0x138/0x13d +> > > [10138.191117] [] smp_call_function+0x1e/0x24 +> > > [10138.196210] [] on_each_cpu+0x25/0x50 +> > > [10138.200807] [] flush_tlb_all+0x1e/0x20 +> > > [10138.205553] [] kmap_high+0x1b6/0x417 +> > > [10138.210118] [] kmap+0x4d/0x4f +> > > [10138.214102] [] ntfs_end_buffer_async_read+0x228/0x2f9 +> > > [10138.220163] [] end_bio_bh_io_sync+0x26/0x3f +> > > [10138.225352] [] bio_endio+0x42/0x6d +> > > [10138.229769] [] __end_that_request_first+0x115/0x4ac +> > > [10138.235682] [] end_that_request_chunk+0x8/0xa +> > > [10138.241052] [] ide_end_request+0x55/0x10a +> > > [10138.246058] [] ide_dma_intr+0x6f/0xac +> > > [10138.250727] [] ide_intr+0x93/0x1e0 +> > > [10138.255125] [] handle_IRQ_event+0x5c/0xc9 +> > +> > Looks like ntfs is kmap()ing from interrupt context. Should be using +> > kmap_atomic instead, I think. +> +> it's not atomic interrupt context but irq thread context - and -rt +> remaps kmap_atomic() to kmap() internally. + +Hm. Looking at the change to mm/bounce.c, perhaps I should do this +instead? + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + fs/ntfs/aops.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/fs/ntfs/aops.c ++++ b/fs/ntfs/aops.c +@@ -92,13 +92,13 @@ static void ntfs_end_buffer_async_read(s + ofs = 0; + if (file_ofs < init_size) + ofs = init_size - file_ofs; +- local_irq_save(flags); ++ local_irq_save_nort(flags); + kaddr = kmap_atomic(page); + memset(kaddr + bh_offset(bh) + ofs, 0, + bh->b_size - ofs); + flush_dcache_page(page); + kunmap_atomic(kaddr); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + } else { + clear_buffer_uptodate(bh); +@@ -143,13 +143,13 @@ static void ntfs_end_buffer_async_read(s + recs = PAGE_SIZE / rec_size; + /* Should have been verified before we got here... */ + BUG_ON(!recs); +- local_irq_save(flags); ++ local_irq_save_nort(flags); + kaddr = kmap_atomic(page); + for (i = 0; i < recs; i++) + post_read_mst_fixup((NTFS_RECORD*)(kaddr + + i * rec_size), rec_size); + kunmap_atomic(kaddr); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + flush_dcache_page(page); + if (likely(page_uptodate && !PageError(page))) + SetPageUptodate(page); diff --git a/patches/features/all/rt/fs-replace-bh_uptodate_lock-for-rt.patch b/patches/features/all/rt/fs-replace-bh_uptodate_lock-for-rt.patch new file mode 100644 index 00000000000..760ef0b60be --- /dev/null +++ b/patches/features/all/rt/fs-replace-bh_uptodate_lock-for-rt.patch @@ -0,0 +1,162 @@ +From: Thomas Gleixner +Date: Fri, 18 Mar 2011 09:18:52 +0100 +Subject: buffer_head: Replace bh_uptodate_lock for -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Wrap the bit_spin_lock calls into a separate inline and add the RT +replacements with a real spinlock. + +Signed-off-by: Thomas Gleixner +--- + fs/buffer.c | 21 +++++++-------------- + fs/ntfs/aops.c | 10 +++------- + include/linux/buffer_head.h | 34 ++++++++++++++++++++++++++++++++++ + 3 files changed, 44 insertions(+), 21 deletions(-) + +--- a/fs/buffer.c ++++ b/fs/buffer.c +@@ -301,8 +301,7 @@ static void end_buffer_async_read(struct + * decide that the page is now completely done. + */ + first = page_buffers(page); +- local_irq_save(flags); +- bit_spin_lock(BH_Uptodate_Lock, &first->b_state); ++ flags = bh_uptodate_lock_irqsave(first); + clear_buffer_async_read(bh); + unlock_buffer(bh); + tmp = bh; +@@ -315,8 +314,7 @@ static void end_buffer_async_read(struct + } + tmp = tmp->b_this_page; + } while (tmp != bh); +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); ++ bh_uptodate_unlock_irqrestore(first, flags); + + /* + * If none of the buffers had errors and they are all +@@ -328,9 +326,7 @@ static void end_buffer_async_read(struct + return; + + still_busy: +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); +- return; ++ bh_uptodate_unlock_irqrestore(first, flags); + } + + /* +@@ -358,8 +354,7 @@ void end_buffer_async_write(struct buffe + } + + first = page_buffers(page); +- local_irq_save(flags); +- bit_spin_lock(BH_Uptodate_Lock, &first->b_state); ++ flags = bh_uptodate_lock_irqsave(first); + + clear_buffer_async_write(bh); + unlock_buffer(bh); +@@ -371,15 +366,12 @@ void end_buffer_async_write(struct buffe + } + tmp = tmp->b_this_page; + } +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); ++ bh_uptodate_unlock_irqrestore(first, flags); + end_page_writeback(page); + return; + + still_busy: +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); +- return; ++ bh_uptodate_unlock_irqrestore(first, flags); + } + EXPORT_SYMBOL(end_buffer_async_write); + +@@ -3383,6 +3375,7 @@ struct buffer_head *alloc_buffer_head(gf + struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags); + if (ret) { + INIT_LIST_HEAD(&ret->b_assoc_buffers); ++ buffer_head_init_locks(ret); + preempt_disable(); + __this_cpu_inc(bh_accounting.nr); + recalc_bh_state(); +--- a/fs/ntfs/aops.c ++++ b/fs/ntfs/aops.c +@@ -107,8 +107,7 @@ static void ntfs_end_buffer_async_read(s + "0x%llx.", (unsigned long long)bh->b_blocknr); + } + first = page_buffers(page); +- local_irq_save(flags); +- bit_spin_lock(BH_Uptodate_Lock, &first->b_state); ++ flags = bh_uptodate_lock_irqsave(first); + clear_buffer_async_read(bh); + unlock_buffer(bh); + tmp = bh; +@@ -123,8 +122,7 @@ static void ntfs_end_buffer_async_read(s + } + tmp = tmp->b_this_page; + } while (tmp != bh); +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); ++ bh_uptodate_unlock_irqrestore(first, flags); + /* + * If none of the buffers had errors then we can set the page uptodate, + * but we first have to perform the post read mst fixups, if the +@@ -159,9 +157,7 @@ static void ntfs_end_buffer_async_read(s + unlock_page(page); + return; + still_busy: +- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state); +- local_irq_restore(flags); +- return; ++ bh_uptodate_unlock_irqrestore(first, flags); + } + + /** +--- a/include/linux/buffer_head.h ++++ b/include/linux/buffer_head.h +@@ -75,8 +75,42 @@ struct buffer_head { + struct address_space *b_assoc_map; /* mapping this buffer is + associated with */ + atomic_t b_count; /* users using this buffer_head */ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ spinlock_t b_uptodate_lock; ++#endif + }; + ++static inline unsigned long bh_uptodate_lock_irqsave(struct buffer_head *bh) ++{ ++ unsigned long flags; ++ ++#ifndef CONFIG_PREEMPT_RT_BASE ++ local_irq_save(flags); ++ bit_spin_lock(BH_Uptodate_Lock, &bh->b_state); ++#else ++ spin_lock_irqsave(&bh->b_uptodate_lock, flags); ++#endif ++ return flags; ++} ++ ++static inline void ++bh_uptodate_unlock_irqrestore(struct buffer_head *bh, unsigned long flags) ++{ ++#ifndef CONFIG_PREEMPT_RT_BASE ++ bit_spin_unlock(BH_Uptodate_Lock, &bh->b_state); ++ local_irq_restore(flags); ++#else ++ spin_unlock_irqrestore(&bh->b_uptodate_lock, flags); ++#endif ++} ++ ++static inline void buffer_head_init_locks(struct buffer_head *bh) ++{ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ spin_lock_init(&bh->b_uptodate_lock); ++#endif ++} ++ + /* + * macro tricks to expand the set_buffer_foo(), clear_buffer_foo() + * and buffer_foo() functions. diff --git a/patches/features/all/rt/ftrace-Fix-trace-header-alignment.patch b/patches/features/all/rt/ftrace-Fix-trace-header-alignment.patch new file mode 100644 index 00000000000..9227ff3b051 --- /dev/null +++ b/patches/features/all/rt/ftrace-Fix-trace-header-alignment.patch @@ -0,0 +1,63 @@ +From: Mike Galbraith +Date: Sun, 16 Oct 2016 05:08:30 +0200 +Subject: [PATCH] ftrace: Fix trace header alignment +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Line up helper arrows to the right column. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Mike Galbraith +[bigeasy: fixup function tracer header] +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/trace/trace.c | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -2896,17 +2896,17 @@ get_total_entries(struct trace_buffer *b + + static void print_lat_help_header(struct seq_file *m) + { +- seq_puts(m, "# _--------=> CPU# \n" +- "# / _-------=> irqs-off \n" +- "# | / _------=> need-resched \n" +- "# || / _-----=> need-resched_lazy \n" +- "# ||| / _----=> hardirq/softirq \n" +- "# |||| / _---=> preempt-depth \n" +- "# ||||| / _--=> preempt-lazy-depth\n" +- "# |||||| / _-=> migrate-disable \n" +- "# ||||||| / delay \n" +- "# cmd pid |||||||| time | caller \n" +- "# \\ / |||||||| \\ | / \n"); ++ seq_puts(m, "# _--------=> CPU# \n" ++ "# / _-------=> irqs-off \n" ++ "# | / _------=> need-resched \n" ++ "# || / _-----=> need-resched_lazy \n" ++ "# ||| / _----=> hardirq/softirq \n" ++ "# |||| / _---=> preempt-depth \n" ++ "# ||||| / _--=> preempt-lazy-depth\n" ++ "# |||||| / _-=> migrate-disable \n" ++ "# ||||||| / delay \n" ++ "# cmd pid |||||||| time | caller \n" ++ "# \\ / |||||||| \\ | / \n"); + } + + static void print_event_info(struct trace_buffer *buf, struct seq_file *m) +@@ -2935,11 +2935,11 @@ static void print_func_help_header_irq(s + "# |/ _-----=> need-resched_lazy\n" + "# || / _---=> hardirq/softirq\n" + "# ||| / _--=> preempt-depth\n" +- "# |||| /_--=> preempt-lazy-depth\n" +- "# ||||| _-=> migrate-disable \n" +- "# ||||| / delay\n" +- "# TASK-PID CPU# |||||| TIMESTAMP FUNCTION\n" +- "# | | | |||||| | |\n"); ++ "# |||| / _-=> preempt-lazy-depth\n" ++ "# ||||| / _-=> migrate-disable \n" ++ "# |||||| / delay\n" ++ "# TASK-PID CPU# ||||||| TIMESTAMP FUNCTION\n" ++ "# | | | ||||||| | |\n"); + } + + void diff --git a/patches/features/all/rt/ftrace-migrate-disable-tracing.patch b/patches/features/all/rt/ftrace-migrate-disable-tracing.patch new file mode 100644 index 00000000000..f52afcd402d --- /dev/null +++ b/patches/features/all/rt/ftrace-migrate-disable-tracing.patch @@ -0,0 +1,74 @@ +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 21:56:42 +0200 +Subject: trace: Add migrate-disabled counter to tracing output +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Signed-off-by: Thomas Gleixner +--- + include/linux/trace_events.h | 2 ++ + kernel/trace/trace.c | 9 ++++++--- + kernel/trace/trace_events.c | 2 ++ + kernel/trace/trace_output.c | 5 +++++ + 4 files changed, 15 insertions(+), 3 deletions(-) + +--- a/include/linux/trace_events.h ++++ b/include/linux/trace_events.h +@@ -56,6 +56,8 @@ struct trace_entry { + unsigned char flags; + unsigned char preempt_count; + int pid; ++ unsigned short migrate_disable; ++ unsigned short padding; + }; + + #define TRACE_EVENT_TYPE_MAX \ +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -1909,6 +1909,8 @@ tracing_generic_entry_update(struct trac + ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) | + (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) | + (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0); ++ ++ entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0; + } + EXPORT_SYMBOL_GPL(tracing_generic_entry_update); + +@@ -2897,9 +2899,10 @@ static void print_lat_help_header(struct + "# | / _----=> need-resched \n" + "# || / _---=> hardirq/softirq \n" + "# ||| / _--=> preempt-depth \n" +- "# |||| / delay \n" +- "# cmd pid ||||| time | caller \n" +- "# \\ / ||||| \\ | / \n"); ++ "# |||| / _--=> migrate-disable\n" ++ "# ||||| / delay \n" ++ "# cmd pid |||||| time | caller \n" ++ "# \\ / ||||| \\ | / \n"); + } + + static void print_event_info(struct trace_buffer *buf, struct seq_file *m) +--- a/kernel/trace/trace_events.c ++++ b/kernel/trace/trace_events.c +@@ -187,6 +187,8 @@ static int trace_define_common_fields(vo + __common_field(unsigned char, flags); + __common_field(unsigned char, preempt_count); + __common_field(int, pid); ++ __common_field(unsigned short, migrate_disable); ++ __common_field(unsigned short, padding); + + return ret; + } +--- a/kernel/trace/trace_output.c ++++ b/kernel/trace/trace_output.c +@@ -432,6 +432,11 @@ int trace_print_lat_fmt(struct trace_seq + else + trace_seq_putc(s, '.'); + ++ if (entry->migrate_disable) ++ trace_seq_printf(s, "%x", entry->migrate_disable); ++ else ++ trace_seq_putc(s, '.'); ++ + return !trace_seq_has_overflowed(s); + } + diff --git a/patches/features/all/rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/patches/features/all/rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch new file mode 100644 index 00000000000..14ba25061f7 --- /dev/null +++ b/patches/features/all/rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch @@ -0,0 +1,43 @@ +From: Thomas Gleixner +Date: Fri, 1 Mar 2013 11:17:42 +0100 +Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +In exit_pi_state_list() we have the following locking construct: + + spin_lock(&hb->lock); + raw_spin_lock_irq(&curr->pi_lock); + + ... + spin_unlock(&hb->lock); + +In !RT this works, but on RT the migrate_enable() function which is +called from spin_unlock() sees atomic context due to the held pi_lock +and just decrements the migrate_disable_atomic counter of the +task. Now the next call to migrate_disable() sees the counter being +negative and issues a warning. That check should be in +migrate_enable() already. + +Fix this by dropping pi_lock before unlocking hb->lock and reaquire +pi_lock after that again. This is safe as the loop code reevaluates +head again under the pi_lock. + +Reported-by: Yong Zhang +Signed-off-by: Thomas Gleixner +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/futex.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -904,7 +904,9 @@ void exit_pi_state_list(struct task_stru + * task still owns the PI-state: + */ + if (head->next != next) { ++ raw_spin_unlock_irq(&curr->pi_lock); + spin_unlock(&hb->lock); ++ raw_spin_lock_irq(&curr->pi_lock); + continue; + } + diff --git a/patches/features/all/rt/futex-requeue-pi-fix.patch b/patches/features/all/rt/futex-requeue-pi-fix.patch new file mode 100644 index 00000000000..b0b53f8240d --- /dev/null +++ b/patches/features/all/rt/futex-requeue-pi-fix.patch @@ -0,0 +1,114 @@ +From: Steven Rostedt +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: futex: Fix bug on when a requeued RT task times out +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Requeue with timeout causes a bug with PREEMPT_RT_FULL. + +The bug comes from a timed out condition. + + + TASK 1 TASK 2 + ------ ------ + futex_wait_requeue_pi() + futex_wait_queue_me() + + + double_lock_hb(); + + raw_spin_lock(pi_lock); + if (current->pi_blocked_on) { + } else { + current->pi_blocked_on = PI_WAKE_INPROGRESS; + run_spin_unlock(pi_lock); + spin_lock(hb->lock); <-- blocked! + + + plist_for_each_entry_safe(this) { + rt_mutex_start_proxy_lock(); + task_blocks_on_rt_mutex(); + BUG_ON(task->pi_blocked_on)!!!! + +The BUG_ON() actually has a check for PI_WAKE_INPROGRESS, but the +problem is that, after TASK 1 sets PI_WAKE_INPROGRESS, it then tries to +grab the hb->lock, which it fails to do so. As the hb->lock is a mutex, +it will block and set the "pi_blocked_on" to the hb->lock. + +When TASK 2 goes to requeue it, the check for PI_WAKE_INPROGESS fails +because the task1's pi_blocked_on is no longer set to that, but instead, +set to the hb->lock. + +The fix: + +When calling rt_mutex_start_proxy_lock() a check is made to see +if the proxy tasks pi_blocked_on is set. If so, exit out early. +Otherwise set it to a new flag PI_REQUEUE_INPROGRESS, which notifies +the proxy task that it is being requeued, and will handle things +appropriately. + + +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner +--- + kernel/locking/rtmutex.c | 32 +++++++++++++++++++++++++++++++- + kernel/locking/rtmutex_common.h | 1 + + 2 files changed, 32 insertions(+), 1 deletion(-) + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -135,7 +135,8 @@ static void fixup_rt_mutex_waiters(struc + + static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter) + { +- return waiter && waiter != PI_WAKEUP_INPROGRESS; ++ return waiter && waiter != PI_WAKEUP_INPROGRESS && ++ waiter != PI_REQUEUE_INPROGRESS; + } + + /* +@@ -1704,6 +1705,35 @@ int rt_mutex_start_proxy_lock(struct rt_ + return 1; + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ /* ++ * In PREEMPT_RT there's an added race. ++ * If the task, that we are about to requeue, times out, ++ * it can set the PI_WAKEUP_INPROGRESS. This tells the requeue ++ * to skip this task. But right after the task sets ++ * its pi_blocked_on to PI_WAKEUP_INPROGRESS it can then ++ * block on the spin_lock(&hb->lock), which in RT is an rtmutex. ++ * This will replace the PI_WAKEUP_INPROGRESS with the actual ++ * lock that it blocks on. We *must not* place this task ++ * on this proxy lock in that case. ++ * ++ * To prevent this race, we first take the task's pi_lock ++ * and check if it has updated its pi_blocked_on. If it has, ++ * we assume that it woke up and we return -EAGAIN. ++ * Otherwise, we set the task's pi_blocked_on to ++ * PI_REQUEUE_INPROGRESS, so that if the task is waking up ++ * it will know that we are in the process of requeuing it. ++ */ ++ raw_spin_lock(&task->pi_lock); ++ if (task->pi_blocked_on) { ++ raw_spin_unlock(&task->pi_lock); ++ raw_spin_unlock_irq(&lock->wait_lock); ++ return -EAGAIN; ++ } ++ task->pi_blocked_on = PI_REQUEUE_INPROGRESS; ++ raw_spin_unlock(&task->pi_lock); ++#endif ++ + /* We enforce deadlock detection for futexes */ + ret = task_blocks_on_rt_mutex(lock, waiter, task, + RT_MUTEX_FULL_CHAINWALK); +--- a/kernel/locking/rtmutex_common.h ++++ b/kernel/locking/rtmutex_common.h +@@ -99,6 +99,7 @@ enum rtmutex_chainwalk { + * PI-futex support (proxy locking functions, etc.): + */ + #define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1) ++#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2) + + extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock); + extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, diff --git a/patches/features/all/rt/genirq-disable-irqpoll-on-rt.patch b/patches/features/all/rt/genirq-disable-irqpoll-on-rt.patch new file mode 100644 index 00000000000..c08f04231c2 --- /dev/null +++ b/patches/features/all/rt/genirq-disable-irqpoll-on-rt.patch @@ -0,0 +1,38 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:57 -0500 +Subject: genirq: Disable irqpoll on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Creates long latencies for no value + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + kernel/irq/spurious.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/kernel/irq/spurious.c ++++ b/kernel/irq/spurious.c +@@ -442,6 +442,10 @@ MODULE_PARM_DESC(noirqdebug, "Disable ir + + static int __init irqfixup_setup(char *str) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ pr_warn("irqfixup boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n"); ++ return 1; ++#endif + irqfixup = 1; + printk(KERN_WARNING "Misrouted IRQ fixup support enabled.\n"); + printk(KERN_WARNING "This may impact system performance.\n"); +@@ -454,6 +458,10 @@ module_param(irqfixup, int, 0644); + + static int __init irqpoll_setup(char *str) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ pr_warn("irqpoll boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n"); ++ return 1; ++#endif + irqfixup = 2; + printk(KERN_WARNING "Misrouted IRQ fixup and polling support " + "enabled\n"); diff --git a/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch b/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch new file mode 100644 index 00000000000..2d79fe6e599 --- /dev/null +++ b/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch @@ -0,0 +1,137 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 21 Aug 2013 17:48:46 +0200 +Subject: genirq: Do not invoke the affinity callback via a workqueue on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Joe Korty reported, that __irq_set_affinity_locked() schedules a +workqueue while holding a rawlock which results in a might_sleep() +warning. +This patch uses swork_queue() instead. + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/scsi/qla2xxx/qla_isr.c | 4 +++ + include/linux/interrupt.h | 6 +++++ + kernel/irq/manage.c | 43 ++++++++++++++++++++++++++++++++++++++--- + 3 files changed, 50 insertions(+), 3 deletions(-) + +--- a/drivers/scsi/qla2xxx/qla_isr.c ++++ b/drivers/scsi/qla2xxx/qla_isr.c +@@ -3125,7 +3125,11 @@ qla24xx_enable_msix(struct qla_hw_data * + * kref_put(). + */ + kref_get(&qentry->irq_notify.kref); ++#ifdef CONFIG_PREEMPT_RT_BASE ++ swork_queue(&qentry->irq_notify.swork); ++#else + schedule_work(&qentry->irq_notify.work); ++#endif + } + + /* +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -218,6 +219,7 @@ extern void resume_device_irqs(void); + * struct irq_affinity_notify - context for notification of IRQ affinity changes + * @irq: Interrupt to which notification applies + * @kref: Reference count, for internal use ++ * @swork: Swork item, for internal use + * @work: Work item, for internal use + * @notify: Function to be called on change. This will be + * called in process context. +@@ -229,7 +231,11 @@ extern void resume_device_irqs(void); + struct irq_affinity_notify { + unsigned int irq; + struct kref kref; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct swork_event swork; ++#else + struct work_struct work; ++#endif + void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask); + void (*release)(struct kref *ref); + }; +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -235,7 +235,12 @@ int irq_set_affinity_locked(struct irq_d + + if (desc->affinity_notify) { + kref_get(&desc->affinity_notify->kref); ++ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ swork_queue(&desc->affinity_notify->swork); ++#else + schedule_work(&desc->affinity_notify->work); ++#endif + } + irqd_set(data, IRQD_AFFINITY_SET); + +@@ -273,10 +278,8 @@ int irq_set_affinity_hint(unsigned int i + } + EXPORT_SYMBOL_GPL(irq_set_affinity_hint); + +-static void irq_affinity_notify(struct work_struct *work) ++static void _irq_affinity_notify(struct irq_affinity_notify *notify) + { +- struct irq_affinity_notify *notify = +- container_of(work, struct irq_affinity_notify, work); + struct irq_desc *desc = irq_to_desc(notify->irq); + cpumask_var_t cpumask; + unsigned long flags; +@@ -298,6 +301,35 @@ static void irq_affinity_notify(struct w + kref_put(¬ify->kref, notify->release); + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++static void init_helper_thread(void) ++{ ++ static int init_sworker_once; ++ ++ if (init_sworker_once) ++ return; ++ if (WARN_ON(swork_get())) ++ return; ++ init_sworker_once = 1; ++} ++ ++static void irq_affinity_notify(struct swork_event *swork) ++{ ++ struct irq_affinity_notify *notify = ++ container_of(swork, struct irq_affinity_notify, swork); ++ _irq_affinity_notify(notify); ++} ++ ++#else ++ ++static void irq_affinity_notify(struct work_struct *work) ++{ ++ struct irq_affinity_notify *notify = ++ container_of(work, struct irq_affinity_notify, work); ++ _irq_affinity_notify(notify); ++} ++#endif ++ + /** + * irq_set_affinity_notifier - control notification of IRQ affinity changes + * @irq: Interrupt for which to enable/disable notification +@@ -326,7 +358,12 @@ irq_set_affinity_notifier(unsigned int i + if (notify) { + notify->irq = irq; + kref_init(¬ify->kref); ++#ifdef CONFIG_PREEMPT_RT_BASE ++ INIT_SWORK(¬ify->swork, irq_affinity_notify); ++ init_helper_thread(); ++#else + INIT_WORK(¬ify->work, irq_affinity_notify); ++#endif + } + + raw_spin_lock_irqsave(&desc->lock, flags); diff --git a/patches/features/all/rt/genirq-force-threading.patch b/patches/features/all/rt/genirq-force-threading.patch new file mode 100644 index 00000000000..40173a85d0f --- /dev/null +++ b/patches/features/all/rt/genirq-force-threading.patch @@ -0,0 +1,49 @@ +Subject: genirq: Force interrupt thread on RT +From: Thomas Gleixner +Date: Sun, 03 Apr 2011 11:57:29 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Force threaded_irqs and optimize the code (force_irqthreads) in regard +to this. + +Signed-off-by: Thomas Gleixner +--- + include/linux/interrupt.h | 6 +++++- + kernel/irq/manage.c | 2 ++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -406,9 +406,13 @@ extern int irq_set_irqchip_state(unsigne + bool state); + + #ifdef CONFIG_IRQ_FORCED_THREADING ++# ifndef CONFIG_PREEMPT_RT_BASE + extern bool force_irqthreads; ++# else ++# define force_irqthreads (true) ++# endif + #else +-#define force_irqthreads (0) ++#define force_irqthreads (false) + #endif + + #ifndef __ARCH_SET_SOFTIRQ_PENDING +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -22,6 +22,7 @@ + #include "internals.h" + + #ifdef CONFIG_IRQ_FORCED_THREADING ++# ifndef CONFIG_PREEMPT_RT_BASE + __read_mostly bool force_irqthreads; + + static int __init setup_forced_irqthreads(char *arg) +@@ -30,6 +31,7 @@ static int __init setup_forced_irqthread + return 0; + } + early_param("threadirqs", setup_forced_irqthreads); ++# endif + #endif + + static void __synchronize_hardirq(struct irq_desc *desc) diff --git a/patches/features/all/rt/genirq-update-irq_set_irqchip_state-documentation.patch b/patches/features/all/rt/genirq-update-irq_set_irqchip_state-documentation.patch new file mode 100644 index 00000000000..0e8e0c24e94 --- /dev/null +++ b/patches/features/all/rt/genirq-update-irq_set_irqchip_state-documentation.patch @@ -0,0 +1,26 @@ +From: Josh Cartwright +Date: Thu, 11 Feb 2016 11:54:00 -0600 +Subject: genirq: update irq_set_irqchip_state documentation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On -rt kernels, the use of migrate_disable()/migrate_enable() is +sufficient to guarantee a task isn't moved to another CPU. Update the +irq_set_irqchip_state() documentation to reflect this. + +Signed-off-by: Josh Cartwright +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/irq/manage.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -2111,7 +2111,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state) + * This call sets the internal irqchip state of an interrupt, + * depending on the value of @which. + * +- * This function should be called with preemption disabled if the ++ * This function should be called with migration disabled if the + * interrupt controller has per-cpu registers. + */ + int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, diff --git a/patches/features/all/rt/genpatch.py b/patches/features/all/rt/genpatch.py new file mode 100755 index 00000000000..6253a4ece97 --- /dev/null +++ b/patches/features/all/rt/genpatch.py @@ -0,0 +1,110 @@ +#!/usr/bin/python3 + +import errno, io, os, os.path, re, shutil, subprocess, sys, tempfile + +def main(source, version=None): + patch_dir = 'debian/patches' + rt_patch_dir = 'features/all/rt' + series_name = 'series-rt' + old_series = set() + new_series = set() + + try: + with open(os.path.join(patch_dir, series_name), 'r') as series_fh: + for line in series_fh: + name = line.strip() + if name != '' and name[0] != '#': + old_series.add(name) + except FileNotFoundError: + pass + + with open(os.path.join(patch_dir, series_name), 'w') as series_fh: + # Add directory prefix to all filenames. + # Add Origin to all patch headers. + def add_patch(name, source_patch, origin): + name = os.path.join(rt_patch_dir, name) + path = os.path.join(patch_dir, name) + try: + os.unlink(path) + except FileNotFoundError: + pass + with open(path, 'w') as patch: + in_header = True + for line in source_patch: + if in_header and re.match(r'^(\n|[^\w\s]|Index:)', line): + patch.write('Origin: %s\n' % origin) + if line != '\n': + patch.write('\n') + in_header = False + patch.write(line) + series_fh.write(name) + series_fh.write('\n') + new_series.add(name) + + if os.path.isdir(os.path.join(source, '.git')): + # Export rebased branch from stable-rt git as patch series + up_ver = re.sub(r'-rt\d+$', '', version) + args = ['git', 'format-patch', 'v%s..v%s-rebase' % (up_ver, version)] + env = os.environ.copy() + env['GIT_DIR'] = os.path.join(source, '.git') + child = subprocess.Popen(args, + cwd=os.path.join(patch_dir, rt_patch_dir), + env=env, stdout=subprocess.PIPE) + with io.open(child.stdout.fileno(), encoding='utf-8') as pipe: + for line in pipe: + name = line.strip('\n') + with open(os.path.join(patch_dir, rt_patch_dir, name)) as \ + source_patch: + patch_from = source_patch.readline() + match = re.match(r'From ([0-9a-f]{40}) ', patch_from) + assert match + origin = 'https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=%s' % match.group(1) + add_patch(name, source_patch, origin) + else: + # Get version and upstream version + if version is None: + match = re.search(r'(?:^|/)patches-(.+)\.tar\.[gx]z$', source) + assert match, 'no version specified or found in filename' + version = match.group(1) + match = re.match(r'^(\d+\.\d+)(?:\.\d+|-rc\d+)?-rt\d+$', version) + assert match, 'could not parse version string' + up_ver = match.group(1) + + temp_dir = tempfile.mkdtemp(prefix='rt-genpatch', dir='debian') + try: + # Unpack tarball + subprocess.check_call(['tar', '-C', temp_dir, '-xaf', source]) + source_dir = os.path.join(temp_dir, 'patches') + assert os.path.isdir(source_dir), 'tarball does not contain patches directory' + + # Copy patch series + origin = 'https://www.kernel.org/pub/linux/kernel/projects/rt/%s/older/patches-%s.tar.xz' % (up_ver, version) + with open(os.path.join(source_dir, 'series'), 'r') as \ + source_series_fh: + for line in source_series_fh: + name = line.strip() + if name != '' and name[0] != '#': + with open(os.path.join(source_dir, name)) as source_patch: + add_patch(name, source_patch, origin) + else: + # Leave comments and empty lines unchanged + series_fh.write(line) + finally: + shutil.rmtree(temp_dir) + + for name in new_series: + if name in old_series: + old_series.remove(name) + else: + print('Added patch', os.path.join(patch_dir, name)) + + for name in old_series: + print('Obsoleted patch', os.path.join(patch_dir, name)) + +if __name__ == '__main__': + if not (1 <= len(sys.argv) <= 3): + print('Usage: %s {TAR [RT-VERSION] | REPO RT-VERSION}' % sys.argv[0], file=sys.stderr) + print('TAR is a tarball of patches.', file=sys.stderr) + print('REPO is a git repo containing the given RT-VERSION.', file=sys.stderr) + sys.exit(2) + main(*sys.argv[1:]) diff --git a/patches/features/all/rt/gpu_don_t_check_for_the_lock_owner.patch b/patches/features/all/rt/gpu_don_t_check_for_the_lock_owner.patch new file mode 100644 index 00000000000..7627c9cd281 --- /dev/null +++ b/patches/features/all/rt/gpu_don_t_check_for_the_lock_owner.patch @@ -0,0 +1,33 @@ +From: Sebastian Andrzej Siewior +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: gpu: don't check for the lock owner. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/gpu/drm/i915/i915_gem_shrinker.c | 2 +- + drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_gem_shrinker.c ++++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c +@@ -40,7 +40,7 @@ static bool mutex_is_locked_by(struct mu + if (!mutex_is_locked(mutex)) + return false; + +-#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER) ++#if (defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER)) && !defined(CONFIG_PREEMPT_RT_BASE) + return mutex->owner == task; + #else + /* Since UP may be pre-empted, we cannot assume that we own the lock */ +--- a/drivers/gpu/drm/msm/msm_gem_shrinker.c ++++ b/drivers/gpu/drm/msm/msm_gem_shrinker.c +@@ -23,7 +23,7 @@ static bool mutex_is_locked_by(struct mu + if (!mutex_is_locked(mutex)) + return false; + +-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_MUTEXES) ++#if (defined(CONFIG_SMP) || defined(CONFIG_DEBUG_MUTEXES)) && !defined(CONFIG_PREEMPT_RT_BASE) + return mutex->owner == task; + #else + /* Since UP may be pre-empted, we cannot assume that we own the lock */ diff --git a/patches/features/all/rt/hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch b/patches/features/all/rt/hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch new file mode 100644 index 00000000000..3816cc36de7 --- /dev/null +++ b/patches/features/all/rt/hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch @@ -0,0 +1,47 @@ +From: Mike Galbraith +Date: Tue, 24 Mar 2015 08:14:49 +0100 +Subject: hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +do_set_cpus_allowed() is not safe vs ->sched_class change. + +crash> bt +PID: 11676 TASK: ffff88026f979da0 CPU: 22 COMMAND: "sync_unplug/22" + #0 [ffff880274d25bc8] machine_kexec at ffffffff8103b41c + #1 [ffff880274d25c18] crash_kexec at ffffffff810d881a + #2 [ffff880274d25cd8] oops_end at ffffffff81525818 + #3 [ffff880274d25cf8] do_invalid_op at ffffffff81003096 + #4 [ffff880274d25d90] invalid_op at ffffffff8152d3de + [exception RIP: set_cpus_allowed_rt+18] + RIP: ffffffff8109e012 RSP: ffff880274d25e48 RFLAGS: 00010202 + RAX: ffffffff8109e000 RBX: ffff88026f979da0 RCX: ffff8802770cb6e8 + RDX: 0000000000000000 RSI: ffffffff81add700 RDI: ffff88026f979da0 + RBP: ffff880274d25e78 R8: ffffffff816112e0 R9: 0000000000000001 + R10: 0000000000000001 R11: 0000000000011940 R12: ffff88026f979da0 + R13: ffff8802770cb6d0 R14: ffff880274d25fd8 R15: 0000000000000000 + ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 + #5 [ffff880274d25e60] do_set_cpus_allowed at ffffffff8108e65f + #6 [ffff880274d25e80] sync_unplug_thread at ffffffff81058c08 + #7 [ffff880274d25ed8] kthread at ffffffff8107cad6 + #8 [ffff880274d25f50] ret_from_fork at ffffffff8152bbbc +crash> task_struct ffff88026f979da0 | grep class + sched_class = 0xffffffff816111e0 , + +Signed-off-by: Mike Galbraith + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/cpu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -418,7 +418,7 @@ static int sync_unplug_thread(void *data + * we don't want any more work on this CPU. + */ + current->flags &= ~PF_NO_SETAFFINITY; +- do_set_cpus_allowed(current, cpu_present_mask); ++ set_cpus_allowed_ptr(current, cpu_present_mask); + migrate_me(); + return 0; + } diff --git a/patches/features/all/rt/hotplug-light-get-online-cpus.patch b/patches/features/all/rt/hotplug-light-get-online-cpus.patch new file mode 100644 index 00000000000..2550619fe1f --- /dev/null +++ b/patches/features/all/rt/hotplug-light-get-online-cpus.patch @@ -0,0 +1,198 @@ +Subject: hotplug: Lightweight get online cpus +From: Thomas Gleixner +Date: Wed, 15 Jun 2011 12:36:06 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +get_online_cpus() is a heavy weight function which involves a global +mutex. migrate_disable() wants a simpler construct which prevents only +a CPU from going doing while a task is in a migrate disabled section. + +Implement a per cpu lockless mechanism, which serializes only in the +real unplug case on a global mutex. That serialization affects only +tasks on the cpu which should be brought down. + +Signed-off-by: Thomas Gleixner +--- + include/linux/cpu.h | 7 +-- + kernel/cpu.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 122 insertions(+), 3 deletions(-) + +--- a/include/linux/cpu.h ++++ b/include/linux/cpu.h +@@ -180,9 +180,6 @@ static inline void cpu_notifier_register + #endif /* CONFIG_SMP */ + extern struct bus_type cpu_subsys; + +-static inline void pin_current_cpu(void) { } +-static inline void unpin_current_cpu(void) { } +- + #ifdef CONFIG_HOTPLUG_CPU + /* Stop CPUs going up and down. */ + +@@ -192,6 +189,8 @@ extern void get_online_cpus(void); + extern void put_online_cpus(void); + extern void cpu_hotplug_disable(void); + extern void cpu_hotplug_enable(void); ++extern void pin_current_cpu(void); ++extern void unpin_current_cpu(void); + #define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri) + #define __hotcpu_notifier(fn, pri) __cpu_notifier(fn, pri) + #define register_hotcpu_notifier(nb) register_cpu_notifier(nb) +@@ -209,6 +208,8 @@ static inline void cpu_hotplug_done(void + #define put_online_cpus() do { } while (0) + #define cpu_hotplug_disable() do { } while (0) + #define cpu_hotplug_enable() do { } while (0) ++static inline void pin_current_cpu(void) { } ++static inline void unpin_current_cpu(void) { } + #define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0) + #define __hotcpu_notifier(fn, pri) do { (void)(fn); } while (0) + /* These aren't inline functions due to a GCC bug. */ +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -239,6 +239,100 @@ static struct { + #define cpuhp_lock_acquire() lock_map_acquire(&cpu_hotplug.dep_map) + #define cpuhp_lock_release() lock_map_release(&cpu_hotplug.dep_map) + ++struct hotplug_pcp { ++ struct task_struct *unplug; ++ int refcount; ++ struct completion synced; ++}; ++ ++static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp); ++ ++/** ++ * pin_current_cpu - Prevent the current cpu from being unplugged ++ * ++ * Lightweight version of get_online_cpus() to prevent cpu from being ++ * unplugged when code runs in a migration disabled region. ++ * ++ * Must be called with preemption disabled (preempt_count = 1)! ++ */ ++void pin_current_cpu(void) ++{ ++ struct hotplug_pcp *hp = this_cpu_ptr(&hotplug_pcp); ++ ++retry: ++ if (!hp->unplug || hp->refcount || preempt_count() > 1 || ++ hp->unplug == current) { ++ hp->refcount++; ++ return; ++ } ++ preempt_enable(); ++ mutex_lock(&cpu_hotplug.lock); ++ mutex_unlock(&cpu_hotplug.lock); ++ preempt_disable(); ++ goto retry; ++} ++ ++/** ++ * unpin_current_cpu - Allow unplug of current cpu ++ * ++ * Must be called with preemption or interrupts disabled! ++ */ ++void unpin_current_cpu(void) ++{ ++ struct hotplug_pcp *hp = this_cpu_ptr(&hotplug_pcp); ++ ++ WARN_ON(hp->refcount <= 0); ++ ++ /* This is safe. sync_unplug_thread is pinned to this cpu */ ++ if (!--hp->refcount && hp->unplug && hp->unplug != current) ++ wake_up_process(hp->unplug); ++} ++ ++/* ++ * FIXME: Is this really correct under all circumstances ? ++ */ ++static int sync_unplug_thread(void *data) ++{ ++ struct hotplug_pcp *hp = data; ++ ++ preempt_disable(); ++ hp->unplug = current; ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ while (hp->refcount) { ++ schedule_preempt_disabled(); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++ set_current_state(TASK_RUNNING); ++ preempt_enable(); ++ complete(&hp->synced); ++ return 0; ++} ++ ++/* ++ * Start the sync_unplug_thread on the target cpu and wait for it to ++ * complete. ++ */ ++static int cpu_unplug_begin(unsigned int cpu) ++{ ++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); ++ struct task_struct *tsk; ++ ++ init_completion(&hp->synced); ++ tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d\n", cpu); ++ if (IS_ERR(tsk)) ++ return (PTR_ERR(tsk)); ++ kthread_bind(tsk, cpu); ++ wake_up_process(tsk); ++ wait_for_completion(&hp->synced); ++ return 0; ++} ++ ++static void cpu_unplug_done(unsigned int cpu) ++{ ++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); ++ ++ hp->unplug = NULL; ++} + + void get_online_cpus(void) + { +@@ -877,6 +971,8 @@ static int __ref _cpu_down(unsigned int + struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); + int prev_state, ret = 0; + bool hasdied = false; ++ int mycpu; ++ cpumask_var_t cpumask; + + if (num_online_cpus() == 1) + return -EBUSY; +@@ -884,7 +980,27 @@ static int __ref _cpu_down(unsigned int + if (!cpu_present(cpu)) + return -EINVAL; + ++ /* Move the downtaker off the unplug cpu */ ++ if (!alloc_cpumask_var(&cpumask, GFP_KERNEL)) ++ return -ENOMEM; ++ cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu)); ++ set_cpus_allowed_ptr(current, cpumask); ++ free_cpumask_var(cpumask); ++ preempt_disable(); ++ mycpu = smp_processor_id(); ++ if (mycpu == cpu) { ++ printk(KERN_ERR "Yuck! Still on unplug CPU\n!"); ++ preempt_enable(); ++ return -EBUSY; ++ } ++ preempt_enable(); ++ + cpu_hotplug_begin(); ++ ret = cpu_unplug_begin(cpu); ++ if (ret) { ++ printk("cpu_unplug_begin(%d) failed\n", cpu); ++ goto out_cancel; ++ } + + cpuhp_tasks_frozen = tasks_frozen; + +@@ -923,6 +1039,8 @@ static int __ref _cpu_down(unsigned int + + hasdied = prev_state != st->state && st->state == CPUHP_OFFLINE; + out: ++ cpu_unplug_done(cpu); ++out_cancel: + cpu_hotplug_done(); + /* This post dead nonsense must die */ + if (!ret && hasdied) diff --git a/patches/features/all/rt/hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch b/patches/features/all/rt/hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch new file mode 100644 index 00000000000..a5e6d518350 --- /dev/null +++ b/patches/features/all/rt/hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch @@ -0,0 +1,25 @@ +Subject: hotplug: sync_unplug: No "\n" in task name +From: Yong Zhang +Date: Sun, 16 Oct 2011 18:56:43 +0800 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Otherwise the output will look a little odd. + +Signed-off-by: Yong Zhang +Link: http://lkml.kernel.org/r/1318762607-2261-2-git-send-email-yong.zhang0@gmail.com +Signed-off-by: Thomas Gleixner +--- + kernel/cpu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -318,7 +318,7 @@ static int cpu_unplug_begin(unsigned int + struct task_struct *tsk; + + init_completion(&hp->synced); +- tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d\n", cpu); ++ tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); + if (IS_ERR(tsk)) + return (PTR_ERR(tsk)); + kthread_bind(tsk, cpu); diff --git a/patches/features/all/rt/hotplug-use-migrate-disable.patch b/patches/features/all/rt/hotplug-use-migrate-disable.patch new file mode 100644 index 00000000000..fc62ea5ea4e --- /dev/null +++ b/patches/features/all/rt/hotplug-use-migrate-disable.patch @@ -0,0 +1,40 @@ +Subject: hotplug: Use migrate disable on unplug +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 19:35:29 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Migration needs to be disabled accross the unplug handling to make +sure that the unplug thread is off the unplugged cpu. + +Signed-off-by: Thomas Gleixner +--- + kernel/cpu.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -988,14 +988,13 @@ static int __ref _cpu_down(unsigned int + cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu)); + set_cpus_allowed_ptr(current, cpumask); + free_cpumask_var(cpumask); +- preempt_disable(); ++ migrate_disable(); + mycpu = smp_processor_id(); + if (mycpu == cpu) { + printk(KERN_ERR "Yuck! Still on unplug CPU\n!"); +- preempt_enable(); ++ migrate_enable(); + return -EBUSY; + } +- preempt_enable(); + + cpu_hotplug_begin(); + ret = cpu_unplug_begin(cpu); +@@ -1044,6 +1043,7 @@ static int __ref _cpu_down(unsigned int + cpu_unplug_done(cpu); + out_cancel: + cpu_hotplug_done(); ++ migrate_enable(); + /* This post dead nonsense must die */ + if (!ret && hasdied) + cpu_notify_nofail(CPU_POST_DEAD, cpu); diff --git a/patches/features/all/rt/hrtimer-Move-schedule_work-call-to-helper-thread.patch b/patches/features/all/rt/hrtimer-Move-schedule_work-call-to-helper-thread.patch new file mode 100644 index 00000000000..0461536d9bf --- /dev/null +++ b/patches/features/all/rt/hrtimer-Move-schedule_work-call-to-helper-thread.patch @@ -0,0 +1,92 @@ +From: Yang Shi +Date: Mon, 16 Sep 2013 14:09:19 -0700 +Subject: hrtimer: Move schedule_work call to helper thread +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When run ltp leapsec_timer test, the following call trace is caught: + +BUG: sleeping function called from invalid context at kernel/rtmutex.c:659 +in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1 +Preemption disabled at:[] cpu_startup_entry+0x133/0x310 + +CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.10.10-rt3 #2 +Hardware name: Intel Corporation Calpella platform/MATXM-CORE-411-B, BIOS 4.6.3 08/18/2010 +ffffffff81c2f800 ffff880076843e40 ffffffff8169918d ffff880076843e58 +ffffffff8106db31 ffff88007684b4a0 ffff880076843e70 ffffffff8169d9c0 +ffff88007684b4a0 ffff880076843eb0 ffffffff81059da1 0000001876851200 +Call Trace: + [] dump_stack+0x19/0x1b +[] __might_sleep+0xf1/0x170 +[] rt_spin_lock+0x20/0x50 +[] queue_work_on+0x61/0x100 +[] clock_was_set_delayed+0x21/0x30 +[] do_timer+0x40e/0x660 +[] tick_do_update_jiffies64+0xf7/0x140 +[] tick_check_idle+0x92/0xc0 +[] irq_enter+0x57/0x70 +[] smp_apic_timer_interrupt+0x3e/0x9b +[] apic_timer_interrupt+0x6a/0x70 + [] ? cpuidle_enter_state+0x4c/0xc0 +[] cpuidle_idle_call+0xd8/0x2d0 +[] arch_cpu_idle+0xe/0x30 +[] cpu_startup_entry+0x19e/0x310 +[] start_secondary+0x1ad/0x1b0 + +The clock_was_set_delayed is called in hard IRQ handler (timer interrupt), which +calls schedule_work. + +Under PREEMPT_RT_FULL, schedule_work calls spinlocks which could sleep, so it's +not safe to call schedule_work in interrupt context. + +Reference upstream commit b68d61c705ef02384c0538b8d9374545097899ca +(rt,ntp: Move call to schedule_delayed_work() to helper thread) +from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git, which +makes a similar change. + +Signed-off-by: Yang Shi +[bigeasy: use swork_queue() instead a helper thread] +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/time/hrtimer.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -696,6 +696,29 @@ static void hrtimer_switch_to_hres(void) + retrigger_next_event(NULL); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++static struct swork_event clock_set_delay_work; ++ ++static void run_clock_set_delay(struct swork_event *event) ++{ ++ clock_was_set(); ++} ++ ++void clock_was_set_delayed(void) ++{ ++ swork_queue(&clock_set_delay_work); ++} ++ ++static __init int create_clock_set_delay_thread(void) ++{ ++ WARN_ON(swork_get()); ++ INIT_SWORK(&clock_set_delay_work, run_clock_set_delay); ++ return 0; ++} ++early_initcall(create_clock_set_delay_thread); ++#else /* PREEMPT_RT_FULL */ ++ + static void clock_was_set_work(struct work_struct *work) + { + clock_was_set(); +@@ -711,6 +734,7 @@ void clock_was_set_delayed(void) + { + schedule_work(&hrtimer_work); + } ++#endif + + #else + diff --git a/patches/features/all/rt/hrtimer-enfore-64byte-alignment.patch b/patches/features/all/rt/hrtimer-enfore-64byte-alignment.patch new file mode 100644 index 00000000000..7d4ef7713ce --- /dev/null +++ b/patches/features/all/rt/hrtimer-enfore-64byte-alignment.patch @@ -0,0 +1,28 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 23 Dec 2015 20:57:41 +0100 +Subject: hrtimer: enfore 64byte alignment +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The patch "hrtimer: Fixup hrtimer callback changes for preempt-rt" adds +a list_head expired to struct hrtimer_clock_base and with it we run into +BUILD_BUG_ON(sizeof(struct hrtimer_clock_base) > HRTIMER_CLOCK_BASE_ALIGN); + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/hrtimer.h | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/include/linux/hrtimer.h ++++ b/include/linux/hrtimer.h +@@ -127,11 +127,7 @@ struct hrtimer_sleeper { + struct task_struct *task; + }; + +-#ifdef CONFIG_64BIT + # define HRTIMER_CLOCK_BASE_ALIGN 64 +-#else +-# define HRTIMER_CLOCK_BASE_ALIGN 32 +-#endif + + /** + * struct hrtimer_clock_base - the timer base for a specific clock diff --git a/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch new file mode 100644 index 00000000000..de3eb9c207f --- /dev/null +++ b/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch @@ -0,0 +1,341 @@ +From: Thomas Gleixner +Date: Fri, 3 Jul 2009 08:44:31 -0500 +Subject: hrtimer: Fixup hrtimer callback changes for preempt-rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +In preempt-rt we can not call the callbacks which take sleeping locks +from the timer interrupt context. + +Bring back the softirq split for now, until we fixed the signal +delivery problem for real. + +Signed-off-by: Thomas Gleixner +Signed-off-by: Ingo Molnar + +--- + include/linux/hrtimer.h | 7 ++ + kernel/sched/core.c | 1 + kernel/sched/rt.c | 1 + kernel/time/hrtimer.c | 144 ++++++++++++++++++++++++++++++++++++++++++++--- + kernel/time/tick-sched.c | 1 + kernel/watchdog.c | 1 + 6 files changed, 146 insertions(+), 9 deletions(-) + +--- a/include/linux/hrtimer.h ++++ b/include/linux/hrtimer.h +@@ -87,6 +87,8 @@ enum hrtimer_restart { + * @function: timer expiry callback function + * @base: pointer to the timer base (per cpu and per clock) + * @state: state information (See bit values above) ++ * @cb_entry: list entry to defer timers from hardirq context ++ * @irqsafe: timer can run in hardirq context + * @praecox: timer expiry time if expired at the time of programming + * @is_rel: Set if the timer was armed relative + * @start_pid: timer statistics field to store the pid of the task which +@@ -104,6 +106,8 @@ struct hrtimer { + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; ++ struct list_head cb_entry; ++ int irqsafe; + #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST + ktime_t praecox; + #endif +@@ -136,6 +140,7 @@ struct hrtimer_sleeper { + * timer to a base on another cpu. + * @clockid: clock id for per_cpu support + * @active: red black tree root node for the active timers ++ * @expired: list head for deferred timers. + * @get_time: function to retrieve the current time of the clock + * @offset: offset of this clock to the monotonic base + */ +@@ -144,6 +149,7 @@ struct hrtimer_clock_base { + int index; + clockid_t clockid; + struct timerqueue_head active; ++ struct list_head expired; + ktime_t (*get_time)(void); + ktime_t offset; + } __attribute__((__aligned__(HRTIMER_CLOCK_BASE_ALIGN))); +@@ -187,6 +193,7 @@ struct hrtimer_cpu_base { + raw_spinlock_t lock; + seqcount_t seq; + struct hrtimer *running; ++ struct hrtimer *running_soft; + unsigned int cpu; + unsigned int active_bases; + unsigned int clock_was_set_seq; +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -345,6 +345,7 @@ static void init_rq_hrtick(struct rq *rq + + hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + rq->hrtick_timer.function = hrtick; ++ rq->hrtick_timer.irqsafe = 1; + } + #else /* CONFIG_SCHED_HRTICK */ + static inline void hrtick_clear(struct rq *rq) +--- a/kernel/sched/rt.c ++++ b/kernel/sched/rt.c +@@ -47,6 +47,7 @@ void init_rt_bandwidth(struct rt_bandwid + + hrtimer_init(&rt_b->rt_period_timer, + CLOCK_MONOTONIC, HRTIMER_MODE_REL); ++ rt_b->rt_period_timer.irqsafe = 1; + rt_b->rt_period_timer.function = sched_rt_period_timer; + } + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -720,11 +720,8 @@ static inline int hrtimer_is_hres_enable + static inline void hrtimer_switch_to_hres(void) { } + static inline void + hrtimer_force_reprogram(struct hrtimer_cpu_base *base, int skip_equal) { } +-static inline int hrtimer_reprogram(struct hrtimer *timer, +- struct hrtimer_clock_base *base) +-{ +- return 0; +-} ++static inline void hrtimer_reprogram(struct hrtimer *timer, ++ struct hrtimer_clock_base *base) { } + static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base) { } + static inline void retrigger_next_event(void *arg) { } + +@@ -873,7 +870,7 @@ void hrtimer_wait_for_timer(const struct + { + struct hrtimer_clock_base *base = timer->base; + +- if (base && base->cpu_base && !hrtimer_hres_active()) ++ if (base && base->cpu_base && !timer->irqsafe) + wait_event(base->cpu_base->wait, + !(hrtimer_callback_running(timer))); + } +@@ -923,6 +920,11 @@ static void __remove_hrtimer(struct hrti + if (!(state & HRTIMER_STATE_ENQUEUED)) + return; + ++ if (unlikely(!list_empty(&timer->cb_entry))) { ++ list_del_init(&timer->cb_entry); ++ return; ++ } ++ + if (!timerqueue_del(&base->active, &timer->node)) + cpu_base->active_bases &= ~(1 << base->index); + +@@ -1163,6 +1165,7 @@ static void __hrtimer_init(struct hrtime + + base = hrtimer_clockid_to_base(clock_id); + timer->base = &cpu_base->clock_base[base]; ++ INIT_LIST_HEAD(&timer->cb_entry); + timerqueue_init(&timer->node); + + #ifdef CONFIG_TIMER_STATS +@@ -1203,6 +1206,7 @@ bool hrtimer_active(const struct hrtimer + seq = raw_read_seqcount_begin(&cpu_base->seq); + + if (timer->state != HRTIMER_STATE_INACTIVE || ++ cpu_base->running_soft == timer || + cpu_base->running == timer) + return true; + +@@ -1301,12 +1305,112 @@ static void __run_hrtimer(struct hrtimer + cpu_base->running = NULL; + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer, ++ struct hrtimer_clock_base *base) ++{ ++ int leftmost; ++ ++ if (restart != HRTIMER_NORESTART && ++ !(timer->state & HRTIMER_STATE_ENQUEUED)) { ++ ++ leftmost = enqueue_hrtimer(timer, base); ++ if (!leftmost) ++ return; ++#ifdef CONFIG_HIGH_RES_TIMERS ++ if (!hrtimer_is_hres_active(timer)) { ++ /* ++ * Kick to reschedule the next tick to handle the new timer ++ * on dynticks target. ++ */ ++ if (base->cpu_base->nohz_active) ++ wake_up_nohz_cpu(base->cpu_base->cpu); ++ } else { ++ ++ hrtimer_reprogram(timer, base); ++ } ++#endif ++ } ++} ++ ++/* ++ * The changes in mainline which removed the callback modes from ++ * hrtimer are not yet working with -rt. The non wakeup_process() ++ * based callbacks which involve sleeping locks need to be treated ++ * seperately. ++ */ ++static void hrtimer_rt_run_pending(void) ++{ ++ enum hrtimer_restart (*fn)(struct hrtimer *); ++ struct hrtimer_cpu_base *cpu_base; ++ struct hrtimer_clock_base *base; ++ struct hrtimer *timer; ++ int index, restart; ++ ++ local_irq_disable(); ++ cpu_base = &per_cpu(hrtimer_bases, smp_processor_id()); ++ ++ raw_spin_lock(&cpu_base->lock); ++ ++ for (index = 0; index < HRTIMER_MAX_CLOCK_BASES; index++) { ++ base = &cpu_base->clock_base[index]; ++ ++ while (!list_empty(&base->expired)) { ++ timer = list_first_entry(&base->expired, ++ struct hrtimer, cb_entry); ++ ++ /* ++ * Same as the above __run_hrtimer function ++ * just we run with interrupts enabled. ++ */ ++ debug_deactivate(timer); ++ cpu_base->running_soft = timer; ++ raw_write_seqcount_barrier(&cpu_base->seq); ++ ++ __remove_hrtimer(timer, base, HRTIMER_STATE_INACTIVE, 0); ++ timer_stats_account_hrtimer(timer); ++ fn = timer->function; ++ ++ raw_spin_unlock_irq(&cpu_base->lock); ++ restart = fn(timer); ++ raw_spin_lock_irq(&cpu_base->lock); ++ ++ hrtimer_rt_reprogram(restart, timer, base); ++ raw_write_seqcount_barrier(&cpu_base->seq); ++ ++ WARN_ON_ONCE(cpu_base->running_soft != timer); ++ cpu_base->running_soft = NULL; ++ } ++ } ++ ++ raw_spin_unlock_irq(&cpu_base->lock); ++ ++ wake_up_timer_waiters(cpu_base); ++} ++ ++static int hrtimer_rt_defer(struct hrtimer *timer) ++{ ++ if (timer->irqsafe) ++ return 0; ++ ++ __remove_hrtimer(timer, timer->base, timer->state, 0); ++ list_add_tail(&timer->cb_entry, &timer->base->expired); ++ return 1; ++} ++ ++#else ++ ++static inline int hrtimer_rt_defer(struct hrtimer *timer) { return 0; } ++ ++#endif ++ + static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); + + static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now) + { + struct hrtimer_clock_base *base = cpu_base->clock_base; + unsigned int active = cpu_base->active_bases; ++ int raise = 0; + + for (; active; base++, active >>= 1) { + struct timerqueue_node *node; +@@ -1346,9 +1450,14 @@ static void __hrtimer_run_queues(struct + if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer)) + break; + +- __run_hrtimer(cpu_base, base, timer, &basenow); ++ if (!hrtimer_rt_defer(timer)) ++ __run_hrtimer(cpu_base, base, timer, &basenow); ++ else ++ raise = 1; + } + } ++ if (raise) ++ raise_softirq_irqoff(HRTIMER_SOFTIRQ); + } + + #ifdef CONFIG_HIGH_RES_TIMERS +@@ -1490,8 +1599,6 @@ void hrtimer_run_queues(void) + now = hrtimer_update_base(cpu_base); + __hrtimer_run_queues(cpu_base, now); + raw_spin_unlock(&cpu_base->lock); +- +- wake_up_timer_waiters(cpu_base); + } + + /* +@@ -1513,6 +1620,7 @@ static enum hrtimer_restart hrtimer_wake + void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task) + { + sl->timer.function = hrtimer_wakeup; ++ sl->timer.irqsafe = 1; + sl->task = task; + } + EXPORT_SYMBOL_GPL(hrtimer_init_sleeper); +@@ -1647,6 +1755,7 @@ int hrtimers_prepare_cpu(unsigned int cp + for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { + cpu_base->clock_base[i].cpu_base = cpu_base; + timerqueue_init_head(&cpu_base->clock_base[i].active); ++ INIT_LIST_HEAD(&cpu_base->clock_base[i].expired); + } + + cpu_base->cpu = cpu; +@@ -1723,9 +1832,26 @@ int hrtimers_dead_cpu(unsigned int scpu) + + #endif /* CONFIG_HOTPLUG_CPU */ + ++#ifdef CONFIG_PREEMPT_RT_BASE ++ ++static void run_hrtimer_softirq(struct softirq_action *h) ++{ ++ hrtimer_rt_run_pending(); ++} ++ ++static void hrtimers_open_softirq(void) ++{ ++ open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq); ++} ++ ++#else ++static void hrtimers_open_softirq(void) { } ++#endif ++ + void __init hrtimers_init(void) + { + hrtimers_prepare_cpu(smp_processor_id()); ++ hrtimers_open_softirq(); + } + + /** +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -1198,6 +1198,7 @@ void tick_setup_sched_timer(void) + * Emulate tick processing via per-CPU hrtimers: + */ + hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); ++ ts->sched_timer.irqsafe = 1; + ts->sched_timer.function = tick_sched_timer; + + /* Get the next period (per-CPU) */ +--- a/kernel/watchdog.c ++++ b/kernel/watchdog.c +@@ -523,6 +523,7 @@ static void watchdog_enable(unsigned int + /* kick off the timer for the hardlockup detector */ + hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer->function = watchdog_timer_fn; ++ hrtimer->irqsafe = 1; + + /* Enable the perf event */ + watchdog_nmi_enable(cpu); diff --git a/patches/features/all/rt/hrtimers-prepare-full-preemption.patch b/patches/features/all/rt/hrtimers-prepare-full-preemption.patch new file mode 100644 index 00000000000..53a30248caa --- /dev/null +++ b/patches/features/all/rt/hrtimers-prepare-full-preemption.patch @@ -0,0 +1,205 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:34 -0500 +Subject: hrtimers: Prepare full preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Make cancellation of a running callback in softirq context safe +against preemption. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + include/linux/hrtimer.h | 12 +++++++++++- + kernel/time/hrtimer.c | 33 ++++++++++++++++++++++++++++++++- + kernel/time/itimer.c | 1 + + kernel/time/posix-timers.c | 33 +++++++++++++++++++++++++++++++++ + 4 files changed, 77 insertions(+), 2 deletions(-) + +--- a/include/linux/hrtimer.h ++++ b/include/linux/hrtimer.h +@@ -207,6 +207,9 @@ struct hrtimer_cpu_base { + unsigned int nr_hangs; + unsigned int max_hang_time; + #endif ++#ifdef CONFIG_PREEMPT_RT_BASE ++ wait_queue_head_t wait; ++#endif + struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES]; + } ____cacheline_aligned; + +@@ -416,6 +419,13 @@ static inline void hrtimer_restart(struc + hrtimer_start_expires(timer, HRTIMER_MODE_ABS); + } + ++/* Softirq preemption could deadlock timer removal */ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ extern void hrtimer_wait_for_timer(const struct hrtimer *timer); ++#else ++# define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0) ++#endif ++ + /* Query timers: */ + extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust); + +@@ -440,7 +450,7 @@ static inline int hrtimer_is_queued(stru + * Helper function to check, whether the timer is running the callback + * function + */ +-static inline int hrtimer_callback_running(struct hrtimer *timer) ++static inline int hrtimer_callback_running(const struct hrtimer *timer) + { + return timer->base->cpu_base->running == timer; + } +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -856,6 +856,32 @@ u64 hrtimer_forward(struct hrtimer *time + } + EXPORT_SYMBOL_GPL(hrtimer_forward); + ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define wake_up_timer_waiters(b) wake_up(&(b)->wait) ++ ++/** ++ * hrtimer_wait_for_timer - Wait for a running timer ++ * ++ * @timer: timer to wait for ++ * ++ * The function waits in case the timers callback function is ++ * currently executed on the waitqueue of the timer base. The ++ * waitqueue is woken up after the timer callback function has ++ * finished execution. ++ */ ++void hrtimer_wait_for_timer(const struct hrtimer *timer) ++{ ++ struct hrtimer_clock_base *base = timer->base; ++ ++ if (base && base->cpu_base && !hrtimer_hres_active()) ++ wait_event(base->cpu_base->wait, ++ !(hrtimer_callback_running(timer))); ++} ++ ++#else ++# define wake_up_timer_waiters(b) do { } while (0) ++#endif ++ + /* + * enqueue_hrtimer - internal function to (re)start a timer + * +@@ -1073,7 +1099,7 @@ int hrtimer_cancel(struct hrtimer *timer + + if (ret >= 0) + return ret; +- cpu_relax(); ++ hrtimer_wait_for_timer(timer); + } + } + EXPORT_SYMBOL_GPL(hrtimer_cancel); +@@ -1464,6 +1490,8 @@ void hrtimer_run_queues(void) + now = hrtimer_update_base(cpu_base); + __hrtimer_run_queues(cpu_base, now); + raw_spin_unlock(&cpu_base->lock); ++ ++ wake_up_timer_waiters(cpu_base); + } + + /* +@@ -1623,6 +1651,9 @@ int hrtimers_prepare_cpu(unsigned int cp + + cpu_base->cpu = cpu; + hrtimer_init_hres(cpu_base); ++#ifdef CONFIG_PREEMPT_RT_BASE ++ init_waitqueue_head(&cpu_base->wait); ++#endif + return 0; + } + +--- a/kernel/time/itimer.c ++++ b/kernel/time/itimer.c +@@ -213,6 +213,7 @@ int do_setitimer(int which, struct itime + /* We are sharing ->siglock with it_real_fn() */ + if (hrtimer_try_to_cancel(timer) < 0) { + spin_unlock_irq(&tsk->sighand->siglock); ++ hrtimer_wait_for_timer(&tsk->signal->real_timer); + goto again; + } + expires = timeval_to_ktime(value->it_value); +--- a/kernel/time/posix-timers.c ++++ b/kernel/time/posix-timers.c +@@ -828,6 +828,20 @@ SYSCALL_DEFINE1(timer_getoverrun, timer_ + return overrun; + } + ++/* ++ * Protected by RCU! ++ */ ++static void timer_wait_for_callback(struct k_clock *kc, struct k_itimer *timr) ++{ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (kc->timer_set == common_timer_set) ++ hrtimer_wait_for_timer(&timr->it.real.timer); ++ else ++ /* FIXME: Whacky hack for posix-cpu-timers */ ++ schedule_timeout(1); ++#endif ++} ++ + /* Set a POSIX.1b interval timer. */ + /* timr->it_lock is taken. */ + static int +@@ -905,6 +919,7 @@ SYSCALL_DEFINE4(timer_settime, timer_t, + if (!timr) + return -EINVAL; + ++ rcu_read_lock(); + kc = clockid_to_kclock(timr->it_clock); + if (WARN_ON_ONCE(!kc || !kc->timer_set)) + error = -EINVAL; +@@ -913,9 +928,12 @@ SYSCALL_DEFINE4(timer_settime, timer_t, + + unlock_timer(timr, flag); + if (error == TIMER_RETRY) { ++ timer_wait_for_callback(kc, timr); + rtn = NULL; // We already got the old time... ++ rcu_read_unlock(); + goto retry; + } ++ rcu_read_unlock(); + + if (old_setting && !error && + copy_to_user(old_setting, &old_spec, sizeof (old_spec))) +@@ -953,10 +971,15 @@ SYSCALL_DEFINE1(timer_delete, timer_t, t + if (!timer) + return -EINVAL; + ++ rcu_read_lock(); + if (timer_delete_hook(timer) == TIMER_RETRY) { + unlock_timer(timer, flags); ++ timer_wait_for_callback(clockid_to_kclock(timer->it_clock), ++ timer); ++ rcu_read_unlock(); + goto retry_delete; + } ++ rcu_read_unlock(); + + spin_lock(¤t->sighand->siglock); + list_del(&timer->list); +@@ -982,8 +1005,18 @@ static void itimer_delete(struct k_itime + retry_delete: + spin_lock_irqsave(&timer->it_lock, flags); + ++ /* On RT we can race with a deletion */ ++ if (!timer->it_signal) { ++ unlock_timer(timer, flags); ++ return; ++ } ++ + if (timer_delete_hook(timer) == TIMER_RETRY) { ++ rcu_read_lock(); + unlock_timer(timer, flags); ++ timer_wait_for_callback(clockid_to_kclock(timer->it_clock), ++ timer); ++ rcu_read_unlock(); + goto retry_delete; + } + list_del(&timer->list); diff --git a/patches/features/all/rt/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch b/patches/features/all/rt/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch new file mode 100644 index 00000000000..b474689090e --- /dev/null +++ b/patches/features/all/rt/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch @@ -0,0 +1,30 @@ +From: Clark Williams +Date: Tue, 26 May 2015 10:43:43 -0500 +Subject: i915: bogus warning from i915 when running on PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The i915 driver has a 'WARN_ON(!in_interrupt())' in the display +handler, which whines constanly on the RT kernel (since the interrupt +is actually handled in a threaded handler and not actual interrupt +context). + +Change the WARN_ON to WARN_ON_NORT + +Tested-by: Joakim Hernberg +Signed-off-by: Clark Williams +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/gpu/drm/i915/intel_display.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -12142,7 +12142,7 @@ void intel_check_page_flip(struct drm_i9 + struct intel_crtc *intel_crtc = to_intel_crtc(crtc); + struct intel_flip_work *work; + +- WARN_ON(!in_interrupt()); ++ WARN_ON_NONRT(!in_interrupt()); + + if (crtc == NULL) + return; diff --git a/patches/features/all/rt/ide-use-nort-local-irq-variants.patch b/patches/features/all/rt/ide-use-nort-local-irq-variants.patch new file mode 100644 index 00000000000..6c5bf861725 --- /dev/null +++ b/patches/features/all/rt/ide-use-nort-local-irq-variants.patch @@ -0,0 +1,170 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:30:16 -0500 +Subject: ide: Do not disable interrupts for PREEMPT-RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the local_irq_*_nort variants. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/ide/alim15x3.c | 4 ++-- + drivers/ide/hpt366.c | 4 ++-- + drivers/ide/ide-io-std.c | 8 ++++---- + drivers/ide/ide-io.c | 2 +- + drivers/ide/ide-iops.c | 4 ++-- + drivers/ide/ide-probe.c | 4 ++-- + drivers/ide/ide-taskfile.c | 6 +++--- + 7 files changed, 16 insertions(+), 16 deletions(-) + +--- a/drivers/ide/alim15x3.c ++++ b/drivers/ide/alim15x3.c +@@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct p + + isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL); + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + + if (m5229_revision < 0xC2) { + /* +@@ -325,7 +325,7 @@ static int init_chipset_ali15x3(struct p + } + pci_dev_put(north); + pci_dev_put(isa_dev); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + return 0; + } + +--- a/drivers/ide/hpt366.c ++++ b/drivers/ide/hpt366.c +@@ -1236,7 +1236,7 @@ static int init_dma_hpt366(ide_hwif_t *h + + dma_old = inb(base + 2); + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + + dma_new = dma_old; + pci_read_config_byte(dev, hwif->channel ? 0x4b : 0x43, &masterdma); +@@ -1247,7 +1247,7 @@ static int init_dma_hpt366(ide_hwif_t *h + if (dma_new != dma_old) + outb(dma_new, base + 2); + +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n", + hwif->name, base, base + 7); +--- a/drivers/ide/ide-io-std.c ++++ b/drivers/ide/ide-io-std.c +@@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive, + unsigned long uninitialized_var(flags); + + if ((io_32bit & 2) && !mmio) { +- local_irq_save(flags); ++ local_irq_save_nort(flags); + ata_vlb_sync(io_ports->nsect_addr); + } + +@@ -186,7 +186,7 @@ void ide_input_data(ide_drive_t *drive, + insl(data_addr, buf, words); + + if ((io_32bit & 2) && !mmio) +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + if (((len + 1) & 3) < 2) + return; +@@ -219,7 +219,7 @@ void ide_output_data(ide_drive_t *drive, + unsigned long uninitialized_var(flags); + + if ((io_32bit & 2) && !mmio) { +- local_irq_save(flags); ++ local_irq_save_nort(flags); + ata_vlb_sync(io_ports->nsect_addr); + } + +@@ -230,7 +230,7 @@ void ide_output_data(ide_drive_t *drive, + outsl(data_addr, buf, words); + + if ((io_32bit & 2) && !mmio) +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + if (((len + 1) & 3) < 2) + return; +--- a/drivers/ide/ide-io.c ++++ b/drivers/ide/ide-io.c +@@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long dat + /* disable_irq_nosync ?? */ + disable_irq(hwif->irq); + /* local CPU only, as if we were handling an interrupt */ +- local_irq_disable(); ++ local_irq_disable_nort(); + if (hwif->polling) { + startstop = handler(drive); + } else if (drive_is_ready(drive)) { +--- a/drivers/ide/ide-iops.c ++++ b/drivers/ide/ide-iops.c +@@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive, + if ((stat & ATA_BUSY) == 0) + break; + +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + *rstat = stat; + return -EBUSY; + } + } +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + /* + * Allow status to settle, then read it again. +--- a/drivers/ide/ide-probe.c ++++ b/drivers/ide/ide-probe.c +@@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *dri + int bswap = 1; + + /* local CPU only; some systems need this */ +- local_irq_save(flags); ++ local_irq_save_nort(flags); + /* read 512 bytes of id info */ + hwif->tp_ops->input_data(drive, NULL, id, SECTOR_SIZE); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + drive->dev_flags |= IDE_DFLAG_ID_READ; + #ifdef DEBUG +--- a/drivers/ide/ide-taskfile.c ++++ b/drivers/ide/ide-taskfile.c +@@ -250,7 +250,7 @@ void ide_pio_bytes(ide_drive_t *drive, s + + page_is_high = PageHighMem(page); + if (page_is_high) +- local_irq_save(flags); ++ local_irq_save_nort(flags); + + buf = kmap_atomic(page) + offset; + +@@ -271,7 +271,7 @@ void ide_pio_bytes(ide_drive_t *drive, s + kunmap_atomic(buf); + + if (page_is_high) +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + len -= nr_bytes; + } +@@ -414,7 +414,7 @@ static ide_startstop_t pre_task_out_intr + } + + if ((drive->dev_flags & IDE_DFLAG_UNMASK) == 0) +- local_irq_disable(); ++ local_irq_disable_nort(); + + ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE); + diff --git a/patches/features/all/rt/idr-use-local-lock-for-protection.patch b/patches/features/all/rt/idr-use-local-lock-for-protection.patch new file mode 100644 index 00000000000..b9e134bf64a --- /dev/null +++ b/patches/features/all/rt/idr-use-local-lock-for-protection.patch @@ -0,0 +1,124 @@ +From: Thomas Gleixner +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: idr: Use local lock instead of preempt enable/disable +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We need to protect the per cpu variable and prevent migration. + +Signed-off-by: Thomas Gleixner +--- + include/linux/idr.h | 4 ++++ + lib/idr.c | 43 +++++++++++++++++++++++++++++++++++++------ + 2 files changed, 41 insertions(+), 6 deletions(-) + +--- a/include/linux/idr.h ++++ b/include/linux/idr.h +@@ -95,10 +95,14 @@ bool idr_is_empty(struct idr *idp); + * Each idr_preload() should be matched with an invocation of this + * function. See idr_preload() for details. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++void idr_preload_end(void); ++#else + static inline void idr_preload_end(void) + { + preempt_enable(); + } ++#endif + + /** + * idr_find - return pointer for given id +--- a/lib/idr.c ++++ b/lib/idr.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #define MAX_IDR_SHIFT (sizeof(int) * 8 - 1) + #define MAX_IDR_BIT (1U << MAX_IDR_SHIFT) +@@ -45,6 +46,37 @@ static DEFINE_PER_CPU(struct idr_layer * + static DEFINE_PER_CPU(int, idr_preload_cnt); + static DEFINE_SPINLOCK(simple_ida_lock); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static DEFINE_LOCAL_IRQ_LOCK(idr_lock); ++ ++static inline void idr_preload_lock(void) ++{ ++ local_lock(idr_lock); ++} ++ ++static inline void idr_preload_unlock(void) ++{ ++ local_unlock(idr_lock); ++} ++ ++void idr_preload_end(void) ++{ ++ idr_preload_unlock(); ++} ++EXPORT_SYMBOL(idr_preload_end); ++#else ++static inline void idr_preload_lock(void) ++{ ++ preempt_disable(); ++} ++ ++static inline void idr_preload_unlock(void) ++{ ++ preempt_enable(); ++} ++#endif ++ ++ + /* the maximum ID which can be allocated given idr->layers */ + static int idr_max(int layers) + { +@@ -115,14 +147,14 @@ static struct idr_layer *idr_layer_alloc + * context. See idr_preload() for details. + */ + if (!in_interrupt()) { +- preempt_disable(); ++ idr_preload_lock(); + new = __this_cpu_read(idr_preload_head); + if (new) { + __this_cpu_write(idr_preload_head, new->ary[0]); + __this_cpu_dec(idr_preload_cnt); + new->ary[0] = NULL; + } +- preempt_enable(); ++ idr_preload_unlock(); + if (new) + return new; + } +@@ -366,7 +398,6 @@ static void idr_fill_slot(struct idr *id + idr_mark_full(pa, id); + } + +- + /** + * idr_preload - preload for idr_alloc() + * @gfp_mask: allocation mask to use for preloading +@@ -401,7 +432,7 @@ void idr_preload(gfp_t gfp_mask) + WARN_ON_ONCE(in_interrupt()); + might_sleep_if(gfpflags_allow_blocking(gfp_mask)); + +- preempt_disable(); ++ idr_preload_lock(); + + /* + * idr_alloc() is likely to succeed w/o full idr_layer buffer and +@@ -413,9 +444,9 @@ void idr_preload(gfp_t gfp_mask) + while (__this_cpu_read(idr_preload_cnt) < MAX_IDR_FREE) { + struct idr_layer *new; + +- preempt_enable(); ++ idr_preload_unlock(); + new = kmem_cache_zalloc(idr_layer_cache, gfp_mask); +- preempt_disable(); ++ idr_preload_lock(); + if (!new) + break; + diff --git a/patches/features/all/rt/infiniband-mellanox-ib-use-nort-irq.patch b/patches/features/all/rt/infiniband-mellanox-ib-use-nort-irq.patch new file mode 100644 index 00000000000..0c943fb14d4 --- /dev/null +++ b/patches/features/all/rt/infiniband-mellanox-ib-use-nort-irq.patch @@ -0,0 +1,41 @@ +From: Sven-Thorsten Dietrich +Date: Fri, 3 Jul 2009 08:30:35 -0500 +Subject: infiniband: Mellanox IB driver patch use _nort() primitives +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT +Kernel. + +Michael S. Tsirkin sayeth: +"Basically, if you just make spin_lock_irqsave (and spin_lock_irq) not disable +interrupts for non-raw spinlocks, I think all of infiniband will be fine without +changes." + +Signed-off-by: Sven-Thorsten Dietrich +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c ++++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +@@ -899,7 +899,7 @@ void ipoib_mcast_restart_task(struct wor + + ipoib_dbg_mcast(priv, "restarting multicast task\n"); + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + netif_addr_lock(dev); + spin_lock(&priv->lock); + +@@ -981,7 +981,7 @@ void ipoib_mcast_restart_task(struct wor + + spin_unlock(&priv->lock); + netif_addr_unlock(dev); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + /* + * make sure the in-flight joins have finished before we attempt diff --git a/patches/features/all/rt/inpt-gameport-use-local-irq-nort.patch b/patches/features/all/rt/inpt-gameport-use-local-irq-nort.patch new file mode 100644 index 00000000000..1e1e1af1dfe --- /dev/null +++ b/patches/features/all/rt/inpt-gameport-use-local-irq-nort.patch @@ -0,0 +1,61 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:30:16 -0500 +Subject: input: gameport: Do not disable interrupts on PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the _nort() primitives. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + drivers/input/gameport/gameport.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/input/gameport/gameport.c ++++ b/drivers/input/gameport/gameport.c +@@ -91,13 +91,13 @@ static int gameport_measure_speed(struct + tx = ~0; + + for (i = 0; i < 50; i++) { +- local_irq_save(flags); ++ local_irq_save_nort(flags); + t1 = ktime_get_ns(); + for (t = 0; t < 50; t++) + gameport_read(gameport); + t2 = ktime_get_ns(); + t3 = ktime_get_ns(); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + udelay(i * 10); + t = (t2 - t1) - (t3 - t2); + if (t < tx) +@@ -124,12 +124,12 @@ static int old_gameport_measure_speed(st + tx = 1 << 30; + + for(i = 0; i < 50; i++) { +- local_irq_save(flags); ++ local_irq_save_nort(flags); + GET_TIME(t1); + for (t = 0; t < 50; t++) gameport_read(gameport); + GET_TIME(t2); + GET_TIME(t3); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + udelay(i * 10); + if ((t = DELTA(t2,t1) - DELTA(t3,t2)) < tx) tx = t; + } +@@ -148,11 +148,11 @@ static int old_gameport_measure_speed(st + tx = 1 << 30; + + for(i = 0; i < 50; i++) { +- local_irq_save(flags); ++ local_irq_save_nort(flags); + t1 = rdtsc(); + for (t = 0; t < 50; t++) gameport_read(gameport); + t2 = rdtsc(); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + udelay(i * 10); + if (t2 - t1 < tx) tx = t2 - t1; + } diff --git a/patches/features/all/rt/introduce_migrate_disable_cpu_light.patch b/patches/features/all/rt/introduce_migrate_disable_cpu_light.patch new file mode 100644 index 00000000000..57789635098 --- /dev/null +++ b/patches/features/all/rt/introduce_migrate_disable_cpu_light.patch @@ -0,0 +1,281 @@ +Subject: Intrduce migrate_disable() + cpu_light() +From: Thomas Gleixner +Date: Fri, 17 Jun 2011 15:42:38 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Introduce migrate_disable(). The task can't be pushed to another CPU but can +be preempted. + +From: Peter Zijlstra : +|Make migrate_disable() be a preempt_disable() for !rt kernels. This +|allows generic code to use it but still enforces that these code +|sections stay relatively small. +| +|A preemptible migrate_disable() accessible for general use would allow +|people growing arbitrary per-cpu crap instead of clean these things +|up. + +From: Steven Rostedt +| The migrate_disable() can cause a bit of a overhead to the RT kernel, +| as changing the affinity is expensive to do at every lock encountered. +| As a running task can not migrate, the actual disabling of migration +| does not need to occur until the task is about to schedule out. +| +| In most cases, a task that disables migration will enable it before +| it schedules making this change improve performance tremendously. + +On top of this build get/put_cpu_light(). It is similar to get_cpu(): +it uses migrate_disable() instead of preempt_disable(). That means the user +remains on the same CPU but the function using it may be preempted and +invoked again from another caller on the same CPU. + +Signed-off-by: Thomas Gleixner +--- + include/linux/cpu.h | 3 ++ + include/linux/preempt.h | 9 ++++++ + include/linux/sched.h | 39 +++++++++++++++++++++----- + include/linux/smp.h | 3 ++ + kernel/sched/core.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++- + kernel/sched/debug.c | 7 ++++ + lib/smp_processor_id.c | 5 ++- + 7 files changed, 125 insertions(+), 11 deletions(-) + +--- a/include/linux/cpu.h ++++ b/include/linux/cpu.h +@@ -180,6 +180,9 @@ static inline void cpu_notifier_register + #endif /* CONFIG_SMP */ + extern struct bus_type cpu_subsys; + ++static inline void pin_current_cpu(void) { } ++static inline void unpin_current_cpu(void) { } ++ + #ifdef CONFIG_HOTPLUG_CPU + /* Stop CPUs going up and down. */ + +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -257,11 +257,20 @@ do { \ + # define preempt_enable_rt() preempt_enable() + # define preempt_disable_nort() barrier() + # define preempt_enable_nort() barrier() ++# ifdef CONFIG_SMP ++ extern void migrate_disable(void); ++ extern void migrate_enable(void); ++# else /* CONFIG_SMP */ ++# define migrate_disable() barrier() ++# define migrate_enable() barrier() ++# endif /* CONFIG_SMP */ + #else + # define preempt_disable_rt() barrier() + # define preempt_enable_rt() barrier() + # define preempt_disable_nort() preempt_disable() + # define preempt_enable_nort() preempt_enable() ++# define migrate_disable() preempt_disable() ++# define migrate_enable() preempt_enable() + #endif + + #ifdef CONFIG_PREEMPT_NOTIFIERS +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1520,6 +1520,12 @@ struct task_struct { + #endif + + unsigned int policy; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int migrate_disable; ++# ifdef CONFIG_SCHED_DEBUG ++ int migrate_disable_atomic; ++# endif ++#endif + int nr_cpus_allowed; + cpumask_t cpus_allowed; + +@@ -1990,14 +1996,6 @@ static inline struct vm_struct *task_sta + } + #endif + +-/* Future-safe accessor for struct task_struct's cpus_allowed. */ +-#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) +- +-static inline int tsk_nr_cpus_allowed(struct task_struct *p) +-{ +- return p->nr_cpus_allowed; +-} +- + #define TNF_MIGRATED 0x01 + #define TNF_NO_GROUP 0x02 + #define TNF_SHARED 0x04 +@@ -3515,6 +3513,31 @@ static inline void set_task_cpu(struct t + + #endif /* CONFIG_SMP */ + ++static inline int __migrate_disabled(struct task_struct *p) ++{ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ return p->migrate_disable; ++#else ++ return 0; ++#endif ++} ++ ++/* Future-safe accessor for struct task_struct's cpus_allowed. */ ++static inline const struct cpumask *tsk_cpus_allowed(struct task_struct *p) ++{ ++ if (__migrate_disabled(p)) ++ return cpumask_of(task_cpu(p)); ++ ++ return &p->cpus_allowed; ++} ++ ++static inline int tsk_nr_cpus_allowed(struct task_struct *p) ++{ ++ if (__migrate_disabled(p)) ++ return 1; ++ return p->nr_cpus_allowed; ++} ++ + extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); + extern long sched_getaffinity(pid_t pid, struct cpumask *mask); + +--- a/include/linux/smp.h ++++ b/include/linux/smp.h +@@ -185,6 +185,9 @@ static inline void smp_init(void) { } + #define get_cpu() ({ preempt_disable(); smp_processor_id(); }) + #define put_cpu() preempt_enable() + ++#define get_cpu_light() ({ migrate_disable(); smp_processor_id(); }) ++#define put_cpu_light() migrate_enable() ++ + /* + * Callback to arch code if there's nosmp or maxcpus=0 on the + * boot command line: +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -1100,6 +1100,11 @@ void do_set_cpus_allowed(struct task_str + + lockdep_assert_held(&p->pi_lock); + ++ if (__migrate_disabled(p)) { ++ cpumask_copy(&p->cpus_allowed, new_mask); ++ return; ++ } ++ + queued = task_on_rq_queued(p); + running = task_current(rq, p); + +@@ -1179,7 +1184,7 @@ static int __set_cpus_allowed_ptr(struct + } + + /* Can the task run on the task's current CPU? If so, we're done */ +- if (cpumask_test_cpu(task_cpu(p), new_mask)) ++ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p)) + goto out; + + dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask); +@@ -3252,6 +3257,69 @@ static inline void schedule_debug(struct + schedstat_inc(this_rq()->sched_count); + } + ++#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_SMP) ++ ++void migrate_disable(void) ++{ ++ struct task_struct *p = current; ++ ++ if (in_atomic()) { ++#ifdef CONFIG_SCHED_DEBUG ++ p->migrate_disable_atomic++; ++#endif ++ return; ++ } ++ ++#ifdef CONFIG_SCHED_DEBUG ++ WARN_ON_ONCE(p->migrate_disable_atomic); ++#endif ++ ++ if (p->migrate_disable) { ++ p->migrate_disable++; ++ return; ++ } ++ ++ preempt_disable(); ++ pin_current_cpu(); ++ p->migrate_disable = 1; ++ preempt_enable(); ++} ++EXPORT_SYMBOL(migrate_disable); ++ ++void migrate_enable(void) ++{ ++ struct task_struct *p = current; ++ ++ if (in_atomic()) { ++#ifdef CONFIG_SCHED_DEBUG ++ p->migrate_disable_atomic--; ++#endif ++ return; ++ } ++ ++#ifdef CONFIG_SCHED_DEBUG ++ WARN_ON_ONCE(p->migrate_disable_atomic); ++#endif ++ WARN_ON_ONCE(p->migrate_disable <= 0); ++ ++ if (p->migrate_disable > 1) { ++ p->migrate_disable--; ++ return; ++ } ++ ++ preempt_disable(); ++ /* ++ * Clearing migrate_disable causes tsk_cpus_allowed to ++ * show the tasks original cpu affinity. ++ */ ++ p->migrate_disable = 0; ++ ++ unpin_current_cpu(); ++ preempt_enable(); ++} ++EXPORT_SYMBOL(migrate_enable); ++#endif ++ + /* + * Pick up the highest-prio task: + */ +--- a/kernel/sched/debug.c ++++ b/kernel/sched/debug.c +@@ -558,6 +558,9 @@ void print_rt_rq(struct seq_file *m, int + P(rt_throttled); + PN(rt_time); + PN(rt_runtime); ++#ifdef CONFIG_SMP ++ P(rt_nr_migratory); ++#endif + + #undef PN + #undef P +@@ -953,6 +956,10 @@ void proc_sched_show_task(struct task_st + #endif + P(policy); + P(prio); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ P(migrate_disable); ++#endif ++ P(nr_cpus_allowed); + #undef PN_SCHEDSTAT + #undef PN + #undef __PN +--- a/lib/smp_processor_id.c ++++ b/lib/smp_processor_id.c +@@ -39,8 +39,9 @@ notrace static unsigned int check_preemp + if (!printk_ratelimit()) + goto out_enable; + +- printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x] code: %s/%d\n", +- what1, what2, preempt_count() - 1, current->comm, current->pid); ++ printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x %08x] code: %s/%d\n", ++ what1, what2, preempt_count() - 1, __migrate_disabled(current), ++ current->comm, current->pid); + + print_symbol("caller is %s\n", (long)__builtin_return_address(0)); + dump_stack(); diff --git a/patches/features/all/rt/iommu-amd--Use-WARN_ON_NORT.patch b/patches/features/all/rt/iommu-amd--Use-WARN_ON_NORT.patch new file mode 100644 index 00000000000..c2b92f796cc --- /dev/null +++ b/patches/features/all/rt/iommu-amd--Use-WARN_ON_NORT.patch @@ -0,0 +1,47 @@ +Subject: iommu/amd: Use WARN_ON_NORT in __attach_device() +From: Thomas Gleixner +Date: Sat, 27 Feb 2016 10:22:23 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT does not disable interrupts here, but the protection is still +correct. Fixup the WARN_ON so it won't yell on RT. + +Note: This WARN_ON is bogus anyway. The real thing this needs to check is that +amd_iommu_devtable_lock is held. + +Reported-by: DIXLOR +Signed-off-by: Thomas Gleixner +--- + drivers/iommu/amd_iommu.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/iommu/amd_iommu.c ++++ b/drivers/iommu/amd_iommu.c +@@ -1923,10 +1923,10 @@ static int __attach_device(struct iommu_ + int ret; + + /* +- * Must be called with IRQs disabled. Warn here to detect early +- * when its not. ++ * Must be called with IRQs disabled on a non RT kernel. Warn here to ++ * detect early when its not. + */ +- WARN_ON(!irqs_disabled()); ++ WARN_ON_NONRT(!irqs_disabled()); + + /* lock domain */ + spin_lock(&domain->lock); +@@ -2094,10 +2094,10 @@ static void __detach_device(struct iommu + struct protection_domain *domain; + + /* +- * Must be called with IRQs disabled. Warn here to detect early +- * when its not. ++ * Must be called with IRQs disabled on a non RT kernel. Warn here to ++ * detect early when its not. + */ +- WARN_ON(!irqs_disabled()); ++ WARN_ON_NONRT(!irqs_disabled()); + + if (WARN_ON(!dev_data->domain)) + return; diff --git a/patches/features/all/rt/iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch b/patches/features/all/rt/iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch new file mode 100644 index 00000000000..266de4fe9d6 --- /dev/null +++ b/patches/features/all/rt/iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch @@ -0,0 +1,82 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 15 Sep 2016 16:58:19 +0200 +Subject: [PATCH] iommu/iova: don't disable preempt around this_cpu_ptr() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Commit 583248e6620a ("iommu/iova: Disable preemption around use of +this_cpu_ptr()") disables preemption while accessing a per-CPU variable. +This does keep lockdep quiet. However I don't see the point why it is +bad if we get migrated after its access to another CPU. +__iova_rcache_insert() and __iova_rcache_get() immediately locks the +variable after obtaining it - before accessing its members. +_If_ we get migrated away after retrieving the address of cpu_rcache +before taking the lock then the *other* task on the same CPU will +retrieve the same address of cpu_rcache and will spin on the lock. + +alloc_iova_fast() disables preemption while invoking +free_cpu_cached_iovas() on each CPU. The function itself uses +per_cpu_ptr() which does not trigger a warning (like this_cpu_ptr() +does) because it assumes the caller knows what he does because he might +access the data structure from a different CPU (which means he needs +protection against concurrent access). + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/iommu/iova.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +--- a/drivers/iommu/iova.c ++++ b/drivers/iommu/iova.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + static bool iova_rcache_insert(struct iova_domain *iovad, + unsigned long pfn, +@@ -420,10 +421,8 @@ alloc_iova_fast(struct iova_domain *iova + + /* Try replenishing IOVAs by flushing rcache. */ + flushed_rcache = true; +- preempt_disable(); + for_each_online_cpu(cpu) + free_cpu_cached_iovas(cpu, iovad); +- preempt_enable(); + goto retry; + } + +@@ -751,7 +750,7 @@ static bool __iova_rcache_insert(struct + bool can_insert = false; + unsigned long flags; + +- cpu_rcache = get_cpu_ptr(rcache->cpu_rcaches); ++ cpu_rcache = raw_cpu_ptr(rcache->cpu_rcaches); + spin_lock_irqsave(&cpu_rcache->lock, flags); + + if (!iova_magazine_full(cpu_rcache->loaded)) { +@@ -781,7 +780,6 @@ static bool __iova_rcache_insert(struct + iova_magazine_push(cpu_rcache->loaded, iova_pfn); + + spin_unlock_irqrestore(&cpu_rcache->lock, flags); +- put_cpu_ptr(rcache->cpu_rcaches); + + if (mag_to_free) { + iova_magazine_free_pfns(mag_to_free, iovad); +@@ -815,7 +813,7 @@ static unsigned long __iova_rcache_get(s + bool has_pfn = false; + unsigned long flags; + +- cpu_rcache = get_cpu_ptr(rcache->cpu_rcaches); ++ cpu_rcache = raw_cpu_ptr(rcache->cpu_rcaches); + spin_lock_irqsave(&cpu_rcache->lock, flags); + + if (!iova_magazine_empty(cpu_rcache->loaded)) { +@@ -837,7 +835,6 @@ static unsigned long __iova_rcache_get(s + iova_pfn = iova_magazine_pop(cpu_rcache->loaded, limit_pfn); + + spin_unlock_irqrestore(&cpu_rcache->lock, flags); +- put_cpu_ptr(rcache->cpu_rcaches); + + return iova_pfn; + } diff --git a/patches/features/all/rt/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch b/patches/features/all/rt/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch new file mode 100644 index 00000000000..35c40865825 --- /dev/null +++ b/patches/features/all/rt/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch @@ -0,0 +1,59 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 15 Sep 2016 17:16:44 +0200 +Subject: [PATCH] iommu/vt-d: don't disable preemption while accessing + deferred_flush() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +get_cpu() disables preemption and returns the current CPU number. The +CPU number is later only used once while retrieving the address of the +local's CPU deferred_flush pointer. +We can instead use raw_cpu_ptr() while we remain preemptible. The worst +thing that can happen is that flush_unmaps_timeout() is invoked multiple +times: once by taskA after seeing HIGH_WATER_MARK and then preempted to +another CPU and then by taskB which saw HIGH_WATER_MARK on the same CPU +as taskA. It is also likely that ->size got from HIGH_WATER_MARK to 0 +right after its read because another CPU invoked flush_unmaps_timeout() +for this CPU. +The access to flush_data is protected by a spinlock so even if we get +migrated to another CPU or preempted - the data structure is protected. + +While at it, I marked deferred_flush static since I can't find a +reference to it outside of this file. + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/iommu/intel-iommu.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- a/drivers/iommu/intel-iommu.c ++++ b/drivers/iommu/intel-iommu.c +@@ -479,7 +479,7 @@ struct deferred_flush_data { + struct deferred_flush_table *tables; + }; + +-DEFINE_PER_CPU(struct deferred_flush_data, deferred_flush); ++static DEFINE_PER_CPU(struct deferred_flush_data, deferred_flush); + + /* bitmap for indexing intel_iommus */ + static int g_num_of_iommus; +@@ -3696,10 +3696,8 @@ static void add_unmap(struct dmar_domain + struct intel_iommu *iommu; + struct deferred_flush_entry *entry; + struct deferred_flush_data *flush_data; +- unsigned int cpuid; + +- cpuid = get_cpu(); +- flush_data = per_cpu_ptr(&deferred_flush, cpuid); ++ flush_data = raw_cpu_ptr(&deferred_flush); + + /* Flush all CPUs' entries to avoid deferring too much. If + * this becomes a bottleneck, can just flush us, and rely on +@@ -3732,8 +3730,6 @@ static void add_unmap(struct dmar_domain + } + flush_data->size++; + spin_unlock_irqrestore(&flush_data->lock, flags); +- +- put_cpu(); + } + + static void intel_unmap(struct device *dev, dma_addr_t dev_addr, size_t size) diff --git a/patches/features/all/rt/ipc-sem-rework-semaphore-wakeups.patch b/patches/features/all/rt/ipc-sem-rework-semaphore-wakeups.patch new file mode 100644 index 00000000000..7da3ae1c2c9 --- /dev/null +++ b/patches/features/all/rt/ipc-sem-rework-semaphore-wakeups.patch @@ -0,0 +1,70 @@ +Subject: ipc/sem: Rework semaphore wakeups +From: Peter Zijlstra +Date: Wed, 14 Sep 2011 11:57:04 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Current sysv sems have a weird ass wakeup scheme that involves keeping +preemption disabled over a potential O(n^2) loop and busy waiting on +that on other CPUs. + +Kill this and simply wake the task directly from under the sem_lock. + +This was discovered by a migrate_disable() debug feature that +disallows: + + spin_lock(); + preempt_disable(); + spin_unlock() + preempt_enable(); + +Cc: Manfred Spraul +Suggested-by: Thomas Gleixner +Reported-by: Mike Galbraith +Signed-off-by: Peter Zijlstra +Cc: Manfred Spraul +Link: http://lkml.kernel.org/r/1315994224.5040.1.camel@twins +Signed-off-by: Thomas Gleixner +--- + ipc/sem.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/ipc/sem.c ++++ b/ipc/sem.c +@@ -712,6 +712,13 @@ static int perform_atomic_semop(struct s + static void wake_up_sem_queue_prepare(struct list_head *pt, + struct sem_queue *q, int error) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct task_struct *p = q->sleeper; ++ get_task_struct(p); ++ q->status = error; ++ wake_up_process(p); ++ put_task_struct(p); ++#else + if (list_empty(pt)) { + /* + * Hold preempt off so that we don't get preempted and have the +@@ -723,6 +730,7 @@ static void wake_up_sem_queue_prepare(st + q->pid = error; + + list_add_tail(&q->list, pt); ++#endif + } + + /** +@@ -736,6 +744,7 @@ static void wake_up_sem_queue_prepare(st + */ + static void wake_up_sem_queue_do(struct list_head *pt) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + struct sem_queue *q, *t; + int did_something; + +@@ -748,6 +757,7 @@ static void wake_up_sem_queue_do(struct + } + if (did_something) + preempt_enable(); ++#endif + } + + static void unlink_queue(struct sem_array *sma, struct sem_queue *q) diff --git a/patches/features/all/rt/irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch b/patches/features/all/rt/irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch new file mode 100644 index 00000000000..1b0ce629563 --- /dev/null +++ b/patches/features/all/rt/irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch @@ -0,0 +1,147 @@ +Subject: genirq: Allow disabling of softirq processing in irq thread context +From: Thomas Gleixner +Date: Tue, 31 Jan 2012 13:01:27 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The processing of softirqs in irq thread context is a performance gain +for the non-rt workloads of a system, but it's counterproductive for +interrupts which are explicitely related to the realtime +workload. Allow such interrupts to prevent softirq processing in their +thread context. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/interrupt.h | 2 ++ + include/linux/irq.h | 4 +++- + kernel/irq/manage.c | 13 ++++++++++++- + kernel/irq/settings.h | 12 ++++++++++++ + kernel/softirq.c | 9 +++++++++ + 5 files changed, 38 insertions(+), 2 deletions(-) + +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -61,6 +61,7 @@ + * interrupt handler after suspending interrupts. For system + * wakeup devices users need to implement wakeup detection in + * their interrupt handlers. ++ * IRQF_NO_SOFTIRQ_CALL - Do not process softirqs in the irq thread context (RT) + */ + #define IRQF_SHARED 0x00000080 + #define IRQF_PROBE_SHARED 0x00000100 +@@ -74,6 +75,7 @@ + #define IRQF_NO_THREAD 0x00010000 + #define IRQF_EARLY_RESUME 0x00020000 + #define IRQF_COND_SUSPEND 0x00040000 ++#define IRQF_NO_SOFTIRQ_CALL 0x00080000 + + #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD) + +--- a/include/linux/irq.h ++++ b/include/linux/irq.h +@@ -72,6 +72,7 @@ enum irqchip_irq_state; + * IRQ_IS_POLLED - Always polled by another interrupt. Exclude + * it from the spurious interrupt detection + * mechanism and from core side polling. ++ * IRQ_NO_SOFTIRQ_CALL - No softirq processing in the irq thread context (RT) + * IRQ_DISABLE_UNLAZY - Disable lazy irq disable + */ + enum { +@@ -99,13 +100,14 @@ enum { + IRQ_PER_CPU_DEVID = (1 << 17), + IRQ_IS_POLLED = (1 << 18), + IRQ_DISABLE_UNLAZY = (1 << 19), ++ IRQ_NO_SOFTIRQ_CALL = (1 << 20), + }; + + #define IRQF_MODIFY_MASK \ + (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \ + IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \ + IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \ +- IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY) ++ IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY | IRQ_NO_SOFTIRQ_CALL) + + #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING) + +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -881,7 +881,15 @@ irq_forced_thread_fn(struct irq_desc *de + local_bh_disable(); + ret = action->thread_fn(action->irq, action->dev_id); + irq_finalize_oneshot(desc, action); +- local_bh_enable(); ++ /* ++ * Interrupts which have real time requirements can be set up ++ * to avoid softirq processing in the thread handler. This is ++ * safe as these interrupts do not raise soft interrupts. ++ */ ++ if (irq_settings_no_softirq_call(desc)) ++ _local_bh_enable(); ++ else ++ local_bh_enable(); + return ret; + } + +@@ -1338,6 +1346,9 @@ static int + irqd_set(&desc->irq_data, IRQD_NO_BALANCING); + } + ++ if (new->flags & IRQF_NO_SOFTIRQ_CALL) ++ irq_settings_set_no_softirq_call(desc); ++ + /* Set default affinity mask once everything is setup */ + setup_affinity(desc, mask); + +--- a/kernel/irq/settings.h ++++ b/kernel/irq/settings.h +@@ -16,6 +16,7 @@ enum { + _IRQ_PER_CPU_DEVID = IRQ_PER_CPU_DEVID, + _IRQ_IS_POLLED = IRQ_IS_POLLED, + _IRQ_DISABLE_UNLAZY = IRQ_DISABLE_UNLAZY, ++ _IRQ_NO_SOFTIRQ_CALL = IRQ_NO_SOFTIRQ_CALL, + _IRQF_MODIFY_MASK = IRQF_MODIFY_MASK, + }; + +@@ -30,6 +31,7 @@ enum { + #define IRQ_PER_CPU_DEVID GOT_YOU_MORON + #define IRQ_IS_POLLED GOT_YOU_MORON + #define IRQ_DISABLE_UNLAZY GOT_YOU_MORON ++#define IRQ_NO_SOFTIRQ_CALL GOT_YOU_MORON + #undef IRQF_MODIFY_MASK + #define IRQF_MODIFY_MASK GOT_YOU_MORON + +@@ -40,6 +42,16 @@ irq_settings_clr_and_set(struct irq_desc + desc->status_use_accessors |= (set & _IRQF_MODIFY_MASK); + } + ++static inline bool irq_settings_no_softirq_call(struct irq_desc *desc) ++{ ++ return desc->status_use_accessors & _IRQ_NO_SOFTIRQ_CALL; ++} ++ ++static inline void irq_settings_set_no_softirq_call(struct irq_desc *desc) ++{ ++ desc->status_use_accessors |= _IRQ_NO_SOFTIRQ_CALL; ++} ++ + static inline bool irq_settings_is_per_cpu(struct irq_desc *desc) + { + return desc->status_use_accessors & _IRQ_PER_CPU; +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -589,6 +589,15 @@ void __local_bh_enable(void) + } + EXPORT_SYMBOL(__local_bh_enable); + ++void _local_bh_enable(void) ++{ ++ if (WARN_ON(current->softirq_nestcnt == 0)) ++ return; ++ if (--current->softirq_nestcnt == 0) ++ migrate_enable(); ++} ++EXPORT_SYMBOL(_local_bh_enable); ++ + int in_serving_softirq(void) + { + return current->flags & PF_IN_SOFTIRQ; diff --git a/patches/features/all/rt/irqwork-Move-irq-safe-work-to-irq-context.patch b/patches/features/all/rt/irqwork-Move-irq-safe-work-to-irq-context.patch new file mode 100644 index 00000000000..f07952e49f4 --- /dev/null +++ b/patches/features/all/rt/irqwork-Move-irq-safe-work-to-irq-context.patch @@ -0,0 +1,78 @@ +Subject: irqwork: Move irq safe work to irq context +From: Thomas Gleixner +Date: Sun, 15 Nov 2015 18:40:17 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On architectures where arch_irq_work_has_interrupt() returns false, we +end up running the irq safe work from the softirq context. That +results in a potential deadlock in the scheduler irq work which +expects that function to be called with interrupts disabled. + +Split the irq_work_tick() function into a hard and soft variant. Call +the hard variant from the tick interrupt and add the soft variant to +the timer softirq. + +Reported-and-tested-by: Yanjiang Jin +Signed-off-by: Thomas Gleixner +Cc: stable-rt@vger.kernel.org +--- + include/linux/irq_work.h | 6 ++++++ + kernel/irq_work.c | 9 +++++++++ + kernel/time/timer.c | 6 ++---- + 3 files changed, 17 insertions(+), 4 deletions(-) + +--- a/include/linux/irq_work.h ++++ b/include/linux/irq_work.h +@@ -52,4 +52,10 @@ static inline bool irq_work_needs_cpu(vo + static inline void irq_work_run(void) { } + #endif + ++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL) ++void irq_work_tick_soft(void); ++#else ++static inline void irq_work_tick_soft(void) { } ++#endif ++ + #endif /* _LINUX_IRQ_WORK_H */ +--- a/kernel/irq_work.c ++++ b/kernel/irq_work.c +@@ -200,8 +200,17 @@ void irq_work_tick(void) + + if (!llist_empty(raised) && !arch_irq_work_has_interrupt()) + irq_work_run_list(raised); ++ ++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) ++ irq_work_run_list(this_cpu_ptr(&lazy_list)); ++} ++ ++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL) ++void irq_work_tick_soft(void) ++{ + irq_work_run_list(this_cpu_ptr(&lazy_list)); + } ++#endif + + /* + * Synchronize against the irq_work @entry, ensures the entry is not +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -1644,7 +1644,7 @@ void update_process_times(int user_tick) + scheduler_tick(); + run_local_timers(); + rcu_check_callbacks(user_tick); +-#if defined(CONFIG_IRQ_WORK) && !defined(CONFIG_PREEMPT_RT_FULL) ++#if defined(CONFIG_IRQ_WORK) + if (in_irq()) + irq_work_tick(); + #endif +@@ -1684,9 +1684,7 @@ static __latent_entropy void run_timer_s + { + struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); + +-#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL) +- irq_work_tick(); +-#endif ++ irq_work_tick_soft(); + + __run_timers(base); + if (IS_ENABLED(CONFIG_NO_HZ_COMMON) && base->nohz_active) diff --git a/patches/features/all/rt/irqwork-push_most_work_into_softirq_context.patch b/patches/features/all/rt/irqwork-push_most_work_into_softirq_context.patch new file mode 100644 index 00000000000..731687fb08f --- /dev/null +++ b/patches/features/all/rt/irqwork-push_most_work_into_softirq_context.patch @@ -0,0 +1,186 @@ +Subject: irqwork: push most work into softirq context +From: Sebastian Andrzej Siewior +Date: Tue, 23 Jun 2015 15:32:51 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Initially we defered all irqwork into softirq because we didn't want the +latency spikes if perf or another user was busy and delayed the RT task. +The NOHZ trigger (nohz_full_kick_work) was the first user that did not work +as expected if it did not run in the original irqwork context so we had to +bring it back somehow for it. push_irq_work_func is the second one that +requires this. + +This patch adds the IRQ_WORK_HARD_IRQ which makes sure the callback runs +in raw-irq context. Everything else is defered into softirq context. Without +-RT we have the orignal behavior. + +This patch incorporates tglx orignal work which revoked a little bringing back +the arch_irq_work_raise() if possible and a few fixes from Steven Rostedt and +Mike Galbraith, + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/irq_work.h | 1 + + kernel/irq_work.c | 47 ++++++++++++++++++++++++++++++++++------------- + kernel/sched/rt.c | 1 + + kernel/time/tick-sched.c | 1 + + kernel/time/timer.c | 6 +++++- + 5 files changed, 42 insertions(+), 14 deletions(-) + +--- a/include/linux/irq_work.h ++++ b/include/linux/irq_work.h +@@ -16,6 +16,7 @@ + #define IRQ_WORK_BUSY 2UL + #define IRQ_WORK_FLAGS 3UL + #define IRQ_WORK_LAZY 4UL /* Doesn't want IPI, wait for tick */ ++#define IRQ_WORK_HARD_IRQ 8UL /* Run hard IRQ context, even on RT */ + + struct irq_work { + unsigned long flags; +--- a/kernel/irq_work.c ++++ b/kernel/irq_work.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + + +@@ -65,6 +66,8 @@ void __weak arch_irq_work_raise(void) + */ + bool irq_work_queue_on(struct irq_work *work, int cpu) + { ++ struct llist_head *list; ++ + /* All work should have been flushed before going offline */ + WARN_ON_ONCE(cpu_is_offline(cpu)); + +@@ -75,7 +78,12 @@ bool irq_work_queue_on(struct irq_work * + if (!irq_work_claim(work)) + return false; + +- if (llist_add(&work->llnode, &per_cpu(raised_list, cpu))) ++ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ)) ++ list = &per_cpu(lazy_list, cpu); ++ else ++ list = &per_cpu(raised_list, cpu); ++ ++ if (llist_add(&work->llnode, list)) + arch_send_call_function_single_ipi(cpu); + + return true; +@@ -86,6 +94,9 @@ EXPORT_SYMBOL_GPL(irq_work_queue_on); + /* Enqueue the irq work @work on the current CPU */ + bool irq_work_queue(struct irq_work *work) + { ++ struct llist_head *list; ++ bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL); ++ + /* Only queue if not already pending */ + if (!irq_work_claim(work)) + return false; +@@ -93,13 +104,15 @@ bool irq_work_queue(struct irq_work *wor + /* Queue the entry and raise the IPI if needed. */ + preempt_disable(); + +- /* If the work is "lazy", handle it from next tick if any */ +- if (work->flags & IRQ_WORK_LAZY) { +- if (llist_add(&work->llnode, this_cpu_ptr(&lazy_list)) && +- tick_nohz_tick_stopped()) +- arch_irq_work_raise(); +- } else { +- if (llist_add(&work->llnode, this_cpu_ptr(&raised_list))) ++ lazy_work = work->flags & IRQ_WORK_LAZY; ++ ++ if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ))) ++ list = this_cpu_ptr(&lazy_list); ++ else ++ list = this_cpu_ptr(&raised_list); ++ ++ if (llist_add(&work->llnode, list)) { ++ if (!lazy_work || tick_nohz_tick_stopped()) + arch_irq_work_raise(); + } + +@@ -116,9 +129,8 @@ bool irq_work_needs_cpu(void) + raised = this_cpu_ptr(&raised_list); + lazy = this_cpu_ptr(&lazy_list); + +- if (llist_empty(raised) || arch_irq_work_has_interrupt()) +- if (llist_empty(lazy)) +- return false; ++ if (llist_empty(raised) && llist_empty(lazy)) ++ return false; + + /* All work should have been flushed before going offline */ + WARN_ON_ONCE(cpu_is_offline(smp_processor_id())); +@@ -132,7 +144,7 @@ static void irq_work_run_list(struct lli + struct irq_work *work; + struct llist_node *llnode; + +- BUG_ON(!irqs_disabled()); ++ BUG_ON_NONRT(!irqs_disabled()); + + if (llist_empty(list)) + return; +@@ -169,7 +181,16 @@ static void irq_work_run_list(struct lli + void irq_work_run(void) + { + irq_work_run_list(this_cpu_ptr(&raised_list)); +- irq_work_run_list(this_cpu_ptr(&lazy_list)); ++ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) { ++ /* ++ * NOTE: we raise softirq via IPI for safety, ++ * and execute in irq_work_tick() to move the ++ * overhead from hard to soft irq context. ++ */ ++ if (!llist_empty(this_cpu_ptr(&lazy_list))) ++ raise_softirq(TIMER_SOFTIRQ); ++ } else ++ irq_work_run_list(this_cpu_ptr(&lazy_list)); + } + EXPORT_SYMBOL_GPL(irq_work_run); + +--- a/kernel/sched/rt.c ++++ b/kernel/sched/rt.c +@@ -102,6 +102,7 @@ void init_rt_rq(struct rt_rq *rt_rq) + rt_rq->push_cpu = nr_cpu_ids; + raw_spin_lock_init(&rt_rq->push_lock); + init_irq_work(&rt_rq->push_work, push_irq_work_func); ++ rt_rq->push_work.flags |= IRQ_WORK_HARD_IRQ; + #endif + #endif /* CONFIG_SMP */ + /* We start is dequeued state, because no RT tasks are queued */ +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -220,6 +220,7 @@ static void nohz_full_kick_func(struct i + + static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = { + .func = nohz_full_kick_func, ++ .flags = IRQ_WORK_HARD_IRQ, + }; + + /* +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -1644,7 +1644,7 @@ void update_process_times(int user_tick) + scheduler_tick(); + run_local_timers(); + rcu_check_callbacks(user_tick); +-#ifdef CONFIG_IRQ_WORK ++#if defined(CONFIG_IRQ_WORK) && !defined(CONFIG_PREEMPT_RT_FULL) + if (in_irq()) + irq_work_tick(); + #endif +@@ -1684,6 +1684,10 @@ static __latent_entropy void run_timer_s + { + struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); + ++#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL) ++ irq_work_tick(); ++#endif ++ + __run_timers(base); + if (IS_ENABLED(CONFIG_NO_HZ_COMMON) && base->nohz_active) + __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); diff --git a/patches/features/all/rt/jump-label-rt.patch b/patches/features/all/rt/jump-label-rt.patch new file mode 100644 index 00000000000..8448f62e1d7 --- /dev/null +++ b/patches/features/all/rt/jump-label-rt.patch @@ -0,0 +1,36 @@ +Subject: jump-label: disable if stop_machine() is used +From: Thomas Gleixner +Date: Wed, 08 Jul 2015 17:14:48 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Some architectures are using stop_machine() while switching the opcode which +leads to latency spikes. +The architectures which use stop_machine() atm: +- ARM stop machine +- s390 stop machine + +The architecures which use other sorcery: +- MIPS +- X86 +- powerpc +- sparc +- arm64 + +Signed-off-by: Thomas Gleixner +[bigeasy: only ARM for now] +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/arm/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -36,7 +36,7 @@ config ARM + select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT) + select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 + select HAVE_ARCH_HARDENED_USERCOPY +- select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU ++ select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU && !PREEMPT_RT_BASE + select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU + select HAVE_ARCH_MMAP_RND_BITS if MMU + select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) diff --git a/patches/features/all/rt/kconfig-disable-a-few-options-rt.patch b/patches/features/all/rt/kconfig-disable-a-few-options-rt.patch new file mode 100644 index 00000000000..956fef4bda1 --- /dev/null +++ b/patches/features/all/rt/kconfig-disable-a-few-options-rt.patch @@ -0,0 +1,34 @@ +Subject: kconfig: Disable config options which are not RT compatible +From: Thomas Gleixner +Date: Sun, 24 Jul 2011 12:11:43 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable stuff which is known to have issues on RT + +Signed-off-by: Thomas Gleixner +--- + arch/Kconfig | 1 + + mm/Kconfig | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/Kconfig ++++ b/arch/Kconfig +@@ -9,6 +9,7 @@ config OPROFILE + tristate "OProfile system profiling" + depends on PROFILING + depends on HAVE_OPROFILE ++ depends on !PREEMPT_RT_FULL + select RING_BUFFER + select RING_BUFFER_ALLOW_SWAP + help +--- a/mm/Kconfig ++++ b/mm/Kconfig +@@ -410,7 +410,7 @@ config NOMMU_INITIAL_TRIM_EXCESS + + config TRANSPARENT_HUGEPAGE + bool "Transparent Hugepage Support" +- depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE ++ depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE && !PREEMPT_RT_FULL + select COMPACTION + select RADIX_TREE_MULTIORDER + help diff --git a/patches/features/all/rt/kconfig-preempt-rt-full.patch b/patches/features/all/rt/kconfig-preempt-rt-full.patch new file mode 100644 index 00000000000..bcfa2b331ad --- /dev/null +++ b/patches/features/all/rt/kconfig-preempt-rt-full.patch @@ -0,0 +1,59 @@ +Subject: kconfig: Add PREEMPT_RT_FULL +From: Thomas Gleixner +Date: Wed, 29 Jun 2011 14:58:57 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Introduce the final symbol for PREEMPT_RT_FULL. + +Signed-off-by: Thomas Gleixner +--- + init/Makefile | 2 +- + kernel/Kconfig.preempt | 8 ++++++++ + scripts/mkcompile_h | 4 +++- + 3 files changed, 12 insertions(+), 2 deletions(-) + +--- a/init/Makefile ++++ b/init/Makefile +@@ -35,4 +35,4 @@ mounts-$(CONFIG_BLK_DEV_MD) += do_mounts + include/generated/compile.h: FORCE + @$($(quiet)chk_compile.h) + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ +- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)" ++ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)" +--- a/kernel/Kconfig.preempt ++++ b/kernel/Kconfig.preempt +@@ -67,6 +67,14 @@ config PREEMPT_RTB + enables changes which are preliminary for the full preemptible + RT kernel. + ++config PREEMPT_RT_FULL ++ bool "Fully Preemptible Kernel (RT)" ++ depends on IRQ_FORCED_THREADING ++ select PREEMPT_RT_BASE ++ select PREEMPT_RCU ++ help ++ All and everything ++ + endchoice + + config PREEMPT_COUNT +--- a/scripts/mkcompile_h ++++ b/scripts/mkcompile_h +@@ -4,7 +4,8 @@ TARGET=$1 + ARCH=$2 + SMP=$3 + PREEMPT=$4 +-CC=$5 ++RT=$5 ++CC=$6 + + vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; } + +@@ -57,6 +58,7 @@ UTS_VERSION="#$VERSION" + CONFIG_FLAGS="" + if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi + if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi ++if [ -n "$RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS RT"; fi + UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP" + + # Truncate to maximum length diff --git a/patches/features/all/rt/kernel-SRCU-provide-a-static-initializer.patch b/patches/features/all/rt/kernel-SRCU-provide-a-static-initializer.patch new file mode 100644 index 00000000000..dd345a8d521 --- /dev/null +++ b/patches/features/all/rt/kernel-SRCU-provide-a-static-initializer.patch @@ -0,0 +1,125 @@ +From: Sebastian Andrzej Siewior +Date: Tue, 19 Mar 2013 14:44:30 +0100 +Subject: kernel/SRCU: provide a static initializer +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There are macros for static initializer for the three out of four +possible notifier types, that are: + ATOMIC_NOTIFIER_HEAD() + BLOCKING_NOTIFIER_HEAD() + RAW_NOTIFIER_HEAD() + +This patch provides a static initilizer for the forth type to make it +complete. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/notifier.h | 34 +++++++++++++++++++++++++--------- + include/linux/srcu.h | 6 +++--- + 2 files changed, 28 insertions(+), 12 deletions(-) + +--- a/include/linux/notifier.h ++++ b/include/linux/notifier.h +@@ -6,7 +6,7 @@ + * + * Alan Cox + */ +- ++ + #ifndef _LINUX_NOTIFIER_H + #define _LINUX_NOTIFIER_H + #include +@@ -42,9 +42,7 @@ + * in srcu_notifier_call_chain(): no cache bounces and no memory barriers. + * As compensation, srcu_notifier_chain_unregister() is rather expensive. + * SRCU notifier chains should be used when the chain will be called very +- * often but notifier_blocks will seldom be removed. Also, SRCU notifier +- * chains are slightly more difficult to use because they require special +- * runtime initialization. ++ * often but notifier_blocks will seldom be removed. + */ + + struct notifier_block; +@@ -90,7 +88,7 @@ struct srcu_notifier_head { + (name)->head = NULL; \ + } while (0) + +-/* srcu_notifier_heads must be initialized and cleaned up dynamically */ ++/* srcu_notifier_heads must be cleaned up dynamically */ + extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); + #define srcu_cleanup_notifier_head(name) \ + cleanup_srcu_struct(&(name)->srcu); +@@ -103,7 +101,13 @@ extern void srcu_init_notifier_head(stru + .head = NULL } + #define RAW_NOTIFIER_INIT(name) { \ + .head = NULL } +-/* srcu_notifier_heads cannot be initialized statically */ ++ ++#define SRCU_NOTIFIER_INIT(name, pcpu) \ ++ { \ ++ .mutex = __MUTEX_INITIALIZER(name.mutex), \ ++ .head = NULL, \ ++ .srcu = __SRCU_STRUCT_INIT(name.srcu, pcpu), \ ++ } + + #define ATOMIC_NOTIFIER_HEAD(name) \ + struct atomic_notifier_head name = \ +@@ -115,6 +119,18 @@ extern void srcu_init_notifier_head(stru + struct raw_notifier_head name = \ + RAW_NOTIFIER_INIT(name) + ++#define _SRCU_NOTIFIER_HEAD(name, mod) \ ++ static DEFINE_PER_CPU(struct srcu_struct_array, \ ++ name##_head_srcu_array); \ ++ mod struct srcu_notifier_head name = \ ++ SRCU_NOTIFIER_INIT(name, name##_head_srcu_array) ++ ++#define SRCU_NOTIFIER_HEAD(name) \ ++ _SRCU_NOTIFIER_HEAD(name, ) ++ ++#define SRCU_NOTIFIER_HEAD_STATIC(name) \ ++ _SRCU_NOTIFIER_HEAD(name, static) ++ + #ifdef __KERNEL__ + + extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, +@@ -184,12 +200,12 @@ static inline int notifier_to_errno(int + + /* + * Declared notifiers so far. I can imagine quite a few more chains +- * over time (eg laptop power reset chains, reboot chain (to clean ++ * over time (eg laptop power reset chains, reboot chain (to clean + * device units up), device [un]mount chain, module load/unload chain, +- * low memory chain, screenblank chain (for plug in modular screenblankers) ++ * low memory chain, screenblank chain (for plug in modular screenblankers) + * VC switch chains (for loadable kernel svgalib VC switch helpers) etc... + */ +- ++ + /* CPU notfiers are defined in include/linux/cpu.h. */ + + /* netdevice notifiers are defined in include/linux/netdevice.h */ +--- a/include/linux/srcu.h ++++ b/include/linux/srcu.h +@@ -84,10 +84,10 @@ int init_srcu_struct(struct srcu_struct + + void process_srcu(struct work_struct *work); + +-#define __SRCU_STRUCT_INIT(name) \ ++#define __SRCU_STRUCT_INIT(name, pcpu_name) \ + { \ + .completed = -300, \ +- .per_cpu_ref = &name##_srcu_array, \ ++ .per_cpu_ref = &pcpu_name, \ + .queue_lock = __SPIN_LOCK_UNLOCKED(name.queue_lock), \ + .running = false, \ + .batch_queue = RCU_BATCH_INIT(name.batch_queue), \ +@@ -119,7 +119,7 @@ void process_srcu(struct work_struct *wo + */ + #define __DEFINE_SRCU(name, is_static) \ + static DEFINE_PER_CPU(struct srcu_struct_array, name##_srcu_array);\ +- is_static struct srcu_struct name = __SRCU_STRUCT_INIT(name) ++ is_static struct srcu_struct name = __SRCU_STRUCT_INIT(name, name##_srcu_array) + #define DEFINE_SRCU(name) __DEFINE_SRCU(name, /* not static */) + #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static) + diff --git a/patches/features/all/rt/kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch b/patches/features/all/rt/kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch new file mode 100644 index 00000000000..52b91d717b9 --- /dev/null +++ b/patches/features/all/rt/kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch @@ -0,0 +1,86 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 7 Jun 2013 22:37:06 +0200 +Subject: kernel/cpu: fix cpu down problem if kthread's cpu is going down +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +If kthread is pinned to CPUx and CPUx is going down then we get into +trouble: +- first the unplug thread is created +- it will set itself to hp->unplug. As a result, every task that is + going to take a lock, has to leave the CPU. +- the CPU_DOWN_PREPARE notifier are started. The worker thread will + start a new process for the "high priority worker". + Now kthread would like to take a lock but since it can't leave the CPU + it will never complete its task. + +We could fire the unplug thread after the notifier but then the cpu is +no longer marked "online" and the unplug thread will run on CPU0 which +was fixed before :) + +So instead the unplug thread is started and kept waiting until the +notfier complete their work. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/cpu.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -259,6 +259,7 @@ struct hotplug_pcp { + int refcount; + int grab_lock; + struct completion synced; ++ struct completion unplug_wait; + #ifdef CONFIG_PREEMPT_RT_FULL + /* + * Note, on PREEMPT_RT, the hotplug lock must save the state of +@@ -362,6 +363,7 @@ static int sync_unplug_thread(void *data + { + struct hotplug_pcp *hp = data; + ++ wait_for_completion(&hp->unplug_wait); + preempt_disable(); + hp->unplug = current; + wait_for_pinned_cpus(hp); +@@ -427,6 +429,14 @@ static void __cpu_unplug_sync(struct hot + wait_for_completion(&hp->synced); + } + ++static void __cpu_unplug_wait(unsigned int cpu) ++{ ++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu); ++ ++ complete(&hp->unplug_wait); ++ wait_for_completion(&hp->synced); ++} ++ + /* + * Start the sync_unplug_thread on the target cpu and wait for it to + * complete. +@@ -450,6 +460,7 @@ static int cpu_unplug_begin(unsigned int + tell_sched_cpu_down_begin(cpu); + + init_completion(&hp->synced); ++ init_completion(&hp->unplug_wait); + + hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu); + if (IS_ERR(hp->sync_tsk)) { +@@ -465,8 +476,7 @@ static int cpu_unplug_begin(unsigned int + * wait for tasks that are going to enter these sections and + * we must not have them block. + */ +- __cpu_unplug_sync(hp); +- ++ wake_up_process(hp->sync_tsk); + return 0; + } + +@@ -1062,6 +1072,7 @@ static int takedown_cpu(unsigned int cpu + struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); + int err; + ++ __cpu_unplug_wait(cpu); + /* Park the smpboot threads */ + kthread_park(per_cpu_ptr(&cpuhp_state, cpu)->thread); + smpboot_park_threads(cpu); diff --git a/patches/features/all/rt/kernel-futex-don-t-deboost-too-early.patch b/patches/features/all/rt/kernel-futex-don-t-deboost-too-early.patch new file mode 100644 index 00000000000..0065aaa1aaa --- /dev/null +++ b/patches/features/all/rt/kernel-futex-don-t-deboost-too-early.patch @@ -0,0 +1,162 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 29 Sep 2016 18:49:22 +0200 +Subject: [PATCH] kernel/futex: don't deboost too early +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The sequence: + T1 holds futex + T2 blocks on futex and boosts T1 + T1 unlocks futex and holds hb->lock + T1 unlocks rt mutex, so T1 has no more pi waiters + T3 blocks on hb->lock and adds itself to the pi waiters list of T1 + T1 unlocks hb->lock and deboosts itself + T4 preempts T1 so the wakeup of T2 gets delayed + +As a workaround I attempt here do unlock the hb->lock without a deboost +and perform the deboost after the wake up of the waiter. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/spinlock.h | 6 ++++ + include/linux/spinlock_rt.h | 2 + + kernel/futex.c | 2 - + kernel/locking/rtmutex.c | 53 ++++++++++++++++++++++++++++++++++++++------ + 4 files changed, 55 insertions(+), 8 deletions(-) + +--- a/include/linux/spinlock.h ++++ b/include/linux/spinlock.h +@@ -355,6 +355,12 @@ static __always_inline void spin_unlock( + raw_spin_unlock(&lock->rlock); + } + ++static __always_inline int spin_unlock_no_deboost(spinlock_t *lock) ++{ ++ raw_spin_unlock(&lock->rlock); ++ return 0; ++} ++ + static __always_inline void spin_unlock_bh(spinlock_t *lock) + { + raw_spin_unlock_bh(&lock->rlock); +--- a/include/linux/spinlock_rt.h ++++ b/include/linux/spinlock_rt.h +@@ -26,6 +26,7 @@ extern void __lockfunc rt_spin_lock(spin + extern unsigned long __lockfunc rt_spin_lock_trace_flags(spinlock_t *lock); + extern void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass); + extern void __lockfunc rt_spin_unlock(spinlock_t *lock); ++extern int __lockfunc rt_spin_unlock_no_deboost(spinlock_t *lock); + extern void __lockfunc rt_spin_unlock_wait(spinlock_t *lock); + extern int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags); + extern int __lockfunc rt_spin_trylock_bh(spinlock_t *lock); +@@ -111,6 +112,7 @@ static inline unsigned long spin_lock_tr + #define spin_lock_nest_lock(lock, nest_lock) spin_lock_nested(lock, 0) + + #define spin_unlock(lock) rt_spin_unlock(lock) ++#define spin_unlock_no_deboost(lock) rt_spin_unlock_no_deboost(lock) + + #define spin_unlock_bh(lock) \ + do { \ +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -1377,7 +1377,7 @@ static int wake_futex_pi(u32 __user *uad + * deboost first (and lose our higher priority), then the task might get + * scheduled away before the wake up can take place. + */ +- spin_unlock(&hb->lock); ++ deboost |= spin_unlock_no_deboost(&hb->lock); + wake_up_q(&wake_q); + wake_up_q_sleeper(&wake_sleeper_q); + if (deboost) +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -997,13 +997,14 @@ static inline void rt_spin_lock_fastlock + slowfn(lock); + } + +-static inline void rt_spin_lock_fastunlock(struct rt_mutex *lock, +- void (*slowfn)(struct rt_mutex *lock)) ++static inline int rt_spin_lock_fastunlock(struct rt_mutex *lock, ++ int (*slowfn)(struct rt_mutex *lock)) + { +- if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) ++ if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) { + rt_mutex_deadlock_account_unlock(current); +- else +- slowfn(lock); ++ return 0; ++ } ++ return slowfn(lock); + } + #ifdef CONFIG_SMP + /* +@@ -1138,7 +1139,7 @@ static void mark_wakeup_next_waiter(stru + /* + * Slow path to release a rt_mutex spin_lock style + */ +-static void noinline __sched rt_spin_lock_slowunlock(struct rt_mutex *lock) ++static int noinline __sched rt_spin_lock_slowunlock(struct rt_mutex *lock) + { + unsigned long flags; + WAKE_Q(wake_q); +@@ -1153,7 +1154,7 @@ static void noinline __sched rt_spin_lo + if (!rt_mutex_has_waiters(lock)) { + lock->owner = NULL; + raw_spin_unlock_irqrestore(&lock->wait_lock, flags); +- return; ++ return 0; + } + + mark_wakeup_next_waiter(&wake_q, &wake_sleeper_q, lock); +@@ -1164,6 +1165,33 @@ static void noinline __sched rt_spin_lo + + /* Undo pi boosting.when necessary */ + rt_mutex_adjust_prio(current); ++ return 0; ++} ++ ++static int noinline __sched rt_spin_lock_slowunlock_no_deboost(struct rt_mutex *lock) ++{ ++ unsigned long flags; ++ WAKE_Q(wake_q); ++ WAKE_Q(wake_sleeper_q); ++ ++ raw_spin_lock_irqsave(&lock->wait_lock, flags); ++ ++ debug_rt_mutex_unlock(lock); ++ ++ rt_mutex_deadlock_account_unlock(current); ++ ++ if (!rt_mutex_has_waiters(lock)) { ++ lock->owner = NULL; ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ return 0; ++ } ++ ++ mark_wakeup_next_waiter(&wake_q, &wake_sleeper_q, lock); ++ ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ wake_up_q(&wake_q); ++ wake_up_q_sleeper(&wake_sleeper_q); ++ return 1; + } + + void __lockfunc rt_spin_lock__no_mg(spinlock_t *lock) +@@ -1221,6 +1249,17 @@ void __lockfunc rt_spin_unlock(spinlock_ + } + EXPORT_SYMBOL(rt_spin_unlock); + ++int __lockfunc rt_spin_unlock_no_deboost(spinlock_t *lock) ++{ ++ int ret; ++ ++ /* NOTE: we always pass in '1' for nested, for simplicity */ ++ spin_release(&lock->dep_map, 1, _RET_IP_); ++ ret = rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock_no_deboost); ++ migrate_enable(); ++ return ret; ++} ++ + void __lockfunc __rt_spin_unlock(struct rt_mutex *lock) + { + rt_spin_lock_fastunlock(lock, rt_spin_lock_slowunlock); diff --git a/patches/features/all/rt/kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch b/patches/features/all/rt/kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch new file mode 100644 index 00000000000..a0642f91db5 --- /dev/null +++ b/patches/features/all/rt/kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch @@ -0,0 +1,59 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 14 Jun 2013 17:16:35 +0200 +Subject: kernel/hotplug: restore original cpu mask oncpu/down +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +If a task which is allowed to run only on CPU X puts CPU Y down then it +will be allowed on all CPUs but the on CPU Y after it comes back from +kernel. This patch ensures that we don't lose the initial setting unless +the CPU the task is running is going down. + + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/cpu.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -1166,6 +1166,7 @@ static int __ref _cpu_down(unsigned int + bool hasdied = false; + int mycpu; + cpumask_var_t cpumask; ++ cpumask_var_t cpumask_org; + + if (num_online_cpus() == 1) + return -EBUSY; +@@ -1176,6 +1177,12 @@ static int __ref _cpu_down(unsigned int + /* Move the downtaker off the unplug cpu */ + if (!alloc_cpumask_var(&cpumask, GFP_KERNEL)) + return -ENOMEM; ++ if (!alloc_cpumask_var(&cpumask_org, GFP_KERNEL)) { ++ free_cpumask_var(cpumask); ++ return -ENOMEM; ++ } ++ ++ cpumask_copy(cpumask_org, tsk_cpus_allowed(current)); + cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu)); + set_cpus_allowed_ptr(current, cpumask); + free_cpumask_var(cpumask); +@@ -1184,7 +1191,8 @@ static int __ref _cpu_down(unsigned int + if (mycpu == cpu) { + printk(KERN_ERR "Yuck! Still on unplug CPU\n!"); + migrate_enable(); +- return -EBUSY; ++ ret = -EBUSY; ++ goto restore_cpus; + } + + cpu_hotplug_begin(); +@@ -1238,6 +1246,9 @@ static int __ref _cpu_down(unsigned int + /* This post dead nonsense must die */ + if (!ret && hasdied) + cpu_notify_nofail(CPU_POST_DEAD, cpu); ++restore_cpus: ++ set_cpus_allowed_ptr(current, cpumask_org); ++ free_cpumask_var(cpumask_org); + return ret; + } + diff --git a/patches/features/all/rt/kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch b/patches/features/all/rt/kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch new file mode 100644 index 00000000000..f121e5db7f7 --- /dev/null +++ b/patches/features/all/rt/kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch @@ -0,0 +1,34 @@ +From: Sebastian Andrzej Siewior +Date: Tue, 9 Feb 2016 18:18:01 +0100 +Subject: kernel: migrate_disable() do fastpath in atomic & + irqs-off +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +With interrupts off it makes no sense to do the long path since we can't +leave the CPU anyway. Also we might end up in a recursion with lockdep. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/sched/core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3299,7 +3299,7 @@ void migrate_disable(void) + { + struct task_struct *p = current; + +- if (in_atomic()) { ++ if (in_atomic() || irqs_disabled()) { + #ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic++; + #endif +@@ -3326,7 +3326,7 @@ void migrate_enable(void) + { + struct task_struct *p = current; + +- if (in_atomic()) { ++ if (in_atomic() || irqs_disabled()) { + #ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic--; + #endif diff --git a/patches/features/all/rt/kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch b/patches/features/all/rt/kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch new file mode 100644 index 00000000000..e426d1a6c97 --- /dev/null +++ b/patches/features/all/rt/kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch @@ -0,0 +1,25 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 4 Feb 2016 16:38:10 +0100 +Subject: [PATCH] kernel/perf: mark perf_cpu_context's timer as irqsafe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Otherwise we get a WARN_ON() backtrace and some events are reported as +"not counted". + +Cc: stable-rt@vger.kernel.org +Reported-by: Yang Shi +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/events/core.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -1050,6 +1050,7 @@ static void __perf_mux_hrtimer_init(stru + raw_spin_lock_init(&cpuctx->hrtimer_lock); + hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED); + timer->function = perf_mux_hrtimer_handler; ++ timer->irqsafe = 1; + } + + static int perf_mux_hrtimer_restart(struct perf_cpu_context *cpuctx) diff --git a/patches/features/all/rt/kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/patches/features/all/rt/kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch new file mode 100644 index 00000000000..7ece56e10b9 --- /dev/null +++ b/patches/features/all/rt/kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch @@ -0,0 +1,42 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 19 May 2016 17:45:27 +0200 +Subject: [PATCH] kernel/printk: Don't try to print from IRQ/NMI region +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On -RT we try to acquire sleeping locks which might lead to warnings +from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on +RT). +We don't print in general from a IRQ off region so we should not try +this via console_unblank() / bust_spinlocks() as well. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/printk/printk.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -1628,6 +1628,11 @@ static void call_console_drivers(int lev + if (!console_drivers) + return; + ++ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) { ++ if (in_irq() || in_nmi()) ++ return; ++ } ++ + migrate_disable(); + for_each_console(con) { + if (exclusive_console && con != exclusive_console) +@@ -2556,6 +2561,11 @@ void console_unblank(void) + { + struct console *c; + ++ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) { ++ if (in_irq() || in_nmi()) ++ return; ++ } ++ + /* + * console_unblank can no longer be called in interrupt context unless + * oops_in_progress is set to 1.. diff --git a/patches/features/all/rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/patches/features/all/rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch new file mode 100644 index 00000000000..e6476b2f2db --- /dev/null +++ b/patches/features/all/rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -0,0 +1,61 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 21 Nov 2016 19:31:08 +0100 +Subject: [PATCH] kernel/sched: move stack + kprobe clean up to + __put_task_struct() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There is no need to free the stack before the task struct. This also +comes handy on -RT because we can't free memory in preempt disabled +region. + +Cc: stable-rt@vger.kernel.org #for kprobe_flush_task() +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/fork.c | 10 ++++++++++ + kernel/sched/core.c | 9 --------- + 2 files changed, 10 insertions(+), 9 deletions(-) + +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -76,6 +76,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -385,6 +386,15 @@ void __put_task_struct(struct task_struc + WARN_ON(atomic_read(&tsk->usage)); + WARN_ON(tsk == current); + ++ /* ++ * Remove function-return probe instances associated with this ++ * task and put them back on the free list. ++ */ ++ kprobe_flush_task(tsk); ++ ++ /* Task is done with its stack. */ ++ put_task_stack(tsk); ++ + cgroup_free(tsk); + task_numa_free(tsk); + security_task_free(tsk); +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -2795,15 +2795,6 @@ static struct rq *finish_task_switch(str + if (prev->sched_class->task_dead) + prev->sched_class->task_dead(prev); + +- /* +- * Remove function-return probe instances associated with this +- * task and put them back on the free list. +- */ +- kprobe_flush_task(prev); +- +- /* Task is done with its stack. */ +- put_task_stack(prev); +- + put_task_struct(prev); + } + diff --git a/patches/features/all/rt/kernel-softirq-unlock-with-irqs-on.patch b/patches/features/all/rt/kernel-softirq-unlock-with-irqs-on.patch new file mode 100644 index 00000000000..20ae1f37d0c --- /dev/null +++ b/patches/features/all/rt/kernel-softirq-unlock-with-irqs-on.patch @@ -0,0 +1,28 @@ +From: Sebastian Andrzej Siewior +Date: Tue, 9 Feb 2016 18:17:18 +0100 +Subject: kernel: softirq: unlock with irqs on +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We unlock the lock while the interrupts are off. This isn't a problem +now but will get because the migrate_disable() + enable are not +symmetrical in regard to the status of interrupts. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/softirq.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -560,8 +560,10 @@ static void do_current_softirqs(void) + do_single_softirq(i); + } + softirq_clr_runner(i); +- unlock_softirq(i); + WARN_ON(current->softirq_nestcnt != 1); ++ local_irq_enable(); ++ unlock_softirq(i); ++ local_irq_disable(); + } + } + diff --git a/patches/features/all/rt/kgb-serial-hackaround.patch b/patches/features/all/rt/kgb-serial-hackaround.patch new file mode 100644 index 00000000000..8f9d76db98c --- /dev/null +++ b/patches/features/all/rt/kgb-serial-hackaround.patch @@ -0,0 +1,102 @@ +From: Jason Wessel +Date: Thu, 28 Jul 2011 12:42:23 -0500 +Subject: kgdb/serial: Short term workaround +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On 07/27/2011 04:37 PM, Thomas Gleixner wrote: +> - KGDB (not yet disabled) is reportedly unusable on -rt right now due +> to missing hacks in the console locking which I dropped on purpose. +> + +To work around this in the short term you can use this patch, in +addition to the clocksource watchdog patch that Thomas brewed up. + +Comments are welcome of course. Ultimately the right solution is to +change separation between the console and the HW to have a polled mode ++ work queue so as not to introduce any kind of latency. + +Thanks, +Jason. + +--- + drivers/tty/serial/8250/8250_port.c | 3 +++ + include/linux/kdb.h | 2 ++ + kernel/debug/kdb/kdb_io.c | 6 ++---- + 3 files changed, 7 insertions(+), 4 deletions(-) + +--- a/drivers/tty/serial/8250/8250_port.c ++++ b/drivers/tty/serial/8250/8250_port.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -3146,6 +3147,8 @@ void serial8250_console_write(struct uar + + if (port->sysrq || oops_in_progress) + locked = 0; ++ else if (in_kdb_printk()) ++ locked = spin_trylock_irqsave(&port->lock, flags); + else + spin_lock_irqsave(&port->lock, flags); + +--- a/include/linux/kdb.h ++++ b/include/linux/kdb.h +@@ -167,6 +167,7 @@ extern __printf(2, 0) int vkdb_printf(en + extern __printf(1, 2) int kdb_printf(const char *, ...); + typedef __printf(1, 2) int (*kdb_printf_t)(const char *, ...); + ++#define in_kdb_printk() (kdb_trap_printk) + extern void kdb_init(int level); + + /* Access to kdb specific polling devices */ +@@ -201,6 +202,7 @@ extern int kdb_register_flags(char *, kd + extern int kdb_unregister(char *); + #else /* ! CONFIG_KGDB_KDB */ + static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } ++#define in_kdb_printk() (0) + static inline void kdb_init(int level) {} + static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, + char *help, short minlen) { return 0; } +--- a/kernel/debug/kdb/kdb_io.c ++++ b/kernel/debug/kdb/kdb_io.c +@@ -554,7 +554,6 @@ int vkdb_printf(enum kdb_msgsrc src, con + int linecount; + int colcount; + int logging, saved_loglevel = 0; +- int saved_trap_printk; + int got_printf_lock = 0; + int retlen = 0; + int fnd, len; +@@ -565,8 +564,6 @@ int vkdb_printf(enum kdb_msgsrc src, con + unsigned long uninitialized_var(flags); + + preempt_disable(); +- saved_trap_printk = kdb_trap_printk; +- kdb_trap_printk = 0; + + /* Serialize kdb_printf if multiple cpus try to write at once. + * But if any cpu goes recursive in kdb, just print the output, +@@ -855,7 +852,6 @@ int vkdb_printf(enum kdb_msgsrc src, con + } else { + __release(kdb_printf_lock); + } +- kdb_trap_printk = saved_trap_printk; + preempt_enable(); + return retlen; + } +@@ -865,9 +861,11 @@ int kdb_printf(const char *fmt, ...) + va_list ap; + int r; + ++ kdb_trap_printk++; + va_start(ap, fmt); + r = vkdb_printf(KDB_MSGSRC_INTERNAL, fmt, ap); + va_end(ap); ++ kdb_trap_printk--; + + return r; + } diff --git a/patches/features/all/rt/latency-hist.patch b/patches/features/all/rt/latency-hist.patch new file mode 100644 index 00000000000..07e03034cff --- /dev/null +++ b/patches/features/all/rt/latency-hist.patch @@ -0,0 +1,1818 @@ +Subject: tracing: Add latency histograms +From: Carsten Emde +Date: Tue, 19 Jul 2011 14:03:41 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This patch provides a recording mechanism to store data of potential +sources of system latencies. The recordings separately determine the +latency caused by a delayed timer expiration, by a delayed wakeup of the +related user space program and by the sum of both. The histograms can be +enabled and reset individually. The data are accessible via the debug +filesystem. For details please consult Documentation/trace/histograms.txt. + +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner + +--- + Documentation/trace/histograms.txt | 186 +++++ + include/linux/hrtimer.h | 4 + include/linux/sched.h | 6 + include/trace/events/hist.h | 73 ++ + include/trace/events/latency_hist.h | 29 + kernel/time/hrtimer.c | 21 + kernel/trace/Kconfig | 104 +++ + kernel/trace/Makefile | 4 + kernel/trace/latency_hist.c | 1178 ++++++++++++++++++++++++++++++++++++ + kernel/trace/trace_irqsoff.c | 11 + 10 files changed, 1616 insertions(+) + +--- /dev/null ++++ b/Documentation/trace/histograms.txt +@@ -0,0 +1,186 @@ ++ Using the Linux Kernel Latency Histograms ++ ++ ++This document gives a short explanation how to enable, configure and use ++latency histograms. Latency histograms are primarily relevant in the ++context of real-time enabled kernels (CONFIG_PREEMPT/CONFIG_PREEMPT_RT) ++and are used in the quality management of the Linux real-time ++capabilities. ++ ++ ++* Purpose of latency histograms ++ ++A latency histogram continuously accumulates the frequencies of latency ++data. There are two types of histograms ++- potential sources of latencies ++- effective latencies ++ ++ ++* Potential sources of latencies ++ ++Potential sources of latencies are code segments where interrupts, ++preemption or both are disabled (aka critical sections). To create ++histograms of potential sources of latency, the kernel stores the time ++stamp at the start of a critical section, determines the time elapsed ++when the end of the section is reached, and increments the frequency ++counter of that latency value - irrespective of whether any concurrently ++running process is affected by latency or not. ++- Configuration items (in the Kernel hacking/Tracers submenu) ++ CONFIG_INTERRUPT_OFF_LATENCY ++ CONFIG_PREEMPT_OFF_LATENCY ++ ++ ++* Effective latencies ++ ++Effective latencies are actually occuring during wakeup of a process. To ++determine effective latencies, the kernel stores the time stamp when a ++process is scheduled to be woken up, and determines the duration of the ++wakeup time shortly before control is passed over to this process. Note ++that the apparent latency in user space may be somewhat longer, since the ++process may be interrupted after control is passed over to it but before ++the execution in user space takes place. Simply measuring the interval ++between enqueuing and wakeup may also not appropriate in cases when a ++process is scheduled as a result of a timer expiration. The timer may have ++missed its deadline, e.g. due to disabled interrupts, but this latency ++would not be registered. Therefore, the offsets of missed timers are ++recorded in a separate histogram. If both wakeup latency and missed timer ++offsets are configured and enabled, a third histogram may be enabled that ++records the overall latency as a sum of the timer latency, if any, and the ++wakeup latency. This histogram is called "timerandwakeup". ++- Configuration items (in the Kernel hacking/Tracers submenu) ++ CONFIG_WAKEUP_LATENCY ++ CONFIG_MISSED_TIMER_OFSETS ++ ++ ++* Usage ++ ++The interface to the administration of the latency histograms is located ++in the debugfs file system. To mount it, either enter ++ ++mount -t sysfs nodev /sys ++mount -t debugfs nodev /sys/kernel/debug ++ ++from shell command line level, or add ++ ++nodev /sys sysfs defaults 0 0 ++nodev /sys/kernel/debug debugfs defaults 0 0 ++ ++to the file /etc/fstab. All latency histogram related files are then ++available in the directory /sys/kernel/debug/tracing/latency_hist. A ++particular histogram type is enabled by writing non-zero to the related ++variable in the /sys/kernel/debug/tracing/latency_hist/enable directory. ++Select "preemptirqsoff" for the histograms of potential sources of ++latencies and "wakeup" for histograms of effective latencies etc. The ++histogram data - one per CPU - are available in the files ++ ++/sys/kernel/debug/tracing/latency_hist/preemptoff/CPUx ++/sys/kernel/debug/tracing/latency_hist/irqsoff/CPUx ++/sys/kernel/debug/tracing/latency_hist/preemptirqsoff/CPUx ++/sys/kernel/debug/tracing/latency_hist/wakeup/CPUx ++/sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio/CPUx ++/sys/kernel/debug/tracing/latency_hist/missed_timer_offsets/CPUx ++/sys/kernel/debug/tracing/latency_hist/timerandwakeup/CPUx ++ ++The histograms are reset by writing non-zero to the file "reset" in a ++particular latency directory. To reset all latency data, use ++ ++#!/bin/sh ++ ++TRACINGDIR=/sys/kernel/debug/tracing ++HISTDIR=$TRACINGDIR/latency_hist ++ ++if test -d $HISTDIR ++then ++ cd $HISTDIR ++ for i in `find . | grep /reset$` ++ do ++ echo 1 >$i ++ done ++fi ++ ++ ++* Data format ++ ++Latency data are stored with a resolution of one microsecond. The ++maximum latency is 10,240 microseconds. The data are only valid, if the ++overflow register is empty. Every output line contains the latency in ++microseconds in the first row and the number of samples in the second ++row. To display only lines with a positive latency count, use, for ++example, ++ ++grep -v " 0$" /sys/kernel/debug/tracing/latency_hist/preemptoff/CPU0 ++ ++#Minimum latency: 0 microseconds. ++#Average latency: 0 microseconds. ++#Maximum latency: 25 microseconds. ++#Total samples: 3104770694 ++#There are 0 samples greater or equal than 10240 microseconds ++#usecs samples ++ 0 2984486876 ++ 1 49843506 ++ 2 58219047 ++ 3 5348126 ++ 4 2187960 ++ 5 3388262 ++ 6 959289 ++ 7 208294 ++ 8 40420 ++ 9 4485 ++ 10 14918 ++ 11 18340 ++ 12 25052 ++ 13 19455 ++ 14 5602 ++ 15 969 ++ 16 47 ++ 17 18 ++ 18 14 ++ 19 1 ++ 20 3 ++ 21 2 ++ 22 5 ++ 23 2 ++ 25 1 ++ ++ ++* Wakeup latency of a selected process ++ ++To only collect wakeup latency data of a particular process, write the ++PID of the requested process to ++ ++/sys/kernel/debug/tracing/latency_hist/wakeup/pid ++ ++PIDs are not considered, if this variable is set to 0. ++ ++ ++* Details of the process with the highest wakeup latency so far ++ ++Selected data of the process that suffered from the highest wakeup ++latency that occurred in a particular CPU are available in the file ++ ++/sys/kernel/debug/tracing/latency_hist/wakeup/max_latency-CPUx. ++ ++In addition, other relevant system data at the time when the ++latency occurred are given. ++ ++The format of the data is (all in one line): ++ () \ ++<- ++ ++The value of is only relevant in the combined timer ++and wakeup latency recording. In the wakeup recording, it is ++always 0, in the missed_timer_offsets recording, it is the same ++as . ++ ++When retrospectively searching for the origin of a latency and ++tracing was not enabled, it may be helpful to know the name and ++some basic data of the task that (finally) was switching to the ++late real-tlme task. In addition to the victim's data, also the ++data of the possible culprit are therefore displayed after the ++"<-" symbol. ++ ++Finally, the timestamp of the time when the latency occurred ++in . after the most recent system boot ++is provided. ++ ++These data are also reset when the wakeup histogram is reset. +--- a/include/linux/hrtimer.h ++++ b/include/linux/hrtimer.h +@@ -87,6 +87,7 @@ enum hrtimer_restart { + * @function: timer expiry callback function + * @base: pointer to the timer base (per cpu and per clock) + * @state: state information (See bit values above) ++ * @praecox: timer expiry time if expired at the time of programming + * @is_rel: Set if the timer was armed relative + * @start_pid: timer statistics field to store the pid of the task which + * started the timer +@@ -103,6 +104,9 @@ struct hrtimer { + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ ktime_t praecox; ++#endif + u8 is_rel; + #ifdef CONFIG_TIMER_STATS + int start_pid; +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1917,6 +1917,12 @@ struct task_struct { + /* bitmask and counter of trace recursion */ + unsigned long trace_recursion; + #endif /* CONFIG_TRACING */ ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ u64 preempt_timestamp_hist; ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ long timer_offset; ++#endif ++#endif + #ifdef CONFIG_KCOV + /* Coverage collection mode enabled for this task (0 if disabled). */ + enum kcov_mode kcov_mode; +--- /dev/null ++++ b/include/trace/events/hist.h +@@ -0,0 +1,73 @@ ++#undef TRACE_SYSTEM ++#define TRACE_SYSTEM hist ++ ++#if !defined(_TRACE_HIST_H) || defined(TRACE_HEADER_MULTI_READ) ++#define _TRACE_HIST_H ++ ++#include "latency_hist.h" ++#include ++ ++#if !defined(CONFIG_PREEMPT_OFF_HIST) && !defined(CONFIG_INTERRUPT_OFF_HIST) ++#define trace_preemptirqsoff_hist(a, b) ++#define trace_preemptirqsoff_hist_rcuidle(a, b) ++#else ++TRACE_EVENT(preemptirqsoff_hist, ++ ++ TP_PROTO(int reason, int starthist), ++ ++ TP_ARGS(reason, starthist), ++ ++ TP_STRUCT__entry( ++ __field(int, reason) ++ __field(int, starthist) ++ ), ++ ++ TP_fast_assign( ++ __entry->reason = reason; ++ __entry->starthist = starthist; ++ ), ++ ++ TP_printk("reason=%s starthist=%s", getaction(__entry->reason), ++ __entry->starthist ? "start" : "stop") ++); ++#endif ++ ++#ifndef CONFIG_MISSED_TIMER_OFFSETS_HIST ++#define trace_hrtimer_interrupt(a, b, c, d) ++#else ++TRACE_EVENT(hrtimer_interrupt, ++ ++ TP_PROTO(int cpu, long long offset, struct task_struct *curr, ++ struct task_struct *task), ++ ++ TP_ARGS(cpu, offset, curr, task), ++ ++ TP_STRUCT__entry( ++ __field(int, cpu) ++ __field(long long, offset) ++ __array(char, ccomm, TASK_COMM_LEN) ++ __field(int, cprio) ++ __array(char, tcomm, TASK_COMM_LEN) ++ __field(int, tprio) ++ ), ++ ++ TP_fast_assign( ++ __entry->cpu = cpu; ++ __entry->offset = offset; ++ memcpy(__entry->ccomm, curr->comm, TASK_COMM_LEN); ++ __entry->cprio = curr->prio; ++ memcpy(__entry->tcomm, task != NULL ? task->comm : "", ++ task != NULL ? TASK_COMM_LEN : 7); ++ __entry->tprio = task != NULL ? task->prio : -1; ++ ), ++ ++ TP_printk("cpu=%d offset=%lld curr=%s[%d] thread=%s[%d]", ++ __entry->cpu, __entry->offset, __entry->ccomm, ++ __entry->cprio, __entry->tcomm, __entry->tprio) ++); ++#endif ++ ++#endif /* _TRACE_HIST_H */ ++ ++/* This part must be outside protection */ ++#include +--- /dev/null ++++ b/include/trace/events/latency_hist.h +@@ -0,0 +1,29 @@ ++#ifndef _LATENCY_HIST_H ++#define _LATENCY_HIST_H ++ ++enum hist_action { ++ IRQS_ON, ++ PREEMPT_ON, ++ TRACE_STOP, ++ IRQS_OFF, ++ PREEMPT_OFF, ++ TRACE_START, ++}; ++ ++static char *actions[] = { ++ "IRQS_ON", ++ "PREEMPT_ON", ++ "TRACE_STOP", ++ "IRQS_OFF", ++ "PREEMPT_OFF", ++ "TRACE_START", ++}; ++ ++static inline char *getaction(int action) ++{ ++ if (action >= 0 && action <= sizeof(actions)/sizeof(actions[0])) ++ return actions[action]; ++ return "unknown"; ++} ++ ++#endif /* _LATENCY_HIST_H */ +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -53,6 +53,7 @@ + #include + + #include ++#include + + #include "tick-internal.h" + +@@ -991,7 +992,16 @@ void hrtimer_start_range_ns(struct hrtim + new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED); + + timer_stats_hrtimer_set_start_info(timer); ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ { ++ ktime_t now = new_base->get_time(); + ++ if (ktime_to_ns(tim) < ktime_to_ns(now)) ++ timer->praecox = now; ++ else ++ timer->praecox = ktime_set(0, 0); ++ } ++#endif + leftmost = enqueue_hrtimer(timer, new_base); + if (!leftmost) + goto unlock; +@@ -1265,6 +1275,8 @@ static void __run_hrtimer(struct hrtimer + cpu_base->running = NULL; + } + ++static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); ++ + static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now) + { + struct hrtimer_clock_base *base = cpu_base->clock_base; +@@ -1284,6 +1296,15 @@ static void __hrtimer_run_queues(struct + + timer = container_of(node, struct hrtimer, node); + ++ trace_hrtimer_interrupt(raw_smp_processor_id(), ++ ktime_to_ns(ktime_sub(ktime_to_ns(timer->praecox) ? ++ timer->praecox : hrtimer_get_expires(timer), ++ basenow)), ++ current, ++ timer->function == hrtimer_wakeup ? ++ container_of(timer, struct hrtimer_sleeper, ++ timer)->task : NULL); ++ + /* + * The immediate goal for using the softexpires is + * minimizing wakeups, not running timers at the +--- a/kernel/trace/Kconfig ++++ b/kernel/trace/Kconfig +@@ -182,6 +182,24 @@ config IRQSOFF_TRACER + enabled. This option and the preempt-off timing option can be + used together or separately.) + ++config INTERRUPT_OFF_HIST ++ bool "Interrupts-off Latency Histogram" ++ depends on IRQSOFF_TRACER ++ help ++ This option generates continuously updated histograms (one per cpu) ++ of the duration of time periods with interrupts disabled. The ++ histograms are disabled by default. To enable them, write a non-zero ++ number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/preemptirqsoff ++ ++ If PREEMPT_OFF_HIST is also selected, additional histograms (one ++ per cpu) are generated that accumulate the duration of time periods ++ when both interrupts and preemption are disabled. The histogram data ++ will be located in the debug file system at ++ ++ /sys/kernel/debug/tracing/latency_hist/irqsoff ++ + config PREEMPT_TRACER + bool "Preemption-off Latency Tracer" + default n +@@ -206,6 +224,24 @@ config PREEMPT_TRACER + enabled. This option and the irqs-off timing option can be + used together or separately.) + ++config PREEMPT_OFF_HIST ++ bool "Preemption-off Latency Histogram" ++ depends on PREEMPT_TRACER ++ help ++ This option generates continuously updated histograms (one per cpu) ++ of the duration of time periods with preemption disabled. The ++ histograms are disabled by default. To enable them, write a non-zero ++ number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/preemptirqsoff ++ ++ If INTERRUPT_OFF_HIST is also selected, additional histograms (one ++ per cpu) are generated that accumulate the duration of time periods ++ when both interrupts and preemption are disabled. The histogram data ++ will be located in the debug file system at ++ ++ /sys/kernel/debug/tracing/latency_hist/preemptoff ++ + config SCHED_TRACER + bool "Scheduling Latency Tracer" + select GENERIC_TRACER +@@ -251,6 +287,74 @@ config HWLAT_TRACER + file. Every time a latency is greater than tracing_thresh, it will + be recorded into the ring buffer. + ++config WAKEUP_LATENCY_HIST ++ bool "Scheduling Latency Histogram" ++ depends on SCHED_TRACER ++ help ++ This option generates continuously updated histograms (one per cpu) ++ of the scheduling latency of the highest priority task. ++ The histograms are disabled by default. To enable them, write a ++ non-zero number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/wakeup ++ ++ Two different algorithms are used, one to determine the latency of ++ processes that exclusively use the highest priority of the system and ++ another one to determine the latency of processes that share the ++ highest system priority with other processes. The former is used to ++ improve hardware and system software, the latter to optimize the ++ priority design of a given system. The histogram data will be ++ located in the debug file system at ++ ++ /sys/kernel/debug/tracing/latency_hist/wakeup ++ ++ and ++ ++ /sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio ++ ++ If both Scheduling Latency Histogram and Missed Timer Offsets ++ Histogram are selected, additional histogram data will be collected ++ that contain, in addition to the wakeup latency, the timer latency, in ++ case the wakeup was triggered by an expired timer. These histograms ++ are available in the ++ ++ /sys/kernel/debug/tracing/latency_hist/timerandwakeup ++ ++ directory. They reflect the apparent interrupt and scheduling latency ++ and are best suitable to determine the worst-case latency of a given ++ system. To enable these histograms, write a non-zero number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/timerandwakeup ++ ++config MISSED_TIMER_OFFSETS_HIST ++ depends on HIGH_RES_TIMERS ++ select GENERIC_TRACER ++ bool "Missed Timer Offsets Histogram" ++ help ++ Generate a histogram of missed timer offsets in microseconds. The ++ histograms are disabled by default. To enable them, write a non-zero ++ number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/missed_timer_offsets ++ ++ The histogram data will be located in the debug file system at ++ ++ /sys/kernel/debug/tracing/latency_hist/missed_timer_offsets ++ ++ If both Scheduling Latency Histogram and Missed Timer Offsets ++ Histogram are selected, additional histogram data will be collected ++ that contain, in addition to the wakeup latency, the timer latency, in ++ case the wakeup was triggered by an expired timer. These histograms ++ are available in the ++ ++ /sys/kernel/debug/tracing/latency_hist/timerandwakeup ++ ++ directory. They reflect the apparent interrupt and scheduling latency ++ and are best suitable to determine the worst-case latency of a given ++ system. To enable these histograms, write a non-zero number to ++ ++ /sys/kernel/debug/tracing/latency_hist/enable/timerandwakeup ++ + config ENABLE_DEFAULT_TRACERS + bool "Trace process context switches and events" + depends on !GENERIC_TRACER +--- a/kernel/trace/Makefile ++++ b/kernel/trace/Makefile +@@ -38,6 +38,10 @@ obj-$(CONFIG_IRQSOFF_TRACER) += trace_ir + obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o + obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o + obj-$(CONFIG_HWLAT_TRACER) += trace_hwlat.o ++obj-$(CONFIG_INTERRUPT_OFF_HIST) += latency_hist.o ++obj-$(CONFIG_PREEMPT_OFF_HIST) += latency_hist.o ++obj-$(CONFIG_WAKEUP_LATENCY_HIST) += latency_hist.o ++obj-$(CONFIG_MISSED_TIMER_OFFSETS_HIST) += latency_hist.o + obj-$(CONFIG_NOP_TRACER) += trace_nop.o + obj-$(CONFIG_STACK_TRACER) += trace_stack.o + obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o +--- /dev/null ++++ b/kernel/trace/latency_hist.c +@@ -0,0 +1,1178 @@ ++/* ++ * kernel/trace/latency_hist.c ++ * ++ * Add support for histograms of preemption-off latency and ++ * interrupt-off latency and wakeup latency, it depends on ++ * Real-Time Preemption Support. ++ * ++ * Copyright (C) 2005 MontaVista Software, Inc. ++ * Yi Yang ++ * ++ * Converted to work with the new latency tracer. ++ * Copyright (C) 2008 Red Hat, Inc. ++ * Steven Rostedt ++ * ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "trace.h" ++#include ++ ++#define NSECS_PER_USECS 1000L ++ ++#define CREATE_TRACE_POINTS ++#include ++ ++enum { ++ IRQSOFF_LATENCY = 0, ++ PREEMPTOFF_LATENCY, ++ PREEMPTIRQSOFF_LATENCY, ++ WAKEUP_LATENCY, ++ WAKEUP_LATENCY_SHAREDPRIO, ++ MISSED_TIMER_OFFSETS, ++ TIMERANDWAKEUP_LATENCY, ++ MAX_LATENCY_TYPE, ++}; ++ ++#define MAX_ENTRY_NUM 10240 ++ ++struct hist_data { ++ atomic_t hist_mode; /* 0 log, 1 don't log */ ++ long offset; /* set it to MAX_ENTRY_NUM/2 for a bipolar scale */ ++ long min_lat; ++ long max_lat; ++ unsigned long long below_hist_bound_samples; ++ unsigned long long above_hist_bound_samples; ++ long long accumulate_lat; ++ unsigned long long total_samples; ++ unsigned long long hist_array[MAX_ENTRY_NUM]; ++}; ++ ++struct enable_data { ++ int latency_type; ++ int enabled; ++}; ++ ++static char *latency_hist_dir_root = "latency_hist"; ++ ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++static DEFINE_PER_CPU(struct hist_data, irqsoff_hist); ++static char *irqsoff_hist_dir = "irqsoff"; ++static DEFINE_PER_CPU(cycles_t, hist_irqsoff_start); ++static DEFINE_PER_CPU(int, hist_irqsoff_counting); ++#endif ++ ++#ifdef CONFIG_PREEMPT_OFF_HIST ++static DEFINE_PER_CPU(struct hist_data, preemptoff_hist); ++static char *preemptoff_hist_dir = "preemptoff"; ++static DEFINE_PER_CPU(cycles_t, hist_preemptoff_start); ++static DEFINE_PER_CPU(int, hist_preemptoff_counting); ++#endif ++ ++#if defined(CONFIG_PREEMPT_OFF_HIST) && defined(CONFIG_INTERRUPT_OFF_HIST) ++static DEFINE_PER_CPU(struct hist_data, preemptirqsoff_hist); ++static char *preemptirqsoff_hist_dir = "preemptirqsoff"; ++static DEFINE_PER_CPU(cycles_t, hist_preemptirqsoff_start); ++static DEFINE_PER_CPU(int, hist_preemptirqsoff_counting); ++#endif ++ ++#if defined(CONFIG_PREEMPT_OFF_HIST) || defined(CONFIG_INTERRUPT_OFF_HIST) ++static notrace void probe_preemptirqsoff_hist(void *v, int reason, int start); ++static struct enable_data preemptirqsoff_enabled_data = { ++ .latency_type = PREEMPTIRQSOFF_LATENCY, ++ .enabled = 0, ++}; ++#endif ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++struct maxlatproc_data { ++ char comm[FIELD_SIZEOF(struct task_struct, comm)]; ++ char current_comm[FIELD_SIZEOF(struct task_struct, comm)]; ++ int pid; ++ int current_pid; ++ int prio; ++ int current_prio; ++ long latency; ++ long timeroffset; ++ cycle_t timestamp; ++}; ++#endif ++ ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist); ++static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist_sharedprio); ++static char *wakeup_latency_hist_dir = "wakeup"; ++static char *wakeup_latency_hist_dir_sharedprio = "sharedprio"; ++static notrace void probe_wakeup_latency_hist_start(void *v, ++ struct task_struct *p, int success); ++static notrace void probe_wakeup_latency_hist_stop(void *v, ++ struct task_struct *prev, struct task_struct *next); ++static notrace void probe_sched_migrate_task(void *, ++ struct task_struct *task, int cpu); ++static struct enable_data wakeup_latency_enabled_data = { ++ .latency_type = WAKEUP_LATENCY, ++ .enabled = 0, ++}; ++static DEFINE_PER_CPU(struct maxlatproc_data, wakeup_maxlatproc); ++static DEFINE_PER_CPU(struct maxlatproc_data, wakeup_maxlatproc_sharedprio); ++static DEFINE_PER_CPU(struct task_struct *, wakeup_task); ++static DEFINE_PER_CPU(int, wakeup_sharedprio); ++static unsigned long wakeup_pid; ++#endif ++ ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++static DEFINE_PER_CPU(struct hist_data, missed_timer_offsets); ++static char *missed_timer_offsets_dir = "missed_timer_offsets"; ++static notrace void probe_hrtimer_interrupt(void *v, int cpu, ++ long long offset, struct task_struct *curr, struct task_struct *task); ++static struct enable_data missed_timer_offsets_enabled_data = { ++ .latency_type = MISSED_TIMER_OFFSETS, ++ .enabled = 0, ++}; ++static DEFINE_PER_CPU(struct maxlatproc_data, missed_timer_offsets_maxlatproc); ++static unsigned long missed_timer_offsets_pid; ++#endif ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++static DEFINE_PER_CPU(struct hist_data, timerandwakeup_latency_hist); ++static char *timerandwakeup_latency_hist_dir = "timerandwakeup"; ++static struct enable_data timerandwakeup_enabled_data = { ++ .latency_type = TIMERANDWAKEUP_LATENCY, ++ .enabled = 0, ++}; ++static DEFINE_PER_CPU(struct maxlatproc_data, timerandwakeup_maxlatproc); ++#endif ++ ++void notrace latency_hist(int latency_type, int cpu, long latency, ++ long timeroffset, cycle_t stop, ++ struct task_struct *p) ++{ ++ struct hist_data *my_hist; ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ struct maxlatproc_data *mp = NULL; ++#endif ++ ++ if (!cpu_possible(cpu) || latency_type < 0 || ++ latency_type >= MAX_LATENCY_TYPE) ++ return; ++ ++ switch (latency_type) { ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ case IRQSOFF_LATENCY: ++ my_hist = &per_cpu(irqsoff_hist, cpu); ++ break; ++#endif ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ case PREEMPTOFF_LATENCY: ++ my_hist = &per_cpu(preemptoff_hist, cpu); ++ break; ++#endif ++#if defined(CONFIG_PREEMPT_OFF_HIST) && defined(CONFIG_INTERRUPT_OFF_HIST) ++ case PREEMPTIRQSOFF_LATENCY: ++ my_hist = &per_cpu(preemptirqsoff_hist, cpu); ++ break; ++#endif ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ case WAKEUP_LATENCY: ++ my_hist = &per_cpu(wakeup_latency_hist, cpu); ++ mp = &per_cpu(wakeup_maxlatproc, cpu); ++ break; ++ case WAKEUP_LATENCY_SHAREDPRIO: ++ my_hist = &per_cpu(wakeup_latency_hist_sharedprio, cpu); ++ mp = &per_cpu(wakeup_maxlatproc_sharedprio, cpu); ++ break; ++#endif ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ case MISSED_TIMER_OFFSETS: ++ my_hist = &per_cpu(missed_timer_offsets, cpu); ++ mp = &per_cpu(missed_timer_offsets_maxlatproc, cpu); ++ break; ++#endif ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ case TIMERANDWAKEUP_LATENCY: ++ my_hist = &per_cpu(timerandwakeup_latency_hist, cpu); ++ mp = &per_cpu(timerandwakeup_maxlatproc, cpu); ++ break; ++#endif ++ ++ default: ++ return; ++ } ++ ++ latency += my_hist->offset; ++ ++ if (atomic_read(&my_hist->hist_mode) == 0) ++ return; ++ ++ if (latency < 0 || latency >= MAX_ENTRY_NUM) { ++ if (latency < 0) ++ my_hist->below_hist_bound_samples++; ++ else ++ my_hist->above_hist_bound_samples++; ++ } else ++ my_hist->hist_array[latency]++; ++ ++ if (unlikely(latency > my_hist->max_lat || ++ my_hist->min_lat == LONG_MAX)) { ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ if (latency_type == WAKEUP_LATENCY || ++ latency_type == WAKEUP_LATENCY_SHAREDPRIO || ++ latency_type == MISSED_TIMER_OFFSETS || ++ latency_type == TIMERANDWAKEUP_LATENCY) { ++ strncpy(mp->comm, p->comm, sizeof(mp->comm)); ++ strncpy(mp->current_comm, current->comm, ++ sizeof(mp->current_comm)); ++ mp->pid = task_pid_nr(p); ++ mp->current_pid = task_pid_nr(current); ++ mp->prio = p->prio; ++ mp->current_prio = current->prio; ++ mp->latency = latency; ++ mp->timeroffset = timeroffset; ++ mp->timestamp = stop; ++ } ++#endif ++ my_hist->max_lat = latency; ++ } ++ if (unlikely(latency < my_hist->min_lat)) ++ my_hist->min_lat = latency; ++ my_hist->total_samples++; ++ my_hist->accumulate_lat += latency; ++} ++ ++static void *l_start(struct seq_file *m, loff_t *pos) ++{ ++ loff_t *index_ptr = NULL; ++ loff_t index = *pos; ++ struct hist_data *my_hist = m->private; ++ ++ if (index == 0) { ++ char minstr[32], avgstr[32], maxstr[32]; ++ ++ atomic_dec(&my_hist->hist_mode); ++ ++ if (likely(my_hist->total_samples)) { ++ long avg = (long) div64_s64(my_hist->accumulate_lat, ++ my_hist->total_samples); ++ snprintf(minstr, sizeof(minstr), "%ld", ++ my_hist->min_lat - my_hist->offset); ++ snprintf(avgstr, sizeof(avgstr), "%ld", ++ avg - my_hist->offset); ++ snprintf(maxstr, sizeof(maxstr), "%ld", ++ my_hist->max_lat - my_hist->offset); ++ } else { ++ strcpy(minstr, ""); ++ strcpy(avgstr, minstr); ++ strcpy(maxstr, minstr); ++ } ++ ++ seq_printf(m, "#Minimum latency: %s microseconds\n" ++ "#Average latency: %s microseconds\n" ++ "#Maximum latency: %s microseconds\n" ++ "#Total samples: %llu\n" ++ "#There are %llu samples lower than %ld" ++ " microseconds.\n" ++ "#There are %llu samples greater or equal" ++ " than %ld microseconds.\n" ++ "#usecs\t%16s\n", ++ minstr, avgstr, maxstr, ++ my_hist->total_samples, ++ my_hist->below_hist_bound_samples, ++ -my_hist->offset, ++ my_hist->above_hist_bound_samples, ++ MAX_ENTRY_NUM - my_hist->offset, ++ "samples"); ++ } ++ if (index < MAX_ENTRY_NUM) { ++ index_ptr = kmalloc(sizeof(loff_t), GFP_KERNEL); ++ if (index_ptr) ++ *index_ptr = index; ++ } ++ ++ return index_ptr; ++} ++ ++static void *l_next(struct seq_file *m, void *p, loff_t *pos) ++{ ++ loff_t *index_ptr = p; ++ struct hist_data *my_hist = m->private; ++ ++ if (++*pos >= MAX_ENTRY_NUM) { ++ atomic_inc(&my_hist->hist_mode); ++ return NULL; ++ } ++ *index_ptr = *pos; ++ return index_ptr; ++} ++ ++static void l_stop(struct seq_file *m, void *p) ++{ ++ kfree(p); ++} ++ ++static int l_show(struct seq_file *m, void *p) ++{ ++ int index = *(loff_t *) p; ++ struct hist_data *my_hist = m->private; ++ ++ seq_printf(m, "%6ld\t%16llu\n", index - my_hist->offset, ++ my_hist->hist_array[index]); ++ return 0; ++} ++ ++static const struct seq_operations latency_hist_seq_op = { ++ .start = l_start, ++ .next = l_next, ++ .stop = l_stop, ++ .show = l_show ++}; ++ ++static int latency_hist_open(struct inode *inode, struct file *file) ++{ ++ int ret; ++ ++ ret = seq_open(file, &latency_hist_seq_op); ++ if (!ret) { ++ struct seq_file *seq = file->private_data; ++ seq->private = inode->i_private; ++ } ++ return ret; ++} ++ ++static const struct file_operations latency_hist_fops = { ++ .open = latency_hist_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++static void clear_maxlatprocdata(struct maxlatproc_data *mp) ++{ ++ mp->comm[0] = mp->current_comm[0] = '\0'; ++ mp->prio = mp->current_prio = mp->pid = mp->current_pid = ++ mp->latency = mp->timeroffset = -1; ++ mp->timestamp = 0; ++} ++#endif ++ ++static void hist_reset(struct hist_data *hist) ++{ ++ atomic_dec(&hist->hist_mode); ++ ++ memset(hist->hist_array, 0, sizeof(hist->hist_array)); ++ hist->below_hist_bound_samples = 0ULL; ++ hist->above_hist_bound_samples = 0ULL; ++ hist->min_lat = LONG_MAX; ++ hist->max_lat = LONG_MIN; ++ hist->total_samples = 0ULL; ++ hist->accumulate_lat = 0LL; ++ ++ atomic_inc(&hist->hist_mode); ++} ++ ++static ssize_t ++latency_hist_reset(struct file *file, const char __user *a, ++ size_t size, loff_t *off) ++{ ++ int cpu; ++ struct hist_data *hist = NULL; ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ struct maxlatproc_data *mp = NULL; ++#endif ++ off_t latency_type = (off_t) file->private_data; ++ ++ for_each_online_cpu(cpu) { ++ ++ switch (latency_type) { ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ case PREEMPTOFF_LATENCY: ++ hist = &per_cpu(preemptoff_hist, cpu); ++ break; ++#endif ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ case IRQSOFF_LATENCY: ++ hist = &per_cpu(irqsoff_hist, cpu); ++ break; ++#endif ++#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST) ++ case PREEMPTIRQSOFF_LATENCY: ++ hist = &per_cpu(preemptirqsoff_hist, cpu); ++ break; ++#endif ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ case WAKEUP_LATENCY: ++ hist = &per_cpu(wakeup_latency_hist, cpu); ++ mp = &per_cpu(wakeup_maxlatproc, cpu); ++ break; ++ case WAKEUP_LATENCY_SHAREDPRIO: ++ hist = &per_cpu(wakeup_latency_hist_sharedprio, cpu); ++ mp = &per_cpu(wakeup_maxlatproc_sharedprio, cpu); ++ break; ++#endif ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ case MISSED_TIMER_OFFSETS: ++ hist = &per_cpu(missed_timer_offsets, cpu); ++ mp = &per_cpu(missed_timer_offsets_maxlatproc, cpu); ++ break; ++#endif ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ case TIMERANDWAKEUP_LATENCY: ++ hist = &per_cpu(timerandwakeup_latency_hist, cpu); ++ mp = &per_cpu(timerandwakeup_maxlatproc, cpu); ++ break; ++#endif ++ } ++ ++ hist_reset(hist); ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ if (latency_type == WAKEUP_LATENCY || ++ latency_type == WAKEUP_LATENCY_SHAREDPRIO || ++ latency_type == MISSED_TIMER_OFFSETS || ++ latency_type == TIMERANDWAKEUP_LATENCY) ++ clear_maxlatprocdata(mp); ++#endif ++ } ++ ++ return size; ++} ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++static ssize_t ++show_pid(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos) ++{ ++ char buf[64]; ++ int r; ++ unsigned long *this_pid = file->private_data; ++ ++ r = snprintf(buf, sizeof(buf), "%lu\n", *this_pid); ++ return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); ++} ++ ++static ssize_t do_pid(struct file *file, const char __user *ubuf, ++ size_t cnt, loff_t *ppos) ++{ ++ char buf[64]; ++ unsigned long pid; ++ unsigned long *this_pid = file->private_data; ++ ++ if (cnt >= sizeof(buf)) ++ return -EINVAL; ++ ++ if (copy_from_user(&buf, ubuf, cnt)) ++ return -EFAULT; ++ ++ buf[cnt] = '\0'; ++ ++ if (kstrtoul(buf, 10, &pid)) ++ return -EINVAL; ++ ++ *this_pid = pid; ++ ++ return cnt; ++} ++#endif ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++static ssize_t ++show_maxlatproc(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos) ++{ ++ int r; ++ struct maxlatproc_data *mp = file->private_data; ++ int strmaxlen = (TASK_COMM_LEN * 2) + (8 * 8); ++ unsigned long long t; ++ unsigned long usecs, secs; ++ char *buf; ++ ++ if (mp->pid == -1 || mp->current_pid == -1) { ++ buf = "(none)\n"; ++ return simple_read_from_buffer(ubuf, cnt, ppos, buf, ++ strlen(buf)); ++ } ++ ++ buf = kmalloc(strmaxlen, GFP_KERNEL); ++ if (buf == NULL) ++ return -ENOMEM; ++ ++ t = ns2usecs(mp->timestamp); ++ usecs = do_div(t, USEC_PER_SEC); ++ secs = (unsigned long) t; ++ r = snprintf(buf, strmaxlen, ++ "%d %d %ld (%ld) %s <- %d %d %s %lu.%06lu\n", mp->pid, ++ MAX_RT_PRIO-1 - mp->prio, mp->latency, mp->timeroffset, mp->comm, ++ mp->current_pid, MAX_RT_PRIO-1 - mp->current_prio, mp->current_comm, ++ secs, usecs); ++ r = simple_read_from_buffer(ubuf, cnt, ppos, buf, r); ++ kfree(buf); ++ return r; ++} ++#endif ++ ++static ssize_t ++show_enable(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos) ++{ ++ char buf[64]; ++ struct enable_data *ed = file->private_data; ++ int r; ++ ++ r = snprintf(buf, sizeof(buf), "%d\n", ed->enabled); ++ return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); ++} ++ ++static ssize_t ++do_enable(struct file *file, const char __user *ubuf, size_t cnt, loff_t *ppos) ++{ ++ char buf[64]; ++ long enable; ++ struct enable_data *ed = file->private_data; ++ ++ if (cnt >= sizeof(buf)) ++ return -EINVAL; ++ ++ if (copy_from_user(&buf, ubuf, cnt)) ++ return -EFAULT; ++ ++ buf[cnt] = 0; ++ ++ if (kstrtoul(buf, 10, &enable)) ++ return -EINVAL; ++ ++ if ((enable && ed->enabled) || (!enable && !ed->enabled)) ++ return cnt; ++ ++ if (enable) { ++ int ret; ++ ++ switch (ed->latency_type) { ++#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST) ++ case PREEMPTIRQSOFF_LATENCY: ++ ret = register_trace_preemptirqsoff_hist( ++ probe_preemptirqsoff_hist, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_preemptirqsoff_hist " ++ "to trace_preemptirqsoff_hist\n"); ++ return ret; ++ } ++ break; ++#endif ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ case WAKEUP_LATENCY: ++ ret = register_trace_sched_wakeup( ++ probe_wakeup_latency_hist_start, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_wakeup_latency_hist_start " ++ "to trace_sched_wakeup\n"); ++ return ret; ++ } ++ ret = register_trace_sched_wakeup_new( ++ probe_wakeup_latency_hist_start, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_wakeup_latency_hist_start " ++ "to trace_sched_wakeup_new\n"); ++ unregister_trace_sched_wakeup( ++ probe_wakeup_latency_hist_start, NULL); ++ return ret; ++ } ++ ret = register_trace_sched_switch( ++ probe_wakeup_latency_hist_stop, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_wakeup_latency_hist_stop " ++ "to trace_sched_switch\n"); ++ unregister_trace_sched_wakeup( ++ probe_wakeup_latency_hist_start, NULL); ++ unregister_trace_sched_wakeup_new( ++ probe_wakeup_latency_hist_start, NULL); ++ return ret; ++ } ++ ret = register_trace_sched_migrate_task( ++ probe_sched_migrate_task, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_sched_migrate_task " ++ "to trace_sched_migrate_task\n"); ++ unregister_trace_sched_wakeup( ++ probe_wakeup_latency_hist_start, NULL); ++ unregister_trace_sched_wakeup_new( ++ probe_wakeup_latency_hist_start, NULL); ++ unregister_trace_sched_switch( ++ probe_wakeup_latency_hist_stop, NULL); ++ return ret; ++ } ++ break; ++#endif ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ case MISSED_TIMER_OFFSETS: ++ ret = register_trace_hrtimer_interrupt( ++ probe_hrtimer_interrupt, NULL); ++ if (ret) { ++ pr_info("wakeup trace: Couldn't assign " ++ "probe_hrtimer_interrupt " ++ "to trace_hrtimer_interrupt\n"); ++ return ret; ++ } ++ break; ++#endif ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ case TIMERANDWAKEUP_LATENCY: ++ if (!wakeup_latency_enabled_data.enabled || ++ !missed_timer_offsets_enabled_data.enabled) ++ return -EINVAL; ++ break; ++#endif ++ default: ++ break; ++ } ++ } else { ++ switch (ed->latency_type) { ++#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST) ++ case PREEMPTIRQSOFF_LATENCY: ++ { ++ int cpu; ++ ++ unregister_trace_preemptirqsoff_hist( ++ probe_preemptirqsoff_hist, NULL); ++ for_each_online_cpu(cpu) { ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ per_cpu(hist_irqsoff_counting, ++ cpu) = 0; ++#endif ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ per_cpu(hist_preemptoff_counting, ++ cpu) = 0; ++#endif ++#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST) ++ per_cpu(hist_preemptirqsoff_counting, ++ cpu) = 0; ++#endif ++ } ++ } ++ break; ++#endif ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ case WAKEUP_LATENCY: ++ { ++ int cpu; ++ ++ unregister_trace_sched_wakeup( ++ probe_wakeup_latency_hist_start, NULL); ++ unregister_trace_sched_wakeup_new( ++ probe_wakeup_latency_hist_start, NULL); ++ unregister_trace_sched_switch( ++ probe_wakeup_latency_hist_stop, NULL); ++ unregister_trace_sched_migrate_task( ++ probe_sched_migrate_task, NULL); ++ ++ for_each_online_cpu(cpu) { ++ per_cpu(wakeup_task, cpu) = NULL; ++ per_cpu(wakeup_sharedprio, cpu) = 0; ++ } ++ } ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ timerandwakeup_enabled_data.enabled = 0; ++#endif ++ break; ++#endif ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ case MISSED_TIMER_OFFSETS: ++ unregister_trace_hrtimer_interrupt( ++ probe_hrtimer_interrupt, NULL); ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ timerandwakeup_enabled_data.enabled = 0; ++#endif ++ break; ++#endif ++ default: ++ break; ++ } ++ } ++ ed->enabled = enable; ++ return cnt; ++} ++ ++static const struct file_operations latency_hist_reset_fops = { ++ .open = tracing_open_generic, ++ .write = latency_hist_reset, ++}; ++ ++static const struct file_operations enable_fops = { ++ .open = tracing_open_generic, ++ .read = show_enable, ++ .write = do_enable, ++}; ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++static const struct file_operations pid_fops = { ++ .open = tracing_open_generic, ++ .read = show_pid, ++ .write = do_pid, ++}; ++ ++static const struct file_operations maxlatproc_fops = { ++ .open = tracing_open_generic, ++ .read = show_maxlatproc, ++}; ++#endif ++ ++#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST) ++static notrace void probe_preemptirqsoff_hist(void *v, int reason, ++ int starthist) ++{ ++ int cpu = raw_smp_processor_id(); ++ int time_set = 0; ++ ++ if (starthist) { ++ cycle_t uninitialized_var(start); ++ ++ if (!preempt_count() && !irqs_disabled()) ++ return; ++ ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ if ((reason == IRQS_OFF || reason == TRACE_START) && ++ !per_cpu(hist_irqsoff_counting, cpu)) { ++ per_cpu(hist_irqsoff_counting, cpu) = 1; ++ start = ftrace_now(cpu); ++ time_set++; ++ per_cpu(hist_irqsoff_start, cpu) = start; ++ } ++#endif ++ ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ if ((reason == PREEMPT_OFF || reason == TRACE_START) && ++ !per_cpu(hist_preemptoff_counting, cpu)) { ++ per_cpu(hist_preemptoff_counting, cpu) = 1; ++ if (!(time_set++)) ++ start = ftrace_now(cpu); ++ per_cpu(hist_preemptoff_start, cpu) = start; ++ } ++#endif ++ ++#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST) ++ if (per_cpu(hist_irqsoff_counting, cpu) && ++ per_cpu(hist_preemptoff_counting, cpu) && ++ !per_cpu(hist_preemptirqsoff_counting, cpu)) { ++ per_cpu(hist_preemptirqsoff_counting, cpu) = 1; ++ if (!time_set) ++ start = ftrace_now(cpu); ++ per_cpu(hist_preemptirqsoff_start, cpu) = start; ++ } ++#endif ++ } else { ++ cycle_t uninitialized_var(stop); ++ ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ if ((reason == IRQS_ON || reason == TRACE_STOP) && ++ per_cpu(hist_irqsoff_counting, cpu)) { ++ cycle_t start = per_cpu(hist_irqsoff_start, cpu); ++ ++ stop = ftrace_now(cpu); ++ time_set++; ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; ++ ++ latency_hist(IRQSOFF_LATENCY, cpu, latency, 0, ++ stop, NULL); ++ } ++ per_cpu(hist_irqsoff_counting, cpu) = 0; ++ } ++#endif ++ ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ if ((reason == PREEMPT_ON || reason == TRACE_STOP) && ++ per_cpu(hist_preemptoff_counting, cpu)) { ++ cycle_t start = per_cpu(hist_preemptoff_start, cpu); ++ ++ if (!(time_set++)) ++ stop = ftrace_now(cpu); ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; ++ ++ latency_hist(PREEMPTOFF_LATENCY, cpu, latency, ++ 0, stop, NULL); ++ } ++ per_cpu(hist_preemptoff_counting, cpu) = 0; ++ } ++#endif ++ ++#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST) ++ if ((!per_cpu(hist_irqsoff_counting, cpu) || ++ !per_cpu(hist_preemptoff_counting, cpu)) && ++ per_cpu(hist_preemptirqsoff_counting, cpu)) { ++ cycle_t start = per_cpu(hist_preemptirqsoff_start, cpu); ++ ++ if (!time_set) ++ stop = ftrace_now(cpu); ++ if (start) { ++ long latency = ((long) (stop - start)) / ++ NSECS_PER_USECS; ++ ++ latency_hist(PREEMPTIRQSOFF_LATENCY, cpu, ++ latency, 0, stop, NULL); ++ } ++ per_cpu(hist_preemptirqsoff_counting, cpu) = 0; ++ } ++#endif ++ } ++} ++#endif ++ ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++static DEFINE_RAW_SPINLOCK(wakeup_lock); ++static notrace void probe_sched_migrate_task(void *v, struct task_struct *task, ++ int cpu) ++{ ++ int old_cpu = task_cpu(task); ++ ++ if (cpu != old_cpu) { ++ unsigned long flags; ++ struct task_struct *cpu_wakeup_task; ++ ++ raw_spin_lock_irqsave(&wakeup_lock, flags); ++ ++ cpu_wakeup_task = per_cpu(wakeup_task, old_cpu); ++ if (task == cpu_wakeup_task) { ++ put_task_struct(cpu_wakeup_task); ++ per_cpu(wakeup_task, old_cpu) = NULL; ++ cpu_wakeup_task = per_cpu(wakeup_task, cpu) = task; ++ get_task_struct(cpu_wakeup_task); ++ } ++ ++ raw_spin_unlock_irqrestore(&wakeup_lock, flags); ++ } ++} ++ ++static notrace void probe_wakeup_latency_hist_start(void *v, ++ struct task_struct *p, int success) ++{ ++ unsigned long flags; ++ struct task_struct *curr = current; ++ int cpu = task_cpu(p); ++ struct task_struct *cpu_wakeup_task; ++ ++ raw_spin_lock_irqsave(&wakeup_lock, flags); ++ ++ cpu_wakeup_task = per_cpu(wakeup_task, cpu); ++ ++ if (wakeup_pid) { ++ if ((cpu_wakeup_task && p->prio == cpu_wakeup_task->prio) || ++ p->prio == curr->prio) ++ per_cpu(wakeup_sharedprio, cpu) = 1; ++ if (likely(wakeup_pid != task_pid_nr(p))) ++ goto out; ++ } else { ++ if (likely(!rt_task(p)) || ++ (cpu_wakeup_task && p->prio > cpu_wakeup_task->prio) || ++ p->prio > curr->prio) ++ goto out; ++ if ((cpu_wakeup_task && p->prio == cpu_wakeup_task->prio) || ++ p->prio == curr->prio) ++ per_cpu(wakeup_sharedprio, cpu) = 1; ++ } ++ ++ if (cpu_wakeup_task) ++ put_task_struct(cpu_wakeup_task); ++ cpu_wakeup_task = per_cpu(wakeup_task, cpu) = p; ++ get_task_struct(cpu_wakeup_task); ++ cpu_wakeup_task->preempt_timestamp_hist = ++ ftrace_now(raw_smp_processor_id()); ++out: ++ raw_spin_unlock_irqrestore(&wakeup_lock, flags); ++} ++ ++static notrace void probe_wakeup_latency_hist_stop(void *v, ++ struct task_struct *prev, struct task_struct *next) ++{ ++ unsigned long flags; ++ int cpu = task_cpu(next); ++ long latency; ++ cycle_t stop; ++ struct task_struct *cpu_wakeup_task; ++ ++ raw_spin_lock_irqsave(&wakeup_lock, flags); ++ ++ cpu_wakeup_task = per_cpu(wakeup_task, cpu); ++ ++ if (cpu_wakeup_task == NULL) ++ goto out; ++ ++ /* Already running? */ ++ if (unlikely(current == cpu_wakeup_task)) ++ goto out_reset; ++ ++ if (next != cpu_wakeup_task) { ++ if (next->prio < cpu_wakeup_task->prio) ++ goto out_reset; ++ ++ if (next->prio == cpu_wakeup_task->prio) ++ per_cpu(wakeup_sharedprio, cpu) = 1; ++ ++ goto out; ++ } ++ ++ if (current->prio == cpu_wakeup_task->prio) ++ per_cpu(wakeup_sharedprio, cpu) = 1; ++ ++ /* ++ * The task we are waiting for is about to be switched to. ++ * Calculate latency and store it in histogram. ++ */ ++ stop = ftrace_now(raw_smp_processor_id()); ++ ++ latency = ((long) (stop - next->preempt_timestamp_hist)) / ++ NSECS_PER_USECS; ++ ++ if (per_cpu(wakeup_sharedprio, cpu)) { ++ latency_hist(WAKEUP_LATENCY_SHAREDPRIO, cpu, latency, 0, stop, ++ next); ++ per_cpu(wakeup_sharedprio, cpu) = 0; ++ } else { ++ latency_hist(WAKEUP_LATENCY, cpu, latency, 0, stop, next); ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ if (timerandwakeup_enabled_data.enabled) { ++ latency_hist(TIMERANDWAKEUP_LATENCY, cpu, ++ next->timer_offset + latency, next->timer_offset, ++ stop, next); ++ } ++#endif ++ } ++ ++out_reset: ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ next->timer_offset = 0; ++#endif ++ put_task_struct(cpu_wakeup_task); ++ per_cpu(wakeup_task, cpu) = NULL; ++out: ++ raw_spin_unlock_irqrestore(&wakeup_lock, flags); ++} ++#endif ++ ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++static notrace void probe_hrtimer_interrupt(void *v, int cpu, ++ long long latency_ns, struct task_struct *curr, ++ struct task_struct *task) ++{ ++ if (latency_ns <= 0 && task != NULL && rt_task(task) && ++ (task->prio < curr->prio || ++ (task->prio == curr->prio && ++ !cpumask_test_cpu(cpu, &task->cpus_allowed)))) { ++ long latency; ++ cycle_t now; ++ ++ if (missed_timer_offsets_pid) { ++ if (likely(missed_timer_offsets_pid != ++ task_pid_nr(task))) ++ return; ++ } ++ ++ now = ftrace_now(cpu); ++ latency = (long) div_s64(-latency_ns, NSECS_PER_USECS); ++ latency_hist(MISSED_TIMER_OFFSETS, cpu, latency, latency, now, ++ task); ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ task->timer_offset = latency; ++#endif ++ } ++} ++#endif ++ ++static __init int latency_hist_init(void) ++{ ++ struct dentry *latency_hist_root = NULL; ++ struct dentry *dentry; ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ struct dentry *dentry_sharedprio; ++#endif ++ struct dentry *entry; ++ struct dentry *enable_root; ++ int i = 0; ++ struct hist_data *my_hist; ++ char name[64]; ++ char *cpufmt = "CPU%d"; ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ char *cpufmt_maxlatproc = "max_latency-CPU%d"; ++ struct maxlatproc_data *mp = NULL; ++#endif ++ ++ dentry = tracing_init_dentry(); ++ latency_hist_root = debugfs_create_dir(latency_hist_dir_root, dentry); ++ enable_root = debugfs_create_dir("enable", latency_hist_root); ++ ++#ifdef CONFIG_INTERRUPT_OFF_HIST ++ dentry = debugfs_create_dir(irqsoff_hist_dir, latency_hist_root); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(irqsoff_hist, i), &latency_hist_fops); ++ my_hist = &per_cpu(irqsoff_hist, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ } ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)IRQSOFF_LATENCY, &latency_hist_reset_fops); ++#endif ++ ++#ifdef CONFIG_PREEMPT_OFF_HIST ++ dentry = debugfs_create_dir(preemptoff_hist_dir, ++ latency_hist_root); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(preemptoff_hist, i), &latency_hist_fops); ++ my_hist = &per_cpu(preemptoff_hist, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ } ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)PREEMPTOFF_LATENCY, &latency_hist_reset_fops); ++#endif ++ ++#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST) ++ dentry = debugfs_create_dir(preemptirqsoff_hist_dir, ++ latency_hist_root); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(preemptirqsoff_hist, i), &latency_hist_fops); ++ my_hist = &per_cpu(preemptirqsoff_hist, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ } ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)PREEMPTIRQSOFF_LATENCY, &latency_hist_reset_fops); ++#endif ++ ++#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST) ++ entry = debugfs_create_file("preemptirqsoff", 0644, ++ enable_root, (void *)&preemptirqsoff_enabled_data, ++ &enable_fops); ++#endif ++ ++#ifdef CONFIG_WAKEUP_LATENCY_HIST ++ dentry = debugfs_create_dir(wakeup_latency_hist_dir, ++ latency_hist_root); ++ dentry_sharedprio = debugfs_create_dir( ++ wakeup_latency_hist_dir_sharedprio, dentry); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(wakeup_latency_hist, i), ++ &latency_hist_fops); ++ my_hist = &per_cpu(wakeup_latency_hist, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ ++ entry = debugfs_create_file(name, 0444, dentry_sharedprio, ++ &per_cpu(wakeup_latency_hist_sharedprio, i), ++ &latency_hist_fops); ++ my_hist = &per_cpu(wakeup_latency_hist_sharedprio, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ ++ sprintf(name, cpufmt_maxlatproc, i); ++ ++ mp = &per_cpu(wakeup_maxlatproc, i); ++ entry = debugfs_create_file(name, 0444, dentry, mp, ++ &maxlatproc_fops); ++ clear_maxlatprocdata(mp); ++ ++ mp = &per_cpu(wakeup_maxlatproc_sharedprio, i); ++ entry = debugfs_create_file(name, 0444, dentry_sharedprio, mp, ++ &maxlatproc_fops); ++ clear_maxlatprocdata(mp); ++ } ++ entry = debugfs_create_file("pid", 0644, dentry, ++ (void *)&wakeup_pid, &pid_fops); ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)WAKEUP_LATENCY, &latency_hist_reset_fops); ++ entry = debugfs_create_file("reset", 0644, dentry_sharedprio, ++ (void *)WAKEUP_LATENCY_SHAREDPRIO, &latency_hist_reset_fops); ++ entry = debugfs_create_file("wakeup", 0644, ++ enable_root, (void *)&wakeup_latency_enabled_data, ++ &enable_fops); ++#endif ++ ++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ++ dentry = debugfs_create_dir(missed_timer_offsets_dir, ++ latency_hist_root); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(missed_timer_offsets, i), &latency_hist_fops); ++ my_hist = &per_cpu(missed_timer_offsets, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ ++ sprintf(name, cpufmt_maxlatproc, i); ++ mp = &per_cpu(missed_timer_offsets_maxlatproc, i); ++ entry = debugfs_create_file(name, 0444, dentry, mp, ++ &maxlatproc_fops); ++ clear_maxlatprocdata(mp); ++ } ++ entry = debugfs_create_file("pid", 0644, dentry, ++ (void *)&missed_timer_offsets_pid, &pid_fops); ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)MISSED_TIMER_OFFSETS, &latency_hist_reset_fops); ++ entry = debugfs_create_file("missed_timer_offsets", 0644, ++ enable_root, (void *)&missed_timer_offsets_enabled_data, ++ &enable_fops); ++#endif ++ ++#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \ ++ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) ++ dentry = debugfs_create_dir(timerandwakeup_latency_hist_dir, ++ latency_hist_root); ++ for_each_possible_cpu(i) { ++ sprintf(name, cpufmt, i); ++ entry = debugfs_create_file(name, 0444, dentry, ++ &per_cpu(timerandwakeup_latency_hist, i), ++ &latency_hist_fops); ++ my_hist = &per_cpu(timerandwakeup_latency_hist, i); ++ atomic_set(&my_hist->hist_mode, 1); ++ my_hist->min_lat = LONG_MAX; ++ ++ sprintf(name, cpufmt_maxlatproc, i); ++ mp = &per_cpu(timerandwakeup_maxlatproc, i); ++ entry = debugfs_create_file(name, 0444, dentry, mp, ++ &maxlatproc_fops); ++ clear_maxlatprocdata(mp); ++ } ++ entry = debugfs_create_file("reset", 0644, dentry, ++ (void *)TIMERANDWAKEUP_LATENCY, &latency_hist_reset_fops); ++ entry = debugfs_create_file("timerandwakeup", 0644, ++ enable_root, (void *)&timerandwakeup_enabled_data, ++ &enable_fops); ++#endif ++ return 0; ++} ++ ++device_initcall(latency_hist_init); +--- a/kernel/trace/trace_irqsoff.c ++++ b/kernel/trace/trace_irqsoff.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include "trace.h" + +@@ -424,11 +425,13 @@ void start_critical_timings(void) + { + if (preempt_trace() || irq_trace()) + start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); ++ trace_preemptirqsoff_hist(TRACE_START, 1); + } + EXPORT_SYMBOL_GPL(start_critical_timings); + + void stop_critical_timings(void) + { ++ trace_preemptirqsoff_hist(TRACE_STOP, 0); + if (preempt_trace() || irq_trace()) + stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); + } +@@ -438,6 +441,7 @@ EXPORT_SYMBOL_GPL(stop_critical_timings) + #ifdef CONFIG_PROVE_LOCKING + void time_hardirqs_on(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(a0, a1); + } +@@ -446,6 +450,7 @@ void time_hardirqs_off(unsigned long a0, + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(a0, a1); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + + #else /* !CONFIG_PROVE_LOCKING */ +@@ -471,6 +476,7 @@ inline void print_irqtrace_events(struct + */ + void trace_hardirqs_on(void) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); + } +@@ -480,11 +486,13 @@ void trace_hardirqs_off(void) + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + EXPORT_SYMBOL(trace_hardirqs_off); + + __visible void trace_hardirqs_on_caller(unsigned long caller_addr) + { ++ trace_preemptirqsoff_hist(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(CALLER_ADDR0, caller_addr); + } +@@ -494,6 +502,7 @@ EXPORT_SYMBOL(trace_hardirqs_on_caller); + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(CALLER_ADDR0, caller_addr); ++ trace_preemptirqsoff_hist(IRQS_OFF, 1); + } + EXPORT_SYMBOL(trace_hardirqs_off_caller); + +@@ -503,12 +512,14 @@ EXPORT_SYMBOL(trace_hardirqs_off_caller) + #ifdef CONFIG_PREEMPT_TRACER + void trace_preempt_on(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(PREEMPT_ON, 0); + if (preempt_trace() && !irq_trace()) + stop_critical_timing(a0, a1); + } + + void trace_preempt_off(unsigned long a0, unsigned long a1) + { ++ trace_preemptirqsoff_hist(PREEMPT_ON, 1); + if (preempt_trace() && !irq_trace()) + start_critical_timing(a0, a1); + } diff --git a/patches/features/all/rt/latency_hist-update-sched_wakeup-probe.patch b/patches/features/all/rt/latency_hist-update-sched_wakeup-probe.patch new file mode 100644 index 00000000000..fd77f0f9465 --- /dev/null +++ b/patches/features/all/rt/latency_hist-update-sched_wakeup-probe.patch @@ -0,0 +1,41 @@ +Subject: latency_hist: Update sched_wakeup probe +From: Mathieu Desnoyers +Date: Sun, 25 Oct 2015 18:06:05 -0400 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +"sched: Introduce the 'trace_sched_waking' tracepoint" introduces a +prototype change for the sched_wakeup probe: the "success" argument is +removed. Update the latency_hist probe following this change. + +Signed-off-by: Mathieu Desnoyers +Cc: Peter Zijlstra (Intel) +Cc: Julien Desfossez +Cc: Francis Giraldeau +Cc: Mike Galbraith +Cc: Steven Rostedt +Link: http://lkml.kernel.org/r/1445810765-18732-1-git-send-email-mathieu.desnoyers@efficios.com +Signed-off-by: Thomas Gleixner +--- + kernel/trace/latency_hist.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/trace/latency_hist.c ++++ b/kernel/trace/latency_hist.c +@@ -115,7 +115,7 @@ static DEFINE_PER_CPU(struct hist_data, + static char *wakeup_latency_hist_dir = "wakeup"; + static char *wakeup_latency_hist_dir_sharedprio = "sharedprio"; + static notrace void probe_wakeup_latency_hist_start(void *v, +- struct task_struct *p, int success); ++ struct task_struct *p); + static notrace void probe_wakeup_latency_hist_stop(void *v, + struct task_struct *prev, struct task_struct *next); + static notrace void probe_sched_migrate_task(void *, +@@ -869,7 +869,7 @@ static notrace void probe_sched_migrate_ + } + + static notrace void probe_wakeup_latency_hist_start(void *v, +- struct task_struct *p, int success) ++ struct task_struct *p) + { + unsigned long flags; + struct task_struct *curr = current; diff --git a/patches/features/all/rt/latencyhist-disable-jump-labels.patch b/patches/features/all/rt/latencyhist-disable-jump-labels.patch new file mode 100644 index 00000000000..798aa4c75b6 --- /dev/null +++ b/patches/features/all/rt/latencyhist-disable-jump-labels.patch @@ -0,0 +1,62 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 4 Feb 2016 14:08:06 +0100 +Subject: latencyhist: disable jump-labels +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Atleast on X86 we die a recursive death + +|CPU: 3 PID: 585 Comm: bash Not tainted 4.4.1-rt4+ #198 +|Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Debian-1.8.2-1 04/01/2014 +|task: ffff88007ab4cd00 ti: ffff88007ab94000 task.ti: ffff88007ab94000 +|RIP: 0010:[] [] int3+0x0/0x10 +|RSP: 0018:ffff88013c107fd8 EFLAGS: 00010082 +|RAX: ffff88007ab4cd00 RBX: ffffffff8100ceab RCX: 0000000080202001 +|RDX: 0000000000000000 RSI: ffffffff8100ceab RDI: ffffffff810c78b2 +|RBP: ffff88007ab97c10 R08: ffffffffff57b000 R09: 0000000000000000 +|R10: ffff88013bb64790 R11: ffff88007ab4cd68 R12: ffffffff8100ceab +|R13: ffffffff810c78b2 R14: ffffffff810f8158 R15: ffffffff810f9120 +|FS: 0000000000000000(0000) GS:ffff88013c100000(0063) knlGS:00000000f74e3940 +|CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b +|CR2: 0000000008cf6008 CR3: 000000013b169000 CR4: 00000000000006e0 +|Call Trace: +| <#DB> +| [] ? trace_preempt_off+0x18/0x170 +| <> +| [] preempt_count_add+0xa5/0xc0 +| [] on_each_cpu+0x22/0x90 +| [] text_poke_bp+0x5b/0xc0 +| [] arch_jump_label_transform+0x8c/0xf0 +| [] __jump_label_update+0x6c/0x80 +| [] jump_label_update+0xaa/0xc0 +| [] static_key_slow_inc+0x94/0xa0 +| [] tracepoint_probe_register_prio+0x26d/0x2c0 +| [] tracepoint_probe_register+0x13/0x20 +| [] trace_event_reg+0x98/0xd0 +| [] __ftrace_event_enable_disable+0x6b/0x180 +| [] event_enable_write+0x78/0xc0 +| [] __vfs_write+0x28/0xe0 +| [] vfs_write+0xa5/0x180 +| [] SyS_write+0x46/0xa0 +| [] do_fast_syscall_32+0xa1/0x1d0 +| [] sysenter_flags_fixed+0xd/0x17 + +during + echo 1 > /sys/kernel/debug/tracing/events/hist/preemptirqsoff_hist/enable + +Reported-By: Christoph Mathys +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/Kconfig ++++ b/arch/Kconfig +@@ -52,6 +52,7 @@ config KPROBES + config JUMP_LABEL + bool "Optimize very unlikely/likely branches" + depends on HAVE_ARCH_JUMP_LABEL ++ depends on (!INTERRUPT_OFF_HIST && !PREEMPT_OFF_HIST && !WAKEUP_LATENCY_HIST && !MISSED_TIMER_OFFSETS_HIST) + help + This option enables a transparent branch optimization that + makes certain almost-always-true or almost-always-false branch diff --git a/patches/features/all/rt/leds-trigger-disable-CPU-trigger-on-RT.patch b/patches/features/all/rt/leds-trigger-disable-CPU-trigger-on-RT.patch new file mode 100644 index 00000000000..1c26ec0e7a3 --- /dev/null +++ b/patches/features/all/rt/leds-trigger-disable-CPU-trigger-on-RT.patch @@ -0,0 +1,36 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 23 Jan 2014 14:45:59 +0100 +Subject: leds: trigger: disable CPU trigger on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +as it triggers: +|CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 +|[] (unwind_backtrace+0x0/0xf8) from [] (show_stack+0x1c/0x20) +|[] (show_stack+0x1c/0x20) from [] (dump_stack+0x20/0x2c) +|[] (dump_stack+0x20/0x2c) from [] (__might_sleep+0x13c/0x170) +|[] (__might_sleep+0x13c/0x170) from [] (__rt_spin_lock+0x28/0x38) +|[] (__rt_spin_lock+0x28/0x38) from [] (rt_read_lock+0x68/0x7c) +|[] (rt_read_lock+0x68/0x7c) from [] (led_trigger_event+0x2c/0x5c) +|[] (led_trigger_event+0x2c/0x5c) from [] (ledtrig_cpu+0x54/0x5c) +|[] (ledtrig_cpu+0x54/0x5c) from [] (arch_cpu_idle_exit+0x18/0x1c) +|[] (arch_cpu_idle_exit+0x18/0x1c) from [] (cpu_startup_entry+0xa8/0x234) +|[] (cpu_startup_entry+0xa8/0x234) from [] (rest_init+0xb8/0xe0) +|[] (rest_init+0xb8/0xe0) from [] (start_kernel+0x2c4/0x380) + + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/leds/trigger/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/leds/trigger/Kconfig ++++ b/drivers/leds/trigger/Kconfig +@@ -69,7 +69,7 @@ config LEDS_TRIGGER_BACKLIGHT + + config LEDS_TRIGGER_CPU + bool "LED CPU Trigger" +- depends on LEDS_TRIGGERS ++ depends on LEDS_TRIGGERS && !PREEMPT_RT_BASE + help + This allows LEDs to be controlled by active CPUs. This shows + the active CPUs across an array of LEDs so you can see which diff --git a/patches/features/all/rt/list_bl-fixup-bogus-lockdep-warning.patch b/patches/features/all/rt/list_bl-fixup-bogus-lockdep-warning.patch new file mode 100644 index 00000000000..f47e7b4be97 --- /dev/null +++ b/patches/features/all/rt/list_bl-fixup-bogus-lockdep-warning.patch @@ -0,0 +1,98 @@ +From: Josh Cartwright +Date: Thu, 31 Mar 2016 00:04:25 -0500 +Subject: [PATCH] list_bl: fixup bogus lockdep warning +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +At first glance, the use of 'static inline' seems appropriate for +INIT_HLIST_BL_HEAD(). + +However, when a 'static inline' function invocation is inlined by gcc, +all callers share any static local data declared within that inline +function. + +This presents a problem for how lockdep classes are setup. raw_spinlocks, for +example, when CONFIG_DEBUG_SPINLOCK, + + # define raw_spin_lock_init(lock) \ + do { \ + static struct lock_class_key __key; \ + \ + __raw_spin_lock_init((lock), #lock, &__key); \ + } while (0) + +When this macro is expanded into a 'static inline' caller, like +INIT_HLIST_BL_HEAD(): + + static inline INIT_HLIST_BL_HEAD(struct hlist_bl_head *h) + { + h->first = NULL; + raw_spin_lock_init(&h->lock); + } + +...the static local lock_class_key object is made a function static. + +For compilation units which initialize invoke INIT_HLIST_BL_HEAD() more +than once, then, all of the invocations share this same static local +object. + +This can lead to some very confusing lockdep splats (example below). +Solve this problem by forcing the INIT_HLIST_BL_HEAD() to be a macro, +which prevents the lockdep class object sharing. + + ============================================= + [ INFO: possible recursive locking detected ] + 4.4.4-rt11 #4 Not tainted + --------------------------------------------- + kswapd0/59 is trying to acquire lock: + (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan + + but task is already holding lock: + (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan + + other info that might help us debug this: + Possible unsafe locking scenario: + + CPU0 + ---- + lock(&h->lock#2); + lock(&h->lock#2); + + *** DEADLOCK *** + + May be due to missing lock nesting notation + + 2 locks held by kswapd0/59: + #0: (shrinker_rwsem){+.+...}, at: rt_down_read_trylock + #1: (&h->lock#2){+.+.-.}, at: mb_cache_shrink_scan + +Reported-by: Luis Claudio R. Goncalves +Tested-by: Luis Claudio R. Goncalves +Signed-off-by: Josh Cartwright +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/list_bl.h | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +--- a/include/linux/list_bl.h ++++ b/include/linux/list_bl.h +@@ -42,13 +42,15 @@ struct hlist_bl_node { + struct hlist_bl_node *next, **pprev; + }; + +-static inline void INIT_HLIST_BL_HEAD(struct hlist_bl_head *h) +-{ +- h->first = NULL; + #ifdef CONFIG_PREEMPT_RT_BASE +- raw_spin_lock_init(&h->lock); ++#define INIT_HLIST_BL_HEAD(h) \ ++do { \ ++ (h)->first = NULL; \ ++ raw_spin_lock_init(&(h)->lock); \ ++} while (0) ++#else ++#define INIT_HLIST_BL_HEAD(h) (h)->first = NULL + #endif +-} + + static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h) + { diff --git a/patches/features/all/rt/list_bl.h-make-list-head-locking-RT-safe.patch b/patches/features/all/rt/list_bl.h-make-list-head-locking-RT-safe.patch new file mode 100644 index 00000000000..4b95ddd9a61 --- /dev/null +++ b/patches/features/all/rt/list_bl.h-make-list-head-locking-RT-safe.patch @@ -0,0 +1,115 @@ +From: Paul Gortmaker +Date: Fri, 21 Jun 2013 15:07:25 -0400 +Subject: list_bl: Make list head locking RT safe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +As per changes in include/linux/jbd_common.h for avoiding the +bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal +head lock rt safe") we do the same thing here. + +We use the non atomic __set_bit and __clear_bit inside the scope of +the lock to preserve the ability of the existing LIST_DEBUG code to +use the zero'th bit in the sanity checks. + +As a bit spinlock, we had no lockdep visibility into the usage +of the list head locking. Now, if we were to implement it as a +standard non-raw spinlock, we would see: + +BUG: sleeping function called from invalid context at kernel/rtmutex.c:658 +in_atomic(): 1, irqs_disabled(): 0, pid: 122, name: udevd +5 locks held by udevd/122: + #0: (&sb->s_type->i_mutex_key#7/1){+.+.+.}, at: [] lock_rename+0xe8/0xf0 + #1: (rename_lock){+.+...}, at: [] d_move+0x2c/0x60 + #2: (&dentry->d_lock){+.+...}, at: [] dentry_lock_for_move+0xf3/0x130 + #3: (&dentry->d_lock/2){+.+...}, at: [] dentry_lock_for_move+0xc4/0x130 + #4: (&dentry->d_lock/3){+.+...}, at: [] dentry_lock_for_move+0xd7/0x130 +Pid: 122, comm: udevd Not tainted 3.4.47-rt62 #7 +Call Trace: + [] __might_sleep+0x134/0x1f0 + [] rt_spin_lock+0x24/0x60 + [] __d_shrink+0x5c/0xa0 + [] __d_drop+0x1d/0x40 + [] __d_move+0x8e/0x320 + [] d_move+0x3e/0x60 + [] vfs_rename+0x198/0x4c0 + [] sys_renameat+0x213/0x240 + [] ? _raw_spin_unlock+0x35/0x60 + [] ? do_page_fault+0x1ec/0x4b0 + [] ? retint_swapgs+0xe/0x13 + [] ? trace_hardirqs_on_thunk+0x3a/0x3f + [] sys_rename+0x1b/0x20 + [] system_call_fastpath+0x1a/0x1f + +Since we are only taking the lock during short lived list operations, +lets assume for now that it being raw won't be a significant latency +concern. + + +Signed-off-by: Paul Gortmaker +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/list_bl.h | 28 ++++++++++++++++++++++++++-- + 1 file changed, 26 insertions(+), 2 deletions(-) + +--- a/include/linux/list_bl.h ++++ b/include/linux/list_bl.h +@@ -2,6 +2,7 @@ + #define _LINUX_LIST_BL_H + + #include ++#include + #include + + /* +@@ -32,13 +33,22 @@ + + struct hlist_bl_head { + struct hlist_bl_node *first; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ raw_spinlock_t lock; ++#endif + }; + + struct hlist_bl_node { + struct hlist_bl_node *next, **pprev; + }; +-#define INIT_HLIST_BL_HEAD(ptr) \ +- ((ptr)->first = NULL) ++ ++static inline void INIT_HLIST_BL_HEAD(struct hlist_bl_head *h) ++{ ++ h->first = NULL; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ raw_spin_lock_init(&h->lock); ++#endif ++} + + static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h) + { +@@ -118,12 +128,26 @@ static inline void hlist_bl_del_init(str + + static inline void hlist_bl_lock(struct hlist_bl_head *b) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + bit_spin_lock(0, (unsigned long *)b); ++#else ++ raw_spin_lock(&b->lock); ++#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK) ++ __set_bit(0, (unsigned long *)b); ++#endif ++#endif + } + + static inline void hlist_bl_unlock(struct hlist_bl_head *b) + { ++#ifndef CONFIG_PREEMPT_RT_BASE + __bit_spin_unlock(0, (unsigned long *)b); ++#else ++#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK) ++ __clear_bit(0, (unsigned long *)b); ++#endif ++ raw_spin_unlock(&b->lock); ++#endif + } + + static inline bool hlist_bl_is_locked(struct hlist_bl_head *b) diff --git a/patches/features/all/rt/local-irq-rt-depending-variants.patch b/patches/features/all/rt/local-irq-rt-depending-variants.patch new file mode 100644 index 00000000000..d58b4e0712e --- /dev/null +++ b/patches/features/all/rt/local-irq-rt-depending-variants.patch @@ -0,0 +1,53 @@ +From: Thomas Gleixner +Date: Tue, 21 Jul 2009 22:34:14 +0200 +Subject: rt: local_irq_* variants depending on RT/!RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Add local_irq_*_(no)rt variant which are mainly used to break +interrupt disabled sections on PREEMPT_RT or to explicitely disable +interrupts on PREEMPT_RT. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/interrupt.h | 2 +- + include/linux/irqflags.h | 19 +++++++++++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -196,7 +196,7 @@ extern void devm_free_irq(struct device + #ifdef CONFIG_LOCKDEP + # define local_irq_enable_in_hardirq() do { } while (0) + #else +-# define local_irq_enable_in_hardirq() local_irq_enable() ++# define local_irq_enable_in_hardirq() local_irq_enable_nort() + #endif + + extern void disable_irq_nosync(unsigned int irq); +--- a/include/linux/irqflags.h ++++ b/include/linux/irqflags.h +@@ -148,4 +148,23 @@ + + #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags) + ++/* ++ * local_irq* variants depending on RT/!RT ++ */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define local_irq_disable_nort() do { } while (0) ++# define local_irq_enable_nort() do { } while (0) ++# define local_irq_save_nort(flags) local_save_flags(flags) ++# define local_irq_restore_nort(flags) (void)(flags) ++# define local_irq_disable_rt() local_irq_disable() ++# define local_irq_enable_rt() local_irq_enable() ++#else ++# define local_irq_disable_nort() local_irq_disable() ++# define local_irq_enable_nort() local_irq_enable() ++# define local_irq_save_nort(flags) local_irq_save(flags) ++# define local_irq_restore_nort(flags) local_irq_restore(flags) ++# define local_irq_disable_rt() do { } while (0) ++# define local_irq_enable_rt() do { } while (0) ++#endif ++ + #endif diff --git a/patches/features/all/rt/locallock-add-local_lock_on.patch b/patches/features/all/rt/locallock-add-local_lock_on.patch new file mode 100644 index 00000000000..4ada352855d --- /dev/null +++ b/patches/features/all/rt/locallock-add-local_lock_on.patch @@ -0,0 +1,32 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 27 May 2016 15:11:51 +0200 +Subject: [PATCH] locallock: add local_lock_on() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/locallock.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/include/linux/locallock.h ++++ b/include/linux/locallock.h +@@ -60,6 +60,9 @@ static inline void __local_lock(struct l + #define local_lock(lvar) \ + do { __local_lock(&get_local_var(lvar)); } while (0) + ++#define local_lock_on(lvar, cpu) \ ++ do { __local_lock(&per_cpu(lvar, cpu)); } while (0) ++ + static inline int __local_trylock(struct local_irq_lock *lv) + { + if (lv->owner != current && spin_trylock_local(&lv->lock)) { +@@ -98,6 +101,9 @@ static inline void __local_unlock(struct + put_local_var(lvar); \ + } while (0) + ++#define local_unlock_on(lvar, cpu) \ ++ do { __local_unlock(&per_cpu(lvar, cpu)); } while (0) ++ + static inline void __local_lock_irq(struct local_irq_lock *lv) + { + spin_lock_irqsave(&lv->lock, lv->flags); diff --git a/patches/features/all/rt/localversion.patch b/patches/features/all/rt/localversion.patch new file mode 100644 index 00000000000..a1044be221a --- /dev/null +++ b/patches/features/all/rt/localversion.patch @@ -0,0 +1,14 @@ +Subject: Add localversion for -RT release +From: Thomas Gleixner +Date: Fri, 08 Jul 2011 20:25:16 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Signed-off-by: Thomas Gleixner +--- + localversion-rt | 1 + + 1 file changed, 1 insertion(+) + +--- /dev/null ++++ b/localversion-rt +@@ -0,0 +1 @@ ++-rt1 diff --git a/patches/features/all/rt/lockdep-no-softirq-accounting-on-rt.patch b/patches/features/all/rt/lockdep-no-softirq-accounting-on-rt.patch new file mode 100644 index 00000000000..742dbe5fda4 --- /dev/null +++ b/patches/features/all/rt/lockdep-no-softirq-accounting-on-rt.patch @@ -0,0 +1,59 @@ +Subject: lockdep: Make it RT aware +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 18:51:23 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +teach lockdep that we don't really do softirqs on -RT. + +Signed-off-by: Thomas Gleixner +--- + include/linux/irqflags.h | 10 +++++++--- + kernel/locking/lockdep.c | 2 ++ + 2 files changed, 9 insertions(+), 3 deletions(-) + +--- a/include/linux/irqflags.h ++++ b/include/linux/irqflags.h +@@ -25,8 +25,6 @@ + # define trace_softirqs_enabled(p) ((p)->softirqs_enabled) + # define trace_hardirq_enter() do { current->hardirq_context++; } while (0) + # define trace_hardirq_exit() do { current->hardirq_context--; } while (0) +-# define lockdep_softirq_enter() do { current->softirq_context++; } while (0) +-# define lockdep_softirq_exit() do { current->softirq_context--; } while (0) + # define INIT_TRACE_IRQFLAGS .softirqs_enabled = 1, + #else + # define trace_hardirqs_on() do { } while (0) +@@ -39,9 +37,15 @@ + # define trace_softirqs_enabled(p) 0 + # define trace_hardirq_enter() do { } while (0) + # define trace_hardirq_exit() do { } while (0) ++# define INIT_TRACE_IRQFLAGS ++#endif ++ ++#if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PREEMPT_RT_FULL) ++# define lockdep_softirq_enter() do { current->softirq_context++; } while (0) ++# define lockdep_softirq_exit() do { current->softirq_context--; } while (0) ++#else + # define lockdep_softirq_enter() do { } while (0) + # define lockdep_softirq_exit() do { } while (0) +-# define INIT_TRACE_IRQFLAGS + #endif + + #if defined(CONFIG_IRQSOFF_TRACER) || \ +--- a/kernel/locking/lockdep.c ++++ b/kernel/locking/lockdep.c +@@ -3689,6 +3689,7 @@ static void check_flags(unsigned long fl + } + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * We dont accurately track softirq state in e.g. + * hardirq contexts (such as on 4KSTACKS), so only +@@ -3703,6 +3704,7 @@ static void check_flags(unsigned long fl + DEBUG_LOCKS_WARN_ON(!current->softirqs_enabled); + } + } ++#endif + + if (!debug_locks) + print_irqtrace_events(current); diff --git a/patches/features/all/rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/patches/features/all/rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch new file mode 100644 index 00000000000..5a43e0589a4 --- /dev/null +++ b/patches/features/all/rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -0,0 +1,142 @@ +From: Josh Cartwright +Date: Wed, 28 Jan 2015 13:08:45 -0600 +Subject: lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +"lockdep: Selftest: Only do hardirq context test for raw spinlock" +disabled the execution of certain tests with PREEMPT_RT_FULL, but did +not prevent the tests from still being defined. This leads to warnings +like: + + ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_12' defined but not used [-Wunused-function] + ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_21' defined but not used [-Wunused-function] + ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_12' defined but not used [-Wunused-function] + ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_21' defined but not used [-Wunused-function] + ./linux/lib/locking-selftest.c:580:1: warning: 'irqsafe1_soft_spin_12' defined but not used [-Wunused-function] + ... + +Fixed by wrapping the test definitions in #ifndef CONFIG_PREEMPT_RT_FULL +conditionals. + + +Signed-off-by: Josh Cartwright +Signed-off-by: Xander Huff +Acked-by: Gratian Crisan +Signed-off-by: Sebastian Andrzej Siewior +--- + lib/locking-selftest.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +--- a/lib/locking-selftest.c ++++ b/lib/locking-selftest.c +@@ -590,6 +590,8 @@ GENERATE_TESTCASE(init_held_rsem) + #include "locking-selftest-spin-hardirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_spin) + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + #include "locking-selftest-rlock-hardirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_rlock) + +@@ -605,9 +607,12 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_ + #include "locking-selftest-wlock-softirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_soft_wlock) + ++#endif ++ + #undef E1 + #undef E2 + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Enabling hardirqs with a softirq-safe lock held: + */ +@@ -640,6 +645,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A + #undef E1 + #undef E2 + ++#endif ++ + /* + * Enabling irqs with an irq-safe lock held: + */ +@@ -663,6 +670,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A + #include "locking-selftest-spin-hardirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_spin) + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + #include "locking-selftest-rlock-hardirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_rlock) + +@@ -678,6 +687,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B + #include "locking-selftest-wlock-softirq.h" + GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_wlock) + ++#endif ++ + #undef E1 + #undef E2 + +@@ -709,6 +720,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B + #include "locking-selftest-spin-hardirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_spin) + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + #include "locking-selftest-rlock-hardirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_rlock) + +@@ -724,6 +737,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_ + #include "locking-selftest-wlock-softirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_wlock) + ++#endif ++ + #undef E1 + #undef E2 + #undef E3 +@@ -757,6 +772,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_ + #include "locking-selftest-spin-hardirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_spin) + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + #include "locking-selftest-rlock-hardirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_rlock) + +@@ -772,10 +789,14 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_ + #include "locking-selftest-wlock-softirq.h" + GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_soft_wlock) + ++#endif ++ + #undef E1 + #undef E2 + #undef E3 + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + /* + * read-lock / write-lock irq inversion. + * +@@ -838,6 +859,10 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_inver + #undef E2 + #undef E3 + ++#endif ++ ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + /* + * read-lock / write-lock recursion that is actually safe. + */ +@@ -876,6 +901,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_read_ + #undef E2 + #undef E3 + ++#endif ++ + /* + * read-lock / write-lock recursion that is unsafe. + */ diff --git a/patches/features/all/rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch b/patches/features/all/rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch new file mode 100644 index 00000000000..3934a7533d9 --- /dev/null +++ b/patches/features/all/rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch @@ -0,0 +1,57 @@ +Subject: lockdep: selftest: Only do hardirq context test for raw spinlock +From: Yong Zhang +Date: Mon, 16 Apr 2012 15:01:56 +0800 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +From: Yong Zhang + +On -rt there is no softirq context any more and rwlock is sleepable, +disable softirq context test and rwlock+irq test. + +Signed-off-by: Yong Zhang +Cc: Yong Zhang +Link: http://lkml.kernel.org/r/1334559716-18447-3-git-send-email-yong.zhang0@gmail.com +Signed-off-by: Thomas Gleixner +--- + lib/locking-selftest.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/lib/locking-selftest.c ++++ b/lib/locking-selftest.c +@@ -1858,6 +1858,7 @@ void locking_selftest(void) + + printk(" --------------------------------------------------------------------------\n"); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * irq-context testcases: + */ +@@ -1870,6 +1871,28 @@ void locking_selftest(void) + + DO_TESTCASE_6x2("irq read-recursion", irq_read_recursion); + // DO_TESTCASE_6x2B("irq read-recursion #2", irq_read_recursion2); ++#else ++ /* On -rt, we only do hardirq context test for raw spinlock */ ++ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 12); ++ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 21); ++ ++ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 12); ++ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 21); ++ ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 123); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 132); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 213); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 231); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 312); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 321); ++ ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 123); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 132); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 213); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 231); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 312); ++ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 321); ++#endif + + ww_tests(); + diff --git a/patches/features/all/rt/locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/patches/features/all/rt/locking-locktorture-Do-NOT-include-rwlock.h-directly.patch new file mode 100644 index 00000000000..944948db5ed --- /dev/null +++ b/patches/features/all/rt/locking-locktorture-Do-NOT-include-rwlock.h-directly.patch @@ -0,0 +1,27 @@ +From: "Wolfgang M. Reimer" +Date: Tue, 21 Jul 2015 16:20:07 +0200 +Subject: locking: locktorture: Do NOT include rwlock.h directly +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Including rwlock.h directly will cause kernel builds to fail +if CONFIG_PREEMPT_RT_FULL is defined. The correct header file +(rwlock_rt.h OR rwlock.h) will be included by spinlock.h which +is included by locktorture.c anyway. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Wolfgang M. Reimer +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/locking/locktorture.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/kernel/locking/locktorture.c ++++ b/kernel/locking/locktorture.c +@@ -26,7 +26,6 @@ + #include + #include + #include +-#include + #include + #include + #include diff --git a/patches/features/all/rt/locking-percpu-rwsem-use-swait-for-the-wating-writer.patch b/patches/features/all/rt/locking-percpu-rwsem-use-swait-for-the-wating-writer.patch new file mode 100644 index 00000000000..b5d5a34bc79 --- /dev/null +++ b/patches/features/all/rt/locking-percpu-rwsem-use-swait-for-the-wating-writer.patch @@ -0,0 +1,73 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 21 Nov 2016 19:26:15 +0100 +Subject: [PATCH] locking/percpu-rwsem: use swait for the wating writer +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use struct swait_queue_head instead of wait_queue_head_t for the waiting +writer. The swait implementation is smaller and lightweight compared to +wait_queue_head_t. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/percpu-rwsem.h | 6 +++--- + kernel/locking/percpu-rwsem.c | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +--- a/include/linux/percpu-rwsem.h ++++ b/include/linux/percpu-rwsem.h +@@ -4,7 +4,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +@@ -12,7 +12,7 @@ struct percpu_rw_semaphore { + struct rcu_sync rss; + unsigned int __percpu *read_count; + struct rw_semaphore rw_sem; +- wait_queue_head_t writer; ++ struct swait_queue_head writer; + int readers_block; + }; + +@@ -22,7 +22,7 @@ static struct percpu_rw_semaphore name = + .rss = __RCU_SYNC_INITIALIZER(name.rss, RCU_SCHED_SYNC), \ + .read_count = &__percpu_rwsem_rc_##name, \ + .rw_sem = __RWSEM_INITIALIZER(name.rw_sem), \ +- .writer = __WAIT_QUEUE_HEAD_INITIALIZER(name.writer), \ ++ .writer = __SWAIT_QUEUE_HEAD_INITIALIZER(name.writer), \ + } + + extern int __percpu_down_read(struct percpu_rw_semaphore *, int); +--- a/kernel/locking/percpu-rwsem.c ++++ b/kernel/locking/percpu-rwsem.c +@@ -18,7 +18,7 @@ int __percpu_init_rwsem(struct percpu_rw + /* ->rw_sem represents the whole percpu_rw_semaphore for lockdep */ + rcu_sync_init(&sem->rss, RCU_SCHED_SYNC); + __init_rwsem(&sem->rw_sem, name, rwsem_key); +- init_waitqueue_head(&sem->writer); ++ init_swait_queue_head(&sem->writer); + sem->readers_block = 0; + return 0; + } +@@ -103,7 +103,7 @@ void __percpu_up_read(struct percpu_rw_s + __this_cpu_dec(*sem->read_count); + + /* Prod writer to recheck readers_active */ +- wake_up(&sem->writer); ++ swake_up(&sem->writer); + } + EXPORT_SYMBOL_GPL(__percpu_up_read); + +@@ -160,7 +160,7 @@ void percpu_down_write(struct percpu_rw_ + */ + + /* Wait for all now active readers to complete. */ +- wait_event(sem->writer, readers_active_check(sem)); ++ swait_event(sem->writer, readers_active_check(sem)); + } + EXPORT_SYMBOL_GPL(percpu_down_write); + diff --git a/patches/features/all/rt/md-disable-bcache.patch b/patches/features/all/rt/md-disable-bcache.patch new file mode 100644 index 00000000000..dc5a173489e --- /dev/null +++ b/patches/features/all/rt/md-disable-bcache.patch @@ -0,0 +1,32 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 29 Aug 2013 11:48:57 +0200 +Subject: md: disable bcache +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +It uses anon semaphores +|drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’: +|drivers/md/bcache/request.c:1007:2: error: implicit declaration of function ‘up_read_non_owner’ [-Werror=implicit-function-declaration] +| up_read_non_owner(&dc->writeback_lock); +| ^ +|drivers/md/bcache/request.c: In function ‘request_write’: +|drivers/md/bcache/request.c:1033:2: error: implicit declaration of function ‘down_read_non_owner’ [-Werror=implicit-function-declaration] +| down_read_non_owner(&dc->writeback_lock); +| ^ + +either we get rid of those or we have to introduce them… + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/md/bcache/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/md/bcache/Kconfig ++++ b/drivers/md/bcache/Kconfig +@@ -1,6 +1,7 @@ + + config BCACHE + tristate "Block device as cache" ++ depends on !PREEMPT_RT_FULL + ---help--- + Allows a block device to be used as cache for other devices; uses + a btree for indexing and the layout is optimized for SSDs. diff --git a/patches/features/all/rt/md-raid5-percpu-handling-rt-aware.patch b/patches/features/all/rt/md-raid5-percpu-handling-rt-aware.patch new file mode 100644 index 00000000000..3e0d91f5a28 --- /dev/null +++ b/patches/features/all/rt/md-raid5-percpu-handling-rt-aware.patch @@ -0,0 +1,70 @@ +From: Thomas Gleixner +Date: Tue, 6 Apr 2010 16:51:31 +0200 +Subject: md: raid5: Make raid5_percpu handling RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +__raid_run_ops() disables preemption with get_cpu() around the access +to the raid5_percpu variables. That causes scheduling while atomic +spews on RT. + +Serialize the access to the percpu data with a lock and keep the code +preemptible. + +Reported-by: Udo van den Heuvel +Signed-off-by: Thomas Gleixner +Tested-by: Udo van den Heuvel + +--- + drivers/md/raid5.c | 8 +++++--- + drivers/md/raid5.h | 1 + + 2 files changed, 6 insertions(+), 3 deletions(-) + +--- a/drivers/md/raid5.c ++++ b/drivers/md/raid5.c +@@ -1928,8 +1928,9 @@ static void raid_run_ops(struct stripe_h + struct raid5_percpu *percpu; + unsigned long cpu; + +- cpu = get_cpu(); ++ cpu = get_cpu_light(); + percpu = per_cpu_ptr(conf->percpu, cpu); ++ spin_lock(&percpu->lock); + if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) { + ops_run_biofill(sh); + overlap_clear++; +@@ -1985,7 +1986,8 @@ static void raid_run_ops(struct stripe_h + if (test_and_clear_bit(R5_Overlap, &dev->flags)) + wake_up(&sh->raid_conf->wait_for_overlap); + } +- put_cpu(); ++ spin_unlock(&percpu->lock); ++ put_cpu_light(); + } + + static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp, +@@ -6391,6 +6393,7 @@ static int raid456_cpu_up_prepare(unsign + __func__, cpu); + return -ENOMEM; + } ++ spin_lock_init(&per_cpu_ptr(conf->percpu, cpu)->lock); + return 0; + } + +@@ -6401,7 +6404,6 @@ static int raid5_alloc_percpu(struct r5c + conf->percpu = alloc_percpu(struct raid5_percpu); + if (!conf->percpu) + return -ENOMEM; +- + err = cpuhp_state_add_instance(CPUHP_MD_RAID5_PREPARE, &conf->node); + if (!err) { + conf->scribble_disks = max(conf->raid_disks, +--- a/drivers/md/raid5.h ++++ b/drivers/md/raid5.h +@@ -504,6 +504,7 @@ struct r5conf { + int recovery_disabled; + /* per cpu variables */ + struct raid5_percpu { ++ spinlock_t lock; /* Protection for -RT */ + struct page *spare_page; /* Used when checking P/Q in raid6 */ + struct flex_array *scribble; /* space for constructing buffer + * lists and performing address diff --git a/patches/features/all/rt/mips-disable-highmem-on-rt.patch b/patches/features/all/rt/mips-disable-highmem-on-rt.patch new file mode 100644 index 00000000000..22bb9c75670 --- /dev/null +++ b/patches/features/all/rt/mips-disable-highmem-on-rt.patch @@ -0,0 +1,23 @@ +Subject: mips: Disable highmem on RT +From: Thomas Gleixner +Date: Mon, 18 Jul 2011 17:10:12 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The current highmem handling on -RT is not compatible and needs fixups. + +Signed-off-by: Thomas Gleixner +--- + arch/mips/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/Kconfig ++++ b/arch/mips/Kconfig +@@ -2514,7 +2514,7 @@ config MIPS_ASID_BITS_VARIABLE + # + config HIGHMEM + bool "High Memory Support" +- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA ++ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA && !PREEMPT_RT_FULL + + config CPU_SUPPORTS_HIGHMEM + bool diff --git a/patches/features/all/rt/mm--rt--Fix-generic-kmap_atomic-for-RT.patch b/patches/features/all/rt/mm--rt--Fix-generic-kmap_atomic-for-RT.patch new file mode 100644 index 00000000000..66494e9552a --- /dev/null +++ b/patches/features/all/rt/mm--rt--Fix-generic-kmap_atomic-for-RT.patch @@ -0,0 +1,41 @@ +Subject: mm: rt: Fix generic kmap_atomic for RT +From: Thomas Gleixner +Date: Sat, 19 Sep 2015 10:15:00 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The update to 4.1 brought in the mainline variant of the pagefault +disable distangling from preempt count. That introduced a +preempt_disable/enable pair in the generic kmap_atomic/kunmap_atomic +implementations which got not converted to the _nort() variant. + +That results in massive 'scheduling while atomic/sleeping function +called from invalid context' splats. + +Fix that up. + +Reported-and-tested-by: Juergen Borleis +Signed-off-by: Thomas Gleixner +--- + include/linux/highmem.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/include/linux/highmem.h ++++ b/include/linux/highmem.h +@@ -65,7 +65,7 @@ static inline void kunmap(struct page *p + + static inline void *kmap_atomic(struct page *page) + { +- preempt_disable(); ++ preempt_disable_nort(); + pagefault_disable(); + return page_address(page); + } +@@ -74,7 +74,7 @@ static inline void *kmap_atomic(struct p + static inline void __kunmap_atomic(void *addr) + { + pagefault_enable(); +- preempt_enable(); ++ preempt_enable_nort(); + } + + #define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn)) diff --git a/patches/features/all/rt/mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch b/patches/features/all/rt/mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch new file mode 100644 index 00000000000..83a68a8d771 --- /dev/null +++ b/patches/features/all/rt/mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch @@ -0,0 +1,42 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 5 Feb 2016 12:17:14 +0100 +Subject: mm: backing-dev: don't disable IRQs in wb_congested_put() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +it triggers: +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:930 +|in_atomic(): 0, irqs_disabled(): 1, pid: 12, name: rcuc/0 +|1 lock held by rcuc/0/12: +| #0: (rcu_callback){......}, at: [] rcu_cpu_kthread+0x376/0xb10 +|irq event stamp: 23636 +|hardirqs last enabled at (23635): [] _raw_spin_unlock_irqrestore+0x6c/0x80 +|hardirqs last disabled at (23636): [] wb_congested_put+0x18/0x90 +| [] rt_spin_lock+0x24/0x60 +| [] atomic_dec_and_spin_lock+0x52/0x90 +| [] wb_congested_put+0x28/0x90 +| [] __blkg_release_rcu+0x5e/0x1e0 +| [] ? __blkg_release_rcu+0x87/0x1e0 +| [] ? blkg_conf_finish+0x90/0x90 +| [] rcu_cpu_kthread+0x3b7/0xb10 + +due to cgwb_lock beeing taken with spin_lock_irqsave() usually. + +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/backing-dev.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/backing-dev.c ++++ b/mm/backing-dev.c +@@ -457,9 +457,9 @@ void wb_congested_put(struct bdi_writeba + { + unsigned long flags; + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + if (!atomic_dec_and_lock(&congested->refcnt, &cgwb_lock)) { +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + return; + } + diff --git a/patches/features/all/rt/mm-bounce-local-irq-save-nort.patch b/patches/features/all/rt/mm-bounce-local-irq-save-nort.patch new file mode 100644 index 00000000000..690ed919238 --- /dev/null +++ b/patches/features/all/rt/mm-bounce-local-irq-save-nort.patch @@ -0,0 +1,28 @@ +Subject: mm: bounce: Use local_irq_save_nort +From: Thomas Gleixner +Date: Wed, 09 Jan 2013 10:33:09 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +kmap_atomic() is preemptible on RT. + +Signed-off-by: Thomas Gleixner +--- + block/bounce.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/block/bounce.c ++++ b/block/bounce.c +@@ -55,11 +55,11 @@ static void bounce_copy_vec(struct bio_v + unsigned long flags; + unsigned char *vto; + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + vto = kmap_atomic(to->bv_page); + memcpy(vto + to->bv_offset, vfrom, to->bv_len); + kunmap_atomic(vto); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + + #else /* CONFIG_HIGHMEM */ diff --git a/patches/features/all/rt/mm-convert-swap-to-percpu-locked.patch b/patches/features/all/rt/mm-convert-swap-to-percpu-locked.patch new file mode 100644 index 00000000000..fbd409e34dd --- /dev/null +++ b/patches/features/all/rt/mm-convert-swap-to-percpu-locked.patch @@ -0,0 +1,191 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:51 -0500 +Subject: mm/swap: Convert to percpu locked +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Replace global locks (get_cpu + local_irq_save) with "local_locks()". +Currently there is one of for "rotate" and one for "swap". + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + include/linux/swap.h | 1 + + mm/compaction.c | 6 ++++-- + mm/page_alloc.c | 2 ++ + mm/swap.c | 38 ++++++++++++++++++++++---------------- + 4 files changed, 29 insertions(+), 18 deletions(-) + +--- a/include/linux/swap.h ++++ b/include/linux/swap.h +@@ -293,6 +293,7 @@ extern unsigned long nr_free_pagecache_p + + + /* linux/mm/swap.c */ ++DECLARE_LOCAL_IRQ_LOCK(swapvec_lock); + extern void lru_cache_add(struct page *); + extern void lru_cache_add_anon(struct page *page); + extern void lru_cache_add_file(struct page *page); +--- a/mm/compaction.c ++++ b/mm/compaction.c +@@ -1612,10 +1612,12 @@ static enum compact_result compact_zone( + block_start_pfn(cc->migrate_pfn, cc->order); + + if (cc->last_migrated_pfn < current_block_start) { +- cpu = get_cpu(); ++ cpu = get_cpu_light(); ++ local_lock_irq(swapvec_lock); + lru_add_drain_cpu(cpu); ++ local_unlock_irq(swapvec_lock); + drain_local_pages(zone); +- put_cpu(); ++ put_cpu_light(); + /* No more flushing until we migrate again */ + cc->last_migrated_pfn = 0; + } +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -6559,7 +6559,9 @@ static int page_alloc_cpu_notify(struct + int cpu = (unsigned long)hcpu; + + if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { ++ local_lock_irq_on(swapvec_lock, cpu); + lru_add_drain_cpu(cpu); ++ local_unlock_irq_on(swapvec_lock, cpu); + drain_pages(cpu); + + /* +--- a/mm/swap.c ++++ b/mm/swap.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -50,6 +51,8 @@ static DEFINE_PER_CPU(struct pagevec, lr + #ifdef CONFIG_SMP + static DEFINE_PER_CPU(struct pagevec, activate_page_pvecs); + #endif ++static DEFINE_LOCAL_IRQ_LOCK(rotate_lock); ++DEFINE_LOCAL_IRQ_LOCK(swapvec_lock); + + /* + * This path almost never happens for VM activity - pages are normally +@@ -240,11 +243,11 @@ void rotate_reclaimable_page(struct page + unsigned long flags; + + get_page(page); +- local_irq_save(flags); ++ local_lock_irqsave(rotate_lock, flags); + pvec = this_cpu_ptr(&lru_rotate_pvecs); + if (!pagevec_add(pvec, page) || PageCompound(page)) + pagevec_move_tail(pvec); +- local_irq_restore(flags); ++ local_unlock_irqrestore(rotate_lock, flags); + } + } + +@@ -294,12 +297,13 @@ void activate_page(struct page *page) + { + page = compound_head(page); + if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) { +- struct pagevec *pvec = &get_cpu_var(activate_page_pvecs); ++ struct pagevec *pvec = &get_locked_var(swapvec_lock, ++ activate_page_pvecs); + + get_page(page); + if (!pagevec_add(pvec, page) || PageCompound(page)) + pagevec_lru_move_fn(pvec, __activate_page, NULL); +- put_cpu_var(activate_page_pvecs); ++ put_locked_var(swapvec_lock, activate_page_pvecs); + } + } + +@@ -326,7 +330,7 @@ void activate_page(struct page *page) + + static void __lru_cache_activate_page(struct page *page) + { +- struct pagevec *pvec = &get_cpu_var(lru_add_pvec); ++ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec); + int i; + + /* +@@ -348,7 +352,7 @@ static void __lru_cache_activate_page(st + } + } + +- put_cpu_var(lru_add_pvec); ++ put_locked_var(swapvec_lock, lru_add_pvec); + } + + /* +@@ -390,12 +394,12 @@ EXPORT_SYMBOL(mark_page_accessed); + + static void __lru_cache_add(struct page *page) + { +- struct pagevec *pvec = &get_cpu_var(lru_add_pvec); ++ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec); + + get_page(page); + if (!pagevec_add(pvec, page) || PageCompound(page)) + __pagevec_lru_add(pvec); +- put_cpu_var(lru_add_pvec); ++ put_locked_var(swapvec_lock, lru_add_pvec); + } + + /** +@@ -593,9 +597,9 @@ void lru_add_drain_cpu(int cpu) + unsigned long flags; + + /* No harm done if a racing interrupt already did this */ +- local_irq_save(flags); ++ local_lock_irqsave(rotate_lock, flags); + pagevec_move_tail(pvec); +- local_irq_restore(flags); ++ local_unlock_irqrestore(rotate_lock, flags); + } + + pvec = &per_cpu(lru_deactivate_file_pvecs, cpu); +@@ -627,11 +631,12 @@ void deactivate_file_page(struct page *p + return; + + if (likely(get_page_unless_zero(page))) { +- struct pagevec *pvec = &get_cpu_var(lru_deactivate_file_pvecs); ++ struct pagevec *pvec = &get_locked_var(swapvec_lock, ++ lru_deactivate_file_pvecs); + + if (!pagevec_add(pvec, page) || PageCompound(page)) + pagevec_lru_move_fn(pvec, lru_deactivate_file_fn, NULL); +- put_cpu_var(lru_deactivate_file_pvecs); ++ put_locked_var(swapvec_lock, lru_deactivate_file_pvecs); + } + } + +@@ -646,19 +651,20 @@ void deactivate_file_page(struct page *p + void deactivate_page(struct page *page) + { + if (PageLRU(page) && PageActive(page) && !PageUnevictable(page)) { +- struct pagevec *pvec = &get_cpu_var(lru_deactivate_pvecs); ++ struct pagevec *pvec = &get_locked_var(swapvec_lock, ++ lru_deactivate_pvecs); + + get_page(page); + if (!pagevec_add(pvec, page) || PageCompound(page)) + pagevec_lru_move_fn(pvec, lru_deactivate_fn, NULL); +- put_cpu_var(lru_deactivate_pvecs); ++ put_locked_var(swapvec_lock, lru_deactivate_pvecs); + } + } + + void lru_add_drain(void) + { +- lru_add_drain_cpu(get_cpu()); +- put_cpu(); ++ lru_add_drain_cpu(local_lock_cpu(swapvec_lock)); ++ local_unlock_cpu(swapvec_lock); + } + + static void lru_add_drain_per_cpu(struct work_struct *dummy) diff --git a/patches/features/all/rt/mm-disable-sloub-rt.patch b/patches/features/all/rt/mm-disable-sloub-rt.patch new file mode 100644 index 00000000000..2ff11c13a7a --- /dev/null +++ b/patches/features/all/rt/mm-disable-sloub-rt.patch @@ -0,0 +1,32 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:44:03 -0500 +Subject: mm: Allow only slub on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + init/Kconfig | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1759,6 +1759,7 @@ choice + + config SLAB + bool "SLAB" ++ depends on !PREEMPT_RT_FULL + select HAVE_HARDENED_USERCOPY_ALLOCATOR + help + The regular slab allocator that is established and known to work +@@ -1779,6 +1780,7 @@ config SLUB + config SLOB + depends on EXPERT + bool "SLOB (Simple Allocator)" ++ depends on !PREEMPT_RT_FULL + help + SLOB replaces the stock allocator with a drastically simpler + allocator. SLOB is generally more space efficient but diff --git a/patches/features/all/rt/mm-enable-slub.patch b/patches/features/all/rt/mm-enable-slub.patch new file mode 100644 index 00000000000..1711fbb5fb6 --- /dev/null +++ b/patches/features/all/rt/mm-enable-slub.patch @@ -0,0 +1,465 @@ +Subject: mm: Enable SLUB for RT +From: Thomas Gleixner +Date: Thu, 25 Oct 2012 10:32:35 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Make SLUB RT aware by converting locks to raw and using free lists to +move the freeing out of the lock held region. + +Signed-off-by: Thomas Gleixner +--- + mm/slab.h | 4 + + mm/slub.c | 134 ++++++++++++++++++++++++++++++++++++++++++++++++-------------- + 2 files changed, 109 insertions(+), 29 deletions(-) + +--- a/mm/slab.h ++++ b/mm/slab.h +@@ -426,7 +426,11 @@ static inline void slab_post_alloc_hook( + * The slab lists for all objects. + */ + struct kmem_cache_node { ++#ifdef CONFIG_SLUB ++ raw_spinlock_t list_lock; ++#else + spinlock_t list_lock; ++#endif + + #ifdef CONFIG_SLAB + struct list_head slabs_partial; /* partial list first, better asm code */ +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -1141,7 +1141,7 @@ static noinline int free_debug_processin + unsigned long uninitialized_var(flags); + int ret = 0; + +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + slab_lock(page); + + if (s->flags & SLAB_CONSISTENCY_CHECKS) { +@@ -1176,7 +1176,7 @@ static noinline int free_debug_processin + bulk_cnt, cnt); + + slab_unlock(page); +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + if (!ret) + slab_fix(s, "Object at 0x%p not freed", object); + return ret; +@@ -1304,6 +1304,12 @@ static inline void dec_slabs_node(struct + + #endif /* CONFIG_SLUB_DEBUG */ + ++struct slub_free_list { ++ raw_spinlock_t lock; ++ struct list_head list; ++}; ++static DEFINE_PER_CPU(struct slub_free_list, slub_free_list); ++ + /* + * Hooks for other subsystems that check memory allocations. In a typical + * production configuration these hooks all should produce no code at all. +@@ -1526,7 +1532,11 @@ static struct page *allocate_slab(struct + + flags &= gfp_allowed_mask; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (system_state == SYSTEM_RUNNING) ++#else + if (gfpflags_allow_blocking(flags)) ++#endif + local_irq_enable(); + + flags |= s->allocflags; +@@ -1601,7 +1611,11 @@ static struct page *allocate_slab(struct + page->frozen = 1; + + out: ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (system_state == SYSTEM_RUNNING) ++#else + if (gfpflags_allow_blocking(flags)) ++#endif + local_irq_disable(); + if (!page) + return NULL; +@@ -1660,6 +1674,16 @@ static void __free_slab(struct kmem_cach + __free_pages(page, order); + } + ++static void free_delayed(struct list_head *h) ++{ ++ while(!list_empty(h)) { ++ struct page *page = list_first_entry(h, struct page, lru); ++ ++ list_del(&page->lru); ++ __free_slab(page->slab_cache, page); ++ } ++} ++ + #define need_reserve_slab_rcu \ + (sizeof(((struct page *)NULL)->lru) < sizeof(struct rcu_head)) + +@@ -1691,6 +1715,12 @@ static void free_slab(struct kmem_cache + } + + call_rcu(head, rcu_free_slab); ++ } else if (irqs_disabled()) { ++ struct slub_free_list *f = this_cpu_ptr(&slub_free_list); ++ ++ raw_spin_lock(&f->lock); ++ list_add(&page->lru, &f->list); ++ raw_spin_unlock(&f->lock); + } else + __free_slab(s, page); + } +@@ -1798,7 +1828,7 @@ static void *get_partial_node(struct kme + if (!n || !n->nr_partial) + return NULL; + +- spin_lock(&n->list_lock); ++ raw_spin_lock(&n->list_lock); + list_for_each_entry_safe(page, page2, &n->partial, lru) { + void *t; + +@@ -1823,7 +1853,7 @@ static void *get_partial_node(struct kme + break; + + } +- spin_unlock(&n->list_lock); ++ raw_spin_unlock(&n->list_lock); + return object; + } + +@@ -2069,7 +2099,7 @@ static void deactivate_slab(struct kmem_ + * that acquire_slab() will see a slab page that + * is frozen + */ +- spin_lock(&n->list_lock); ++ raw_spin_lock(&n->list_lock); + } + } else { + m = M_FULL; +@@ -2080,7 +2110,7 @@ static void deactivate_slab(struct kmem_ + * slabs from diagnostic functions will not see + * any frozen slabs. + */ +- spin_lock(&n->list_lock); ++ raw_spin_lock(&n->list_lock); + } + } + +@@ -2115,7 +2145,7 @@ static void deactivate_slab(struct kmem_ + goto redo; + + if (lock) +- spin_unlock(&n->list_lock); ++ raw_spin_unlock(&n->list_lock); + + if (m == M_FREE) { + stat(s, DEACTIVATE_EMPTY); +@@ -2147,10 +2177,10 @@ static void unfreeze_partials(struct kme + n2 = get_node(s, page_to_nid(page)); + if (n != n2) { + if (n) +- spin_unlock(&n->list_lock); ++ raw_spin_unlock(&n->list_lock); + + n = n2; +- spin_lock(&n->list_lock); ++ raw_spin_lock(&n->list_lock); + } + + do { +@@ -2179,7 +2209,7 @@ static void unfreeze_partials(struct kme + } + + if (n) +- spin_unlock(&n->list_lock); ++ raw_spin_unlock(&n->list_lock); + + while (discard_page) { + page = discard_page; +@@ -2218,14 +2248,21 @@ static void put_cpu_partial(struct kmem_ + pobjects = oldpage->pobjects; + pages = oldpage->pages; + if (drain && pobjects > s->cpu_partial) { ++ struct slub_free_list *f; + unsigned long flags; ++ LIST_HEAD(tofree); + /* + * partial array is full. Move the existing + * set to the per node partial list. + */ + local_irq_save(flags); + unfreeze_partials(s, this_cpu_ptr(s->cpu_slab)); ++ f = this_cpu_ptr(&slub_free_list); ++ raw_spin_lock(&f->lock); ++ list_splice_init(&f->list, &tofree); ++ raw_spin_unlock(&f->lock); + local_irq_restore(flags); ++ free_delayed(&tofree); + oldpage = NULL; + pobjects = 0; + pages = 0; +@@ -2297,7 +2334,22 @@ static bool has_cpu_slab(int cpu, void * + + static void flush_all(struct kmem_cache *s) + { ++ LIST_HEAD(tofree); ++ int cpu; ++ + on_each_cpu_cond(has_cpu_slab, flush_cpu_slab, s, 1, GFP_ATOMIC); ++ for_each_online_cpu(cpu) { ++ struct slub_free_list *f; ++ ++ if (!has_cpu_slab(cpu, s)) ++ continue; ++ ++ f = &per_cpu(slub_free_list, cpu); ++ raw_spin_lock_irq(&f->lock); ++ list_splice_init(&f->list, &tofree); ++ raw_spin_unlock_irq(&f->lock); ++ free_delayed(&tofree); ++ } + } + + /* +@@ -2352,10 +2404,10 @@ static unsigned long count_partial(struc + unsigned long x = 0; + struct page *page; + +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + list_for_each_entry(page, &n->partial, lru) + x += get_count(page); +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + return x; + } + #endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */ +@@ -2493,8 +2545,10 @@ static inline void *get_freelist(struct + * already disabled (which is the case for bulk allocation). + */ + static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, +- unsigned long addr, struct kmem_cache_cpu *c) ++ unsigned long addr, struct kmem_cache_cpu *c, ++ struct list_head *to_free) + { ++ struct slub_free_list *f; + void *freelist; + struct page *page; + +@@ -2554,6 +2608,13 @@ static void *___slab_alloc(struct kmem_c + VM_BUG_ON(!c->page->frozen); + c->freelist = get_freepointer(s, freelist); + c->tid = next_tid(c->tid); ++ ++out: ++ f = this_cpu_ptr(&slub_free_list); ++ raw_spin_lock(&f->lock); ++ list_splice_init(&f->list, to_free); ++ raw_spin_unlock(&f->lock); ++ + return freelist; + + new_slab: +@@ -2585,7 +2646,7 @@ static void *___slab_alloc(struct kmem_c + deactivate_slab(s, page, get_freepointer(s, freelist)); + c->page = NULL; + c->freelist = NULL; +- return freelist; ++ goto out; + } + + /* +@@ -2597,6 +2658,7 @@ static void *__slab_alloc(struct kmem_ca + { + void *p; + unsigned long flags; ++ LIST_HEAD(tofree); + + local_irq_save(flags); + #ifdef CONFIG_PREEMPT +@@ -2608,8 +2670,9 @@ static void *__slab_alloc(struct kmem_ca + c = this_cpu_ptr(s->cpu_slab); + #endif + +- p = ___slab_alloc(s, gfpflags, node, addr, c); ++ p = ___slab_alloc(s, gfpflags, node, addr, c, &tofree); + local_irq_restore(flags); ++ free_delayed(&tofree); + return p; + } + +@@ -2795,7 +2858,7 @@ static void __slab_free(struct kmem_cach + + do { + if (unlikely(n)) { +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + n = NULL; + } + prior = page->freelist; +@@ -2827,7 +2890,7 @@ static void __slab_free(struct kmem_cach + * Otherwise the list_lock will synchronize with + * other processors updating the list of slabs. + */ +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + + } + } +@@ -2869,7 +2932,7 @@ static void __slab_free(struct kmem_cach + add_partial(n, page, DEACTIVATE_TO_TAIL); + stat(s, FREE_ADD_PARTIAL); + } +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + return; + + slab_empty: +@@ -2884,7 +2947,7 @@ static void __slab_free(struct kmem_cach + remove_full(s, n, page); + } + +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + stat(s, FREE_SLAB); + discard_slab(s, page); + } +@@ -3089,6 +3152,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca + void **p) + { + struct kmem_cache_cpu *c; ++ LIST_HEAD(to_free); + int i; + + /* memcg and kmem_cache debug support */ +@@ -3112,7 +3176,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca + * of re-populating per CPU c->freelist + */ + p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE, +- _RET_IP_, c); ++ _RET_IP_, c, &to_free); + if (unlikely(!p[i])) + goto error; + +@@ -3124,6 +3188,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca + } + c->tid = next_tid(c->tid); + local_irq_enable(); ++ free_delayed(&to_free); + + /* Clear memory outside IRQ disabled fastpath loop */ + if (unlikely(flags & __GFP_ZERO)) { +@@ -3271,7 +3336,7 @@ static void + init_kmem_cache_node(struct kmem_cache_node *n) + { + n->nr_partial = 0; +- spin_lock_init(&n->list_lock); ++ raw_spin_lock_init(&n->list_lock); + INIT_LIST_HEAD(&n->partial); + #ifdef CONFIG_SLUB_DEBUG + atomic_long_set(&n->nr_slabs, 0); +@@ -3615,6 +3680,10 @@ static void list_slab_objects(struct kme + const char *text) + { + #ifdef CONFIG_SLUB_DEBUG ++#ifdef CONFIG_PREEMPT_RT_BASE ++ /* XXX move out of irq-off section */ ++ slab_err(s, page, text, s->name); ++#else + void *addr = page_address(page); + void *p; + unsigned long *map = kzalloc(BITS_TO_LONGS(page->objects) * +@@ -3635,6 +3704,7 @@ static void list_slab_objects(struct kme + slab_unlock(page); + kfree(map); + #endif ++#endif + } + + /* +@@ -3648,7 +3718,7 @@ static void free_partial(struct kmem_cac + struct page *page, *h; + + BUG_ON(irqs_disabled()); +- spin_lock_irq(&n->list_lock); ++ raw_spin_lock_irq(&n->list_lock); + list_for_each_entry_safe(page, h, &n->partial, lru) { + if (!page->inuse) { + remove_partial(n, page); +@@ -3658,7 +3728,7 @@ static void free_partial(struct kmem_cac + "Objects remaining in %s on __kmem_cache_shutdown()"); + } + } +- spin_unlock_irq(&n->list_lock); ++ raw_spin_unlock_irq(&n->list_lock); + + list_for_each_entry_safe(page, h, &discard, lru) + discard_slab(s, page); +@@ -3916,7 +3986,7 @@ int __kmem_cache_shrink(struct kmem_cach + for (i = 0; i < SHRINK_PROMOTE_MAX; i++) + INIT_LIST_HEAD(promote + i); + +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + + /* + * Build lists of slabs to discard or promote. +@@ -3947,7 +4017,7 @@ int __kmem_cache_shrink(struct kmem_cach + for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--) + list_splice(promote + i, &n->partial); + +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + + /* Release empty slabs */ + list_for_each_entry_safe(page, t, &discard, lru) +@@ -4123,6 +4193,12 @@ void __init kmem_cache_init(void) + { + static __initdata struct kmem_cache boot_kmem_cache, + boot_kmem_cache_node; ++ int cpu; ++ ++ for_each_possible_cpu(cpu) { ++ raw_spin_lock_init(&per_cpu(slub_free_list, cpu).lock); ++ INIT_LIST_HEAD(&per_cpu(slub_free_list, cpu).list); ++ } + + if (debug_guardpage_minorder()) + slub_max_order = 0; +@@ -4331,7 +4407,7 @@ static int validate_slab_node(struct kme + struct page *page; + unsigned long flags; + +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + + list_for_each_entry(page, &n->partial, lru) { + validate_slab_slab(s, page, map); +@@ -4353,7 +4429,7 @@ static int validate_slab_node(struct kme + s->name, count, atomic_long_read(&n->nr_slabs)); + + out: +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + return count; + } + +@@ -4541,12 +4617,12 @@ static int list_locations(struct kmem_ca + if (!atomic_long_read(&n->nr_slabs)) + continue; + +- spin_lock_irqsave(&n->list_lock, flags); ++ raw_spin_lock_irqsave(&n->list_lock, flags); + list_for_each_entry(page, &n->partial, lru) + process_slab(&t, s, page, alloc, map); + list_for_each_entry(page, &n->full, lru) + process_slab(&t, s, page, alloc, map); +- spin_unlock_irqrestore(&n->list_lock, flags); ++ raw_spin_unlock_irqrestore(&n->list_lock, flags); + } + + for (i = 0; i < t.count; i++) { diff --git a/patches/features/all/rt/mm-make-vmstat-rt-aware.patch b/patches/features/all/rt/mm-make-vmstat-rt-aware.patch new file mode 100644 index 00000000000..39bcf87ac78 --- /dev/null +++ b/patches/features/all/rt/mm-make-vmstat-rt-aware.patch @@ -0,0 +1,137 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:30:13 -0500 +Subject: mm/vmstat: Protect per cpu variables with preempt disable on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable preemption on -RT for the vmstat code. On vanila the code runs in +IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the +same ressources is not updated in parallel due to preemption. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + include/linux/vmstat.h | 4 ++++ + mm/vmstat.c | 12 ++++++++++++ + 2 files changed, 16 insertions(+) + +--- a/include/linux/vmstat.h ++++ b/include/linux/vmstat.h +@@ -33,7 +33,9 @@ DECLARE_PER_CPU(struct vm_event_state, v + */ + static inline void __count_vm_event(enum vm_event_item item) + { ++ preempt_disable_rt(); + raw_cpu_inc(vm_event_states.event[item]); ++ preempt_enable_rt(); + } + + static inline void count_vm_event(enum vm_event_item item) +@@ -43,7 +45,9 @@ static inline void count_vm_event(enum v + + static inline void __count_vm_events(enum vm_event_item item, long delta) + { ++ preempt_disable_rt(); + raw_cpu_add(vm_event_states.event[item], delta); ++ preempt_enable_rt(); + } + + static inline void count_vm_events(enum vm_event_item item, long delta) +--- a/mm/vmstat.c ++++ b/mm/vmstat.c +@@ -245,6 +245,7 @@ void __mod_zone_page_state(struct zone * + long x; + long t; + ++ preempt_disable_rt(); + x = delta + __this_cpu_read(*p); + + t = __this_cpu_read(pcp->stat_threshold); +@@ -254,6 +255,7 @@ void __mod_zone_page_state(struct zone * + x = 0; + } + __this_cpu_write(*p, x); ++ preempt_enable_rt(); + } + EXPORT_SYMBOL(__mod_zone_page_state); + +@@ -265,6 +267,7 @@ void __mod_node_page_state(struct pglist + long x; + long t; + ++ preempt_disable_rt(); + x = delta + __this_cpu_read(*p); + + t = __this_cpu_read(pcp->stat_threshold); +@@ -274,6 +277,7 @@ void __mod_node_page_state(struct pglist + x = 0; + } + __this_cpu_write(*p, x); ++ preempt_enable_rt(); + } + EXPORT_SYMBOL(__mod_node_page_state); + +@@ -306,6 +310,7 @@ void __inc_zone_state(struct zone *zone, + s8 __percpu *p = pcp->vm_stat_diff + item; + s8 v, t; + ++ preempt_disable_rt(); + v = __this_cpu_inc_return(*p); + t = __this_cpu_read(pcp->stat_threshold); + if (unlikely(v > t)) { +@@ -314,6 +319,7 @@ void __inc_zone_state(struct zone *zone, + zone_page_state_add(v + overstep, zone, item); + __this_cpu_write(*p, -overstep); + } ++ preempt_enable_rt(); + } + + void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item) +@@ -322,6 +328,7 @@ void __inc_node_state(struct pglist_data + s8 __percpu *p = pcp->vm_node_stat_diff + item; + s8 v, t; + ++ preempt_disable_rt(); + v = __this_cpu_inc_return(*p); + t = __this_cpu_read(pcp->stat_threshold); + if (unlikely(v > t)) { +@@ -330,6 +337,7 @@ void __inc_node_state(struct pglist_data + node_page_state_add(v + overstep, pgdat, item); + __this_cpu_write(*p, -overstep); + } ++ preempt_enable_rt(); + } + + void __inc_zone_page_state(struct page *page, enum zone_stat_item item) +@@ -350,6 +358,7 @@ void __dec_zone_state(struct zone *zone, + s8 __percpu *p = pcp->vm_stat_diff + item; + s8 v, t; + ++ preempt_disable_rt(); + v = __this_cpu_dec_return(*p); + t = __this_cpu_read(pcp->stat_threshold); + if (unlikely(v < - t)) { +@@ -358,6 +367,7 @@ void __dec_zone_state(struct zone *zone, + zone_page_state_add(v - overstep, zone, item); + __this_cpu_write(*p, overstep); + } ++ preempt_enable_rt(); + } + + void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item) +@@ -366,6 +376,7 @@ void __dec_node_state(struct pglist_data + s8 __percpu *p = pcp->vm_node_stat_diff + item; + s8 v, t; + ++ preempt_disable_rt(); + v = __this_cpu_dec_return(*p); + t = __this_cpu_read(pcp->stat_threshold); + if (unlikely(v < - t)) { +@@ -374,6 +385,7 @@ void __dec_node_state(struct pglist_data + node_page_state_add(v - overstep, pgdat, item); + __this_cpu_write(*p, overstep); + } ++ preempt_enable_rt(); + } + + void __dec_zone_page_state(struct page *page, enum zone_stat_item item) diff --git a/patches/features/all/rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/patches/features/all/rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch new file mode 100644 index 00000000000..ea8516c2f1b --- /dev/null +++ b/patches/features/all/rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -0,0 +1,69 @@ +From: Yang Shi +Subject: mm/memcontrol: Don't call schedule_work_on in preemption disabled context +Date: Wed, 30 Oct 2013 11:48:33 -0700 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The following trace is triggered when running ltp oom test cases: + +BUG: sleeping function called from invalid context at kernel/rtmutex.c:659 +in_atomic(): 1, irqs_disabled(): 0, pid: 17188, name: oom03 +Preemption disabled at:[] mem_cgroup_reclaim+0x90/0xe0 + +CPU: 2 PID: 17188 Comm: oom03 Not tainted 3.10.10-rt3 #2 +Hardware name: Intel Corporation Calpella platform/MATXM-CORE-411-B, BIOS 4.6.3 08/18/2010 +ffff88007684d730 ffff880070df9b58 ffffffff8169918d ffff880070df9b70 +ffffffff8106db31 ffff88007688b4a0 ffff880070df9b88 ffffffff8169d9c0 +ffff88007688b4a0 ffff880070df9bc8 ffffffff81059da1 0000000170df9bb0 +Call Trace: +[] dump_stack+0x19/0x1b +[] __might_sleep+0xf1/0x170 +[] rt_spin_lock+0x20/0x50 +[] queue_work_on+0x61/0x100 +[] drain_all_stock+0xe1/0x1c0 +[] mem_cgroup_reclaim+0x90/0xe0 +[] __mem_cgroup_try_charge+0x41a/0xc40 +[] ? release_pages+0x1b1/0x1f0 +[] ? sched_exec+0x40/0xb0 +[] mem_cgroup_charge_common+0x37/0x70 +[] mem_cgroup_newpage_charge+0x26/0x30 +[] handle_pte_fault+0x618/0x840 +[] ? unpin_current_cpu+0x16/0x70 +[] ? migrate_enable+0xd4/0x200 +[] handle_mm_fault+0x145/0x1e0 +[] __do_page_fault+0x1a1/0x4c0 +[] ? preempt_schedule_irq+0x4b/0x70 +[] ? retint_kernel+0x37/0x40 +[] do_page_fault+0xe/0x10 +[] page_fault+0x22/0x30 + +So, to prevent schedule_work_on from being called in preempt disabled context, +replace the pair of get/put_cpu() to get/put_cpu_light(). + + +Signed-off-by: Yang Shi +Signed-off-by: Sebastian Andrzej Siewior +--- + + mm/memcontrol.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -1794,7 +1794,7 @@ static void drain_all_stock(struct mem_c + return; + /* Notify other cpus that system-wide "drain" is running */ + get_online_cpus(); +- curcpu = get_cpu(); ++ curcpu = get_cpu_light(); + for_each_online_cpu(cpu) { + struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu); + struct mem_cgroup *memcg; +@@ -1811,7 +1811,7 @@ static void drain_all_stock(struct mem_c + schedule_work_on(cpu, &stock->work); + } + } +- put_cpu(); ++ put_cpu_light(); + put_online_cpus(); + mutex_unlock(&percpu_charge_mutex); + } diff --git a/patches/features/all/rt/mm-memcontrol-do_not_disable_irq.patch b/patches/features/all/rt/mm-memcontrol-do_not_disable_irq.patch new file mode 100644 index 00000000000..3e69703666d --- /dev/null +++ b/patches/features/all/rt/mm-memcontrol-do_not_disable_irq.patch @@ -0,0 +1,102 @@ +From: Sebastian Andrzej Siewior +Subject: mm/memcontrol: Replace local_irq_disable with local locks +Date: Wed, 28 Jan 2015 17:14:16 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There are a few local_irq_disable() which then take sleeping locks. This +patch converts them local locks. + +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/memcontrol.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -67,6 +67,7 @@ + #include + #include + #include "slab.h" ++#include + + #include + +@@ -92,6 +93,8 @@ int do_swap_account __read_mostly; + #define do_swap_account 0 + #endif + ++static DEFINE_LOCAL_IRQ_LOCK(event_lock); ++ + /* Whether legacy memory+swap accounting is active */ + static bool do_memsw_account(void) + { +@@ -4550,12 +4553,12 @@ static int mem_cgroup_move_account(struc + + ret = 0; + +- local_irq_disable(); ++ local_lock_irq(event_lock); + mem_cgroup_charge_statistics(to, page, compound, nr_pages); + memcg_check_events(to, page); + mem_cgroup_charge_statistics(from, page, compound, -nr_pages); + memcg_check_events(from, page); +- local_irq_enable(); ++ local_unlock_irq(event_lock); + out_unlock: + unlock_page(page); + out: +@@ -5430,10 +5433,10 @@ void mem_cgroup_commit_charge(struct pag + + commit_charge(page, memcg, lrucare); + +- local_irq_disable(); ++ local_lock_irq(event_lock); + mem_cgroup_charge_statistics(memcg, page, compound, nr_pages); + memcg_check_events(memcg, page); +- local_irq_enable(); ++ local_unlock_irq(event_lock); + + if (do_memsw_account() && PageSwapCache(page)) { + swp_entry_t entry = { .val = page_private(page) }; +@@ -5489,14 +5492,14 @@ static void uncharge_batch(struct mem_cg + memcg_oom_recover(memcg); + } + +- local_irq_save(flags); ++ local_lock_irqsave(event_lock, flags); + __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS], nr_anon); + __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_CACHE], nr_file); + __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS_HUGE], nr_huge); + __this_cpu_add(memcg->stat->events[MEM_CGROUP_EVENTS_PGPGOUT], pgpgout); + __this_cpu_add(memcg->stat->nr_page_events, nr_pages); + memcg_check_events(memcg, dummy_page); +- local_irq_restore(flags); ++ local_unlock_irqrestore(event_lock, flags); + + if (!mem_cgroup_is_root(memcg)) + css_put_many(&memcg->css, nr_pages); +@@ -5834,6 +5837,7 @@ void mem_cgroup_swapout(struct page *pag + { + struct mem_cgroup *memcg, *swap_memcg; + unsigned short oldid; ++ unsigned long flags; + + VM_BUG_ON_PAGE(PageLRU(page), page); + VM_BUG_ON_PAGE(page_count(page), page); +@@ -5874,12 +5878,16 @@ void mem_cgroup_swapout(struct page *pag + * important here to have the interrupts disabled because it is the + * only synchronisation we have for udpating the per-CPU variables. + */ ++ local_lock_irqsave(event_lock, flags); ++#ifndef CONFIG_PREEMPT_RT_BASE + VM_BUG_ON(!irqs_disabled()); ++#endif + mem_cgroup_charge_statistics(memcg, page, false, -1); + memcg_check_events(memcg, page); + + if (!mem_cgroup_is_root(memcg)) + css_put(&memcg->css); ++ local_unlock_irqrestore(event_lock, flags); + } + + /* diff --git a/patches/features/all/rt/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch b/patches/features/all/rt/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch new file mode 100644 index 00000000000..2ada34c5a12 --- /dev/null +++ b/patches/features/all/rt/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch @@ -0,0 +1,30 @@ +From: Mike Galbraith +Date: Sun, 5 Jun 2016 08:11:13 +0200 +Subject: [PATCH] mm/memcontrol: mem_cgroup_migrate() - replace another + local_irq_disable() w. local_lock_irq() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +v4.6 grew a local_irq_disable() in mm/memcontrol.c::mem_cgroup_migrate(). +Convert it to use the existing local lock (event_lock) like the others. + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/memcontrol.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -5654,10 +5654,10 @@ void mem_cgroup_migrate(struct page *old + + commit_charge(newpage, memcg, false); + +- local_irq_save(flags); ++ local_lock_irqsave(event_lock, flags); + mem_cgroup_charge_statistics(memcg, newpage, compound, nr_pages); + memcg_check_events(memcg, newpage); +- local_irq_restore(flags); ++ local_unlock_irqrestore(event_lock, flags); + } + + DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); diff --git a/patches/features/all/rt/mm-page-alloc-use-local-lock-on-target-cpu.patch b/patches/features/all/rt/mm-page-alloc-use-local-lock-on-target-cpu.patch new file mode 100644 index 00000000000..2a48235e1b5 --- /dev/null +++ b/patches/features/all/rt/mm-page-alloc-use-local-lock-on-target-cpu.patch @@ -0,0 +1,28 @@ +Subject: mm: page_alloc: Use local_lock_on() instead of plain spinlock +From: Thomas Gleixner +Date: Thu, 27 Sep 2012 11:11:46 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The plain spinlock while sufficient does not update the local_lock +internals. Use a proper local_lock function instead to ease debugging. + +Signed-off-by: Thomas Gleixner + +--- + mm/page_alloc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -286,9 +286,9 @@ static DEFINE_LOCAL_IRQ_LOCK(pa_lock); + + #ifdef CONFIG_PREEMPT_RT_BASE + # define cpu_lock_irqsave(cpu, flags) \ +- spin_lock_irqsave(&per_cpu(pa_lock, cpu).lock, flags) ++ local_lock_irqsave_on(pa_lock, flags, cpu) + # define cpu_unlock_irqrestore(cpu, flags) \ +- spin_unlock_irqrestore(&per_cpu(pa_lock, cpu).lock, flags) ++ local_unlock_irqrestore_on(pa_lock, flags, cpu) + #else + # define cpu_lock_irqsave(cpu, flags) local_irq_save(flags) + # define cpu_unlock_irqrestore(cpu, flags) local_irq_restore(flags) diff --git a/patches/features/all/rt/mm-page_alloc-reduce-lock-sections-further.patch b/patches/features/all/rt/mm-page_alloc-reduce-lock-sections-further.patch new file mode 100644 index 00000000000..9d9e6babc6b --- /dev/null +++ b/patches/features/all/rt/mm-page_alloc-reduce-lock-sections-further.patch @@ -0,0 +1,205 @@ +From: Peter Zijlstra +Date: Fri Jul 3 08:44:37 2009 -0500 +Subject: mm: page_alloc: Reduce lock sections further +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Split out the pages which are to be freed into a separate list and +call free_pages_bulk() outside of the percpu page allocator locks. + +Signed-off-by: Peter Zijlstra +Signed-off-by: Thomas Gleixner +--- + mm/page_alloc.c | 94 +++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 66 insertions(+), 28 deletions(-) + +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -1085,7 +1085,7 @@ static bool bulkfree_pcp_prepare(struct + #endif /* CONFIG_DEBUG_VM */ + + /* +- * Frees a number of pages from the PCP lists ++ * Frees a number of pages which have been collected from the pcp lists. + * Assumes all pages on list are in same zone, and of same order. + * count is the number of pages to free. + * +@@ -1096,19 +1096,58 @@ static bool bulkfree_pcp_prepare(struct + * pinned" detection logic. + */ + static void free_pcppages_bulk(struct zone *zone, int count, +- struct per_cpu_pages *pcp) ++ struct list_head *list) + { +- int migratetype = 0; +- int batch_free = 0; + unsigned long nr_scanned; + bool isolated_pageblocks; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&zone->lock, flags); + +- spin_lock(&zone->lock); + isolated_pageblocks = has_isolate_pageblock(zone); + nr_scanned = node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED); + if (nr_scanned) + __mod_node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED, -nr_scanned); + ++ while (!list_empty(list)) { ++ struct page *page; ++ int mt; /* migratetype of the to-be-freed page */ ++ ++ page = list_first_entry(list, struct page, lru); ++ /* must delete as __free_one_page list manipulates */ ++ list_del(&page->lru); ++ ++ mt = get_pcppage_migratetype(page); ++ /* MIGRATE_ISOLATE page should not go to pcplists */ ++ VM_BUG_ON_PAGE(is_migrate_isolate(mt), page); ++ /* Pageblock could have been isolated meanwhile */ ++ if (unlikely(isolated_pageblocks)) ++ mt = get_pageblock_migratetype(page); ++ ++ if (bulkfree_pcp_prepare(page)) ++ continue; ++ ++ __free_one_page(page, page_to_pfn(page), zone, 0, mt); ++ trace_mm_page_pcpu_drain(page, 0, mt); ++ count--; ++ } ++ WARN_ON(count != 0); ++ spin_unlock_irqrestore(&zone->lock, flags); ++} ++ ++/* ++ * Moves a number of pages from the PCP lists to free list which ++ * is freed outside of the locked region. ++ * ++ * Assumes all pages on list are in same zone, and of same order. ++ * count is the number of pages to free. ++ */ ++static void isolate_pcp_pages(int count, struct per_cpu_pages *src, ++ struct list_head *dst) ++{ ++ int migratetype = 0; ++ int batch_free = 0; ++ + while (count) { + struct page *page; + struct list_head *list; +@@ -1124,7 +1163,7 @@ static void free_pcppages_bulk(struct zo + batch_free++; + if (++migratetype == MIGRATE_PCPTYPES) + migratetype = 0; +- list = &pcp->lists[migratetype]; ++ list = &src->lists[migratetype]; + } while (list_empty(list)); + + /* This is the only non-empty list. Free them all. */ +@@ -1132,27 +1171,12 @@ static void free_pcppages_bulk(struct zo + batch_free = count; + + do { +- int mt; /* migratetype of the to-be-freed page */ +- + page = list_last_entry(list, struct page, lru); +- /* must delete as __free_one_page list manipulates */ + list_del(&page->lru); + +- mt = get_pcppage_migratetype(page); +- /* MIGRATE_ISOLATE page should not go to pcplists */ +- VM_BUG_ON_PAGE(is_migrate_isolate(mt), page); +- /* Pageblock could have been isolated meanwhile */ +- if (unlikely(isolated_pageblocks)) +- mt = get_pageblock_migratetype(page); +- +- if (bulkfree_pcp_prepare(page)) +- continue; +- +- __free_one_page(page, page_to_pfn(page), zone, 0, mt); +- trace_mm_page_pcpu_drain(page, 0, mt); ++ list_add(&page->lru, dst); + } while (--count && --batch_free && !list_empty(list)); + } +- spin_unlock(&zone->lock); + } + + static void free_one_page(struct zone *zone, +@@ -1161,7 +1185,9 @@ static void free_one_page(struct zone *z + int migratetype) + { + unsigned long nr_scanned; +- spin_lock(&zone->lock); ++ unsigned long flags; ++ ++ spin_lock_irqsave(&zone->lock, flags); + nr_scanned = node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED); + if (nr_scanned) + __mod_node_page_state(zone->zone_pgdat, NR_PAGES_SCANNED, -nr_scanned); +@@ -1171,7 +1197,7 @@ static void free_one_page(struct zone *z + migratetype = get_pfnblock_migratetype(page, pfn); + } + __free_one_page(page, pfn, zone, order, migratetype); +- spin_unlock(&zone->lock); ++ spin_unlock_irqrestore(&zone->lock, flags); + } + + static void __meminit __init_single_page(struct page *page, unsigned long pfn, +@@ -2251,16 +2277,18 @@ static int rmqueue_bulk(struct zone *zon + void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp) + { + unsigned long flags; ++ LIST_HEAD(dst); + int to_drain, batch; + + local_lock_irqsave(pa_lock, flags); + batch = READ_ONCE(pcp->batch); + to_drain = min(pcp->count, batch); + if (to_drain > 0) { +- free_pcppages_bulk(zone, to_drain, pcp); ++ isolate_pcp_pages(to_drain, pcp, &dst); + pcp->count -= to_drain; + } + local_unlock_irqrestore(pa_lock, flags); ++ free_pcppages_bulk(zone, to_drain, &dst); + } + #endif + +@@ -2276,16 +2304,21 @@ static void drain_pages_zone(unsigned in + unsigned long flags; + struct per_cpu_pageset *pset; + struct per_cpu_pages *pcp; ++ LIST_HEAD(dst); ++ int count; + + cpu_lock_irqsave(cpu, flags); + pset = per_cpu_ptr(zone->pageset, cpu); + + pcp = &pset->pcp; +- if (pcp->count) { +- free_pcppages_bulk(zone, pcp->count, pcp); ++ count = pcp->count; ++ if (count) { ++ isolate_pcp_pages(count, pcp, &dst); + pcp->count = 0; + } + cpu_unlock_irqrestore(cpu, flags); ++ if (count) ++ free_pcppages_bulk(zone, count, &dst); + } + + /* +@@ -2467,8 +2500,13 @@ void free_hot_cold_page(struct page *pag + pcp->count++; + if (pcp->count >= pcp->high) { + unsigned long batch = READ_ONCE(pcp->batch); +- free_pcppages_bulk(zone, batch, pcp); ++ LIST_HEAD(dst); ++ ++ isolate_pcp_pages(batch, pcp, &dst); + pcp->count -= batch; ++ local_unlock_irqrestore(pa_lock, flags); ++ free_pcppages_bulk(zone, batch, &dst); ++ return; + } + + out: diff --git a/patches/features/all/rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch b/patches/features/all/rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch new file mode 100644 index 00000000000..34ae6fbb83e --- /dev/null +++ b/patches/features/all/rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -0,0 +1,204 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:37 -0500 +Subject: mm: page_alloc: rt-friendly per-cpu pages +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +rt-friendly per-cpu pages: convert the irqs-off per-cpu locking +method into a preemptible, explicit-per-cpu-locks method. + +Contains fixes from: + Peter Zijlstra + Thomas Gleixner + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner +--- + mm/page_alloc.c | 57 ++++++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 41 insertions(+), 16 deletions(-) + +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -61,6 +61,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -281,6 +282,18 @@ EXPORT_SYMBOL(nr_node_ids); + EXPORT_SYMBOL(nr_online_nodes); + #endif + ++static DEFINE_LOCAL_IRQ_LOCK(pa_lock); ++ ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define cpu_lock_irqsave(cpu, flags) \ ++ spin_lock_irqsave(&per_cpu(pa_lock, cpu).lock, flags) ++# define cpu_unlock_irqrestore(cpu, flags) \ ++ spin_unlock_irqrestore(&per_cpu(pa_lock, cpu).lock, flags) ++#else ++# define cpu_lock_irqsave(cpu, flags) local_irq_save(flags) ++# define cpu_unlock_irqrestore(cpu, flags) local_irq_restore(flags) ++#endif ++ + int page_group_by_mobility_disabled __read_mostly; + + #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT +@@ -1244,10 +1257,10 @@ static void __free_pages_ok(struct page + return; + + migratetype = get_pfnblock_migratetype(page, pfn); +- local_irq_save(flags); ++ local_lock_irqsave(pa_lock, flags); + __count_vm_events(PGFREE, 1 << order); + free_one_page(page_zone(page), page, pfn, order, migratetype); +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + } + + static void __init __free_pages_boot_core(struct page *page, unsigned int order) +@@ -2240,14 +2253,14 @@ void drain_zone_pages(struct zone *zone, + unsigned long flags; + int to_drain, batch; + +- local_irq_save(flags); ++ local_lock_irqsave(pa_lock, flags); + batch = READ_ONCE(pcp->batch); + to_drain = min(pcp->count, batch); + if (to_drain > 0) { + free_pcppages_bulk(zone, to_drain, pcp); + pcp->count -= to_drain; + } +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + } + #endif + +@@ -2264,7 +2277,7 @@ static void drain_pages_zone(unsigned in + struct per_cpu_pageset *pset; + struct per_cpu_pages *pcp; + +- local_irq_save(flags); ++ cpu_lock_irqsave(cpu, flags); + pset = per_cpu_ptr(zone->pageset, cpu); + + pcp = &pset->pcp; +@@ -2272,7 +2285,7 @@ static void drain_pages_zone(unsigned in + free_pcppages_bulk(zone, pcp->count, pcp); + pcp->count = 0; + } +- local_irq_restore(flags); ++ cpu_unlock_irqrestore(cpu, flags); + } + + /* +@@ -2358,8 +2371,17 @@ void drain_all_pages(struct zone *zone) + else + cpumask_clear_cpu(cpu, &cpus_with_pcps); + } ++#ifndef CONFIG_PREEMPT_RT_BASE + on_each_cpu_mask(&cpus_with_pcps, (smp_call_func_t) drain_local_pages, + zone, 1); ++#else ++ for_each_cpu(cpu, &cpus_with_pcps) { ++ if (zone) ++ drain_pages_zone(cpu, zone); ++ else ++ drain_pages(cpu); ++ } ++#endif + } + + #ifdef CONFIG_HIBERNATION +@@ -2419,7 +2441,7 @@ void free_hot_cold_page(struct page *pag + + migratetype = get_pfnblock_migratetype(page, pfn); + set_pcppage_migratetype(page, migratetype); +- local_irq_save(flags); ++ local_lock_irqsave(pa_lock, flags); + __count_vm_event(PGFREE); + + /* +@@ -2450,7 +2472,7 @@ void free_hot_cold_page(struct page *pag + } + + out: +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + } + + /* +@@ -2592,7 +2614,7 @@ struct page *buffered_rmqueue(struct zon + struct per_cpu_pages *pcp; + struct list_head *list; + +- local_irq_save(flags); ++ local_lock_irqsave(pa_lock, flags); + do { + pcp = &this_cpu_ptr(zone->pageset)->pcp; + list = &pcp->lists[migratetype]; +@@ -2619,7 +2641,7 @@ struct page *buffered_rmqueue(struct zon + * allocate greater than order-1 page units with __GFP_NOFAIL. + */ + WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1)); +- spin_lock_irqsave(&zone->lock, flags); ++ local_spin_lock_irqsave(pa_lock, &zone->lock, flags); + + do { + page = NULL; +@@ -2631,22 +2653,24 @@ struct page *buffered_rmqueue(struct zon + if (!page) + page = __rmqueue(zone, order, migratetype); + } while (page && check_new_pages(page, order)); +- spin_unlock(&zone->lock); +- if (!page) ++ if (!page) { ++ spin_unlock(&zone->lock); + goto failed; ++ } + __mod_zone_freepage_state(zone, -(1 << order), + get_pcppage_migratetype(page)); ++ spin_unlock(&zone->lock); + } + + __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order); + zone_statistics(preferred_zone, zone, gfp_flags); +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + + VM_BUG_ON_PAGE(bad_range(zone, page), page); + return page; + + failed: +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + return NULL; + } + +@@ -6523,6 +6547,7 @@ static int page_alloc_cpu_notify(struct + void __init page_alloc_init(void) + { + hotcpu_notifier(page_alloc_cpu_notify, 0); ++ local_irq_lock_init(pa_lock); + } + + /* +@@ -7351,7 +7376,7 @@ void zone_pcp_reset(struct zone *zone) + struct per_cpu_pageset *pset; + + /* avoid races with drain_pages() */ +- local_irq_save(flags); ++ local_lock_irqsave(pa_lock, flags); + if (zone->pageset != &boot_pageset) { + for_each_online_cpu(cpu) { + pset = per_cpu_ptr(zone->pageset, cpu); +@@ -7360,7 +7385,7 @@ void zone_pcp_reset(struct zone *zone) + free_percpu(zone->pageset); + zone->pageset = &boot_pageset; + } +- local_irq_restore(flags); ++ local_unlock_irqrestore(pa_lock, flags); + } + + #ifdef CONFIG_MEMORY_HOTREMOVE diff --git a/patches/features/all/rt/mm-perform-lru_add_drain_all-remotely.patch b/patches/features/all/rt/mm-perform-lru_add_drain_all-remotely.patch new file mode 100644 index 00000000000..3345ee3a3cb --- /dev/null +++ b/patches/features/all/rt/mm-perform-lru_add_drain_all-remotely.patch @@ -0,0 +1,111 @@ +From: Luiz Capitulino +Date: Fri, 27 May 2016 15:03:28 +0200 +Subject: [PATCH] mm: perform lru_add_drain_all() remotely +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run +on all CPUs that have non-empty LRU pagevecs and then waiting for +the scheduled work to complete. However, workqueue threads may never +have the chance to run on a CPU that's running a SCHED_FIFO task. +This causes lru_add_drain_all() to block forever. + +This commit solves this problem by changing lru_add_drain_all() +to drain the LRU pagevecs of remote CPUs. This is done by grabbing +swapvec_lock and calling lru_add_drain_cpu(). + +PS: This is based on an idea and initial implementation by + Rik van Riel. + +Signed-off-by: Rik van Riel +Signed-off-by: Luiz Capitulino +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/swap.c | 42 ++++++++++++++++++++++++++++++++---------- + 1 file changed, 32 insertions(+), 10 deletions(-) + +--- a/mm/swap.c ++++ b/mm/swap.c +@@ -597,9 +597,15 @@ void lru_add_drain_cpu(int cpu) + unsigned long flags; + + /* No harm done if a racing interrupt already did this */ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ local_lock_irqsave_on(rotate_lock, flags, cpu); ++ pagevec_move_tail(pvec); ++ local_unlock_irqrestore_on(rotate_lock, flags, cpu); ++#else + local_lock_irqsave(rotate_lock, flags); + pagevec_move_tail(pvec); + local_unlock_irqrestore(rotate_lock, flags); ++#endif + } + + pvec = &per_cpu(lru_deactivate_file_pvecs, cpu); +@@ -667,12 +673,15 @@ void lru_add_drain(void) + local_unlock_cpu(swapvec_lock); + } + +-static void lru_add_drain_per_cpu(struct work_struct *dummy) ++#ifdef CONFIG_PREEMPT_RT_BASE ++static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work) + { +- lru_add_drain(); ++ local_lock_on(swapvec_lock, cpu); ++ lru_add_drain_cpu(cpu); ++ local_unlock_on(swapvec_lock, cpu); + } + +-static DEFINE_PER_CPU(struct work_struct, lru_add_drain_work); ++#else + + /* + * lru_add_drain_wq is used to do lru_add_drain_all() from a WQ_MEM_RECLAIM +@@ -692,6 +701,22 @@ static int __init lru_init(void) + } + early_initcall(lru_init); + ++static void lru_add_drain_per_cpu(struct work_struct *dummy) ++{ ++ lru_add_drain(); ++} ++ ++static DEFINE_PER_CPU(struct work_struct, lru_add_drain_work); ++static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work) ++{ ++ struct work_struct *work = &per_cpu(lru_add_drain_work, cpu); ++ ++ INIT_WORK(work, lru_add_drain_per_cpu); ++ queue_work_on(cpu, lru_add_drain_wq, work); ++ cpumask_set_cpu(cpu, has_work); ++} ++#endif ++ + void lru_add_drain_all(void) + { + static DEFINE_MUTEX(lock); +@@ -703,21 +728,18 @@ void lru_add_drain_all(void) + cpumask_clear(&has_work); + + for_each_online_cpu(cpu) { +- struct work_struct *work = &per_cpu(lru_add_drain_work, cpu); +- + if (pagevec_count(&per_cpu(lru_add_pvec, cpu)) || + pagevec_count(&per_cpu(lru_rotate_pvecs, cpu)) || + pagevec_count(&per_cpu(lru_deactivate_file_pvecs, cpu)) || + pagevec_count(&per_cpu(lru_deactivate_pvecs, cpu)) || +- need_activate_page_drain(cpu)) { +- INIT_WORK(work, lru_add_drain_per_cpu); +- queue_work_on(cpu, lru_add_drain_wq, work); +- cpumask_set_cpu(cpu, &has_work); +- } ++ need_activate_page_drain(cpu)) ++ remote_lru_add_drain(cpu, &has_work); + } + ++#ifndef CONFIG_PREEMPT_RT_BASE + for_each_cpu(cpu, &has_work) + flush_work(&per_cpu(lru_add_drain_work, cpu)); ++#endif + + put_online_cpus(); + mutex_unlock(&lock); diff --git a/patches/features/all/rt/mm-protect-activate-switch-mm.patch b/patches/features/all/rt/mm-protect-activate-switch-mm.patch new file mode 100644 index 00000000000..887e63a7e88 --- /dev/null +++ b/patches/features/all/rt/mm-protect-activate-switch-mm.patch @@ -0,0 +1,72 @@ +From: Yong Zhang +Date: Tue, 15 May 2012 13:53:56 +0800 +Subject: mm: Protect activate_mm() by preempt_[disable&enable]_rt() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +User preempt_*_rt instead of local_irq_*_rt or otherwise there will be +warning on ARM like below: + +WARNING: at build/linux/kernel/smp.c:459 smp_call_function_many+0x98/0x264() +Modules linked in: +[] (unwind_backtrace+0x0/0xe4) from [] (warn_slowpath_common+0x4c/0x64) +[] (warn_slowpath_common+0x4c/0x64) from [] (warn_slowpath_null+0x18/0x1c) +[] (warn_slowpath_null+0x18/0x1c) from [](smp_call_function_many+0x98/0x264) +[] (smp_call_function_many+0x98/0x264) from [] (smp_call_function+0x44/0x6c) +[] (smp_call_function+0x44/0x6c) from [] (__new_context+0xbc/0x124) +[] (__new_context+0xbc/0x124) from [] (flush_old_exec+0x460/0x5e4) +[] (flush_old_exec+0x460/0x5e4) from [] (load_elf_binary+0x2e0/0x11ac) +[] (load_elf_binary+0x2e0/0x11ac) from [] (search_binary_handler+0x94/0x2a4) +[] (search_binary_handler+0x94/0x2a4) from [] (do_execve+0x254/0x364) +[] (do_execve+0x254/0x364) from [] (sys_execve+0x34/0x54) +[] (sys_execve+0x34/0x54) from [] (ret_fast_syscall+0x0/0x30) +---[ end trace 0000000000000002 ]--- + +The reason is that ARM need irq enabled when doing activate_mm(). +According to mm-protect-activate-switch-mm.patch, actually +preempt_[disable|enable]_rt() is sufficient. + +Inspired-by: Steven Rostedt +Signed-off-by: Yong Zhang +Cc: Steven Rostedt +Link: http://lkml.kernel.org/r/1337061236-1766-1-git-send-email-yong.zhang0@gmail.com +Signed-off-by: Thomas Gleixner +--- + fs/exec.c | 2 ++ + mm/mmu_context.c | 2 ++ + 2 files changed, 4 insertions(+) + +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -1017,12 +1017,14 @@ static int exec_mmap(struct mm_struct *m + } + } + task_lock(tsk); ++ preempt_disable_rt(); + active_mm = tsk->active_mm; + tsk->mm = mm; + tsk->active_mm = mm; + activate_mm(active_mm, mm); + tsk->mm->vmacache_seqnum = 0; + vmacache_flush(tsk); ++ preempt_enable_rt(); + task_unlock(tsk); + if (old_mm) { + up_read(&old_mm->mmap_sem); +--- a/mm/mmu_context.c ++++ b/mm/mmu_context.c +@@ -23,6 +23,7 @@ void use_mm(struct mm_struct *mm) + struct task_struct *tsk = current; + + task_lock(tsk); ++ preempt_disable_rt(); + active_mm = tsk->active_mm; + if (active_mm != mm) { + atomic_inc(&mm->mm_count); +@@ -30,6 +31,7 @@ void use_mm(struct mm_struct *mm) + } + tsk->mm = mm; + switch_mm(active_mm, mm, tsk); ++ preempt_enable_rt(); + task_unlock(tsk); + #ifdef finish_arch_post_lock_switch + finish_arch_post_lock_switch(); diff --git a/patches/features/all/rt/mm-rt-kmap-atomic-scheduling.patch b/patches/features/all/rt/mm-rt-kmap-atomic-scheduling.patch new file mode 100644 index 00000000000..6a7ab4151d2 --- /dev/null +++ b/patches/features/all/rt/mm-rt-kmap-atomic-scheduling.patch @@ -0,0 +1,289 @@ +Subject: mm, rt: kmap_atomic scheduling +From: Peter Zijlstra +Date: Thu, 28 Jul 2011 10:43:51 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +In fact, with migrate_disable() existing one could play games with +kmap_atomic. You could save/restore the kmap_atomic slots on context +switch (if there are any in use of course), this should be esp easy now +that we have a kmap_atomic stack. + +Something like the below.. it wants replacing all the preempt_disable() +stuff with pagefault_disable() && migrate_disable() of course, but then +you can flip kmaps around like below. + +Signed-off-by: Peter Zijlstra +[dvhart@linux.intel.com: build fix] +Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins + +[tglx@linutronix.de: Get rid of the per cpu variable and store the idx + and the pte content right away in the task struct. + Shortens the context switch code. ] +--- + arch/x86/kernel/process_32.c | 32 ++++++++++++++++++++++++++++++++ + arch/x86/mm/highmem_32.c | 13 ++++++++++--- + arch/x86/mm/iomap_32.c | 9 ++++++++- + include/linux/highmem.h | 27 +++++++++++++++++++++++---- + include/linux/sched.h | 7 +++++++ + include/linux/uaccess.h | 2 ++ + mm/highmem.c | 6 ++++-- + 7 files changed, 86 insertions(+), 10 deletions(-) + +--- a/arch/x86/kernel/process_32.c ++++ b/arch/x86/kernel/process_32.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -195,6 +196,35 @@ start_thread(struct pt_regs *regs, unsig + } + EXPORT_SYMBOL_GPL(start_thread); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) ++{ ++ int i; ++ ++ /* ++ * Clear @prev's kmap_atomic mappings ++ */ ++ for (i = 0; i < prev_p->kmap_idx; i++) { ++ int idx = i + KM_TYPE_NR * smp_processor_id(); ++ pte_t *ptep = kmap_pte - idx; ++ ++ kpte_clear_flush(ptep, __fix_to_virt(FIX_KMAP_BEGIN + idx)); ++ } ++ /* ++ * Restore @next_p's kmap_atomic mappings ++ */ ++ for (i = 0; i < next_p->kmap_idx; i++) { ++ int idx = i + KM_TYPE_NR * smp_processor_id(); ++ ++ if (!pte_none(next_p->kmap_pte[i])) ++ set_pte(kmap_pte - idx, next_p->kmap_pte[i]); ++ } ++} ++#else ++static inline void ++switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { } ++#endif ++ + + /* + * switch_to(x,y) should switch tasks from x to y. +@@ -271,6 +301,8 @@ EXPORT_SYMBOL_GPL(start_thread); + task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT)) + __switch_to_xtra(prev_p, next_p, tss); + ++ switch_kmaps(prev_p, next_p); ++ + /* + * Leave lazy mode, flushing any hypercalls made here. + * This must be done before restoring TLS segments so +--- a/arch/x86/mm/highmem_32.c ++++ b/arch/x86/mm/highmem_32.c +@@ -32,10 +32,11 @@ EXPORT_SYMBOL(kunmap); + */ + void *kmap_atomic_prot(struct page *page, pgprot_t prot) + { ++ pte_t pte = mk_pte(page, prot); + unsigned long vaddr; + int idx, type; + +- preempt_disable(); ++ preempt_disable_nort(); + pagefault_disable(); + + if (!PageHighMem(page)) +@@ -45,7 +46,10 @@ void *kmap_atomic_prot(struct page *page + idx = type + KM_TYPE_NR*smp_processor_id(); + vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); + BUG_ON(!pte_none(*(kmap_pte-idx))); +- set_pte(kmap_pte-idx, mk_pte(page, prot)); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = pte; ++#endif ++ set_pte(kmap_pte-idx, pte); + arch_flush_lazy_mmu_mode(); + + return (void *)vaddr; +@@ -88,6 +92,9 @@ void __kunmap_atomic(void *kvaddr) + * is a bad idea also, in case the page changes cacheability + * attributes or becomes a protected page in a hypervisor. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = __pte(0); ++#endif + kpte_clear_flush(kmap_pte-idx, vaddr); + kmap_atomic_idx_pop(); + arch_flush_lazy_mmu_mode(); +@@ -100,7 +107,7 @@ void __kunmap_atomic(void *kvaddr) + #endif + + pagefault_enable(); +- preempt_enable(); ++ preempt_enable_nort(); + } + EXPORT_SYMBOL(__kunmap_atomic); + +--- a/arch/x86/mm/iomap_32.c ++++ b/arch/x86/mm/iomap_32.c +@@ -56,6 +56,7 @@ EXPORT_SYMBOL_GPL(iomap_free); + + void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot) + { ++ pte_t pte = pfn_pte(pfn, prot); + unsigned long vaddr; + int idx, type; + +@@ -65,7 +66,10 @@ void *kmap_atomic_prot_pfn(unsigned long + type = kmap_atomic_idx_push(); + idx = type + KM_TYPE_NR * smp_processor_id(); + vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); +- set_pte(kmap_pte - idx, pfn_pte(pfn, prot)); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = pte; ++#endif ++ set_pte(kmap_pte - idx, pte); + arch_flush_lazy_mmu_mode(); + + return (void *)vaddr; +@@ -113,6 +117,9 @@ iounmap_atomic(void __iomem *kvaddr) + * is a bad idea also, in case the page changes cacheability + * attributes or becomes a protected page in a hypervisor. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ current->kmap_pte[type] = __pte(0); ++#endif + kpte_clear_flush(kmap_pte-idx, vaddr); + kmap_atomic_idx_pop(); + } +--- a/include/linux/highmem.h ++++ b/include/linux/highmem.h +@@ -86,32 +86,51 @@ static inline void __kunmap_atomic(void + + #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32) + ++#ifndef CONFIG_PREEMPT_RT_FULL + DECLARE_PER_CPU(int, __kmap_atomic_idx); ++#endif + + static inline int kmap_atomic_idx_push(void) + { ++#ifndef CONFIG_PREEMPT_RT_FULL + int idx = __this_cpu_inc_return(__kmap_atomic_idx) - 1; + +-#ifdef CONFIG_DEBUG_HIGHMEM ++# ifdef CONFIG_DEBUG_HIGHMEM + WARN_ON_ONCE(in_irq() && !irqs_disabled()); + BUG_ON(idx >= KM_TYPE_NR); +-#endif ++# endif + return idx; ++#else ++ current->kmap_idx++; ++ BUG_ON(current->kmap_idx > KM_TYPE_NR); ++ return current->kmap_idx - 1; ++#endif + } + + static inline int kmap_atomic_idx(void) + { ++#ifndef CONFIG_PREEMPT_RT_FULL + return __this_cpu_read(__kmap_atomic_idx) - 1; ++#else ++ return current->kmap_idx - 1; ++#endif + } + + static inline void kmap_atomic_idx_pop(void) + { +-#ifdef CONFIG_DEBUG_HIGHMEM ++#ifndef CONFIG_PREEMPT_RT_FULL ++# ifdef CONFIG_DEBUG_HIGHMEM + int idx = __this_cpu_dec_return(__kmap_atomic_idx); + + BUG_ON(idx < 0); +-#else ++# else + __this_cpu_dec(__kmap_atomic_idx); ++# endif ++#else ++ current->kmap_idx--; ++# ifdef CONFIG_DEBUG_HIGHMEM ++ BUG_ON(current->kmap_idx < 0); ++# endif + #endif + } + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -26,6 +26,7 @@ struct sched_param { + #include + #include + #include ++#include + + #include + #include +@@ -1979,6 +1980,12 @@ struct task_struct { + int softirq_nestcnt; + unsigned int softirqs_raised; + #endif ++#ifdef CONFIG_PREEMPT_RT_FULL ++# if defined CONFIG_HIGHMEM || defined CONFIG_X86_32 ++ int kmap_idx; ++ pte_t kmap_pte[KM_TYPE_NR]; ++# endif ++#endif + #ifdef CONFIG_DEBUG_ATOMIC_SLEEP + unsigned long task_state_change; + #endif +--- a/include/linux/uaccess.h ++++ b/include/linux/uaccess.h +@@ -24,6 +24,7 @@ static __always_inline void pagefault_di + */ + static inline void pagefault_disable(void) + { ++ migrate_disable(); + pagefault_disabled_inc(); + /* + * make sure to have issued the store before a pagefault +@@ -40,6 +41,7 @@ static inline void pagefault_enable(void + */ + barrier(); + pagefault_disabled_dec(); ++ migrate_enable(); + } + + /* +--- a/mm/highmem.c ++++ b/mm/highmem.c +@@ -29,10 +29,11 @@ + #include + #include + +- ++#ifndef CONFIG_PREEMPT_RT_FULL + #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32) + DEFINE_PER_CPU(int, __kmap_atomic_idx); + #endif ++#endif + + /* + * Virtual_count is not a pure "count". +@@ -107,8 +108,9 @@ static inline wait_queue_head_t *get_pkm + unsigned long totalhigh_pages __read_mostly; + EXPORT_SYMBOL(totalhigh_pages); + +- ++#ifndef CONFIG_PREEMPT_RT_FULL + EXPORT_PER_CPU_SYMBOL(__kmap_atomic_idx); ++#endif + + unsigned int nr_free_highpages (void) + { diff --git a/patches/features/all/rt/mm-scatterlist-dont-disable-irqs-on-RT.patch b/patches/features/all/rt/mm-scatterlist-dont-disable-irqs-on-RT.patch new file mode 100644 index 00000000000..1b641e55ed5 --- /dev/null +++ b/patches/features/all/rt/mm-scatterlist-dont-disable-irqs-on-RT.patch @@ -0,0 +1,44 @@ +From: Thomas Gleixner +Date: Fri, 3 Jul 2009 08:44:34 -0500 +Subject: mm/scatterlist: Do not disable irqs on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The local_irq_save() is not only used to get things done "fast" but +also to ensure that in case of SG_MITER_ATOMIC we are in "atomic" +context for kmap_atomic(). For -RT it is enough to keep pagefault +disabled (which is currently handled by kmap_atomic()). + +Signed-off-by: Thomas Gleixner +--- + lib/scatterlist.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/lib/scatterlist.c ++++ b/lib/scatterlist.c +@@ -620,7 +620,7 @@ void sg_miter_stop(struct sg_mapping_ite + flush_kernel_dcache_page(miter->page); + + if (miter->__flags & SG_MITER_ATOMIC) { +- WARN_ON_ONCE(preemptible()); ++ WARN_ON_ONCE(!pagefault_disabled()); + kunmap_atomic(miter->addr); + } else + kunmap(miter->page); +@@ -664,7 +664,7 @@ size_t sg_copy_buffer(struct scatterlist + if (!sg_miter_skip(&miter, skip)) + return false; + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + + while (sg_miter_next(&miter) && offset < buflen) { + unsigned int len; +@@ -681,7 +681,7 @@ size_t sg_copy_buffer(struct scatterlist + + sg_miter_stop(&miter); + +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + return offset; + } + EXPORT_SYMBOL(sg_copy_buffer); diff --git a/patches/features/all/rt/mm-vmalloc-use-get-cpu-light.patch b/patches/features/all/rt/mm-vmalloc-use-get-cpu-light.patch new file mode 100644 index 00000000000..aa6b339bc83 --- /dev/null +++ b/patches/features/all/rt/mm-vmalloc-use-get-cpu-light.patch @@ -0,0 +1,66 @@ +Subject: mm/vmalloc: Another preempt disable region which sucks +From: Thomas Gleixner +Date: Tue, 12 Jul 2011 11:39:36 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Avoid the preempt disable version of get_cpu_var(). The inner-lock should +provide enough serialisation. + +Signed-off-by: Thomas Gleixner +--- + mm/vmalloc.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +--- a/mm/vmalloc.c ++++ b/mm/vmalloc.c +@@ -845,7 +845,7 @@ static void *new_vmap_block(unsigned int + struct vmap_block *vb; + struct vmap_area *va; + unsigned long vb_idx; +- int node, err; ++ int node, err, cpu; + void *vaddr; + + node = numa_node_id(); +@@ -888,11 +888,12 @@ static void *new_vmap_block(unsigned int + BUG_ON(err); + radix_tree_preload_end(); + +- vbq = &get_cpu_var(vmap_block_queue); ++ cpu = get_cpu_light(); ++ vbq = this_cpu_ptr(&vmap_block_queue); + spin_lock(&vbq->lock); + list_add_tail_rcu(&vb->free_list, &vbq->free); + spin_unlock(&vbq->lock); +- put_cpu_var(vmap_block_queue); ++ put_cpu_light(); + + return vaddr; + } +@@ -961,6 +962,7 @@ static void *vb_alloc(unsigned long size + struct vmap_block *vb; + void *vaddr = NULL; + unsigned int order; ++ int cpu; + + BUG_ON(offset_in_page(size)); + BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); +@@ -975,7 +977,8 @@ static void *vb_alloc(unsigned long size + order = get_order(size); + + rcu_read_lock(); +- vbq = &get_cpu_var(vmap_block_queue); ++ cpu = get_cpu_light(); ++ vbq = this_cpu_ptr(&vmap_block_queue); + list_for_each_entry_rcu(vb, &vbq->free, free_list) { + unsigned long pages_off; + +@@ -998,7 +1001,7 @@ static void *vb_alloc(unsigned long size + break; + } + +- put_cpu_var(vmap_block_queue); ++ put_cpu_light(); + rcu_read_unlock(); + + /* Allocate new block if nothing was found */ diff --git a/patches/features/all/rt/mm-workingset-do-not-protect-workingset_shadow_nodes.patch b/patches/features/all/rt/mm-workingset-do-not-protect-workingset_shadow_nodes.patch new file mode 100644 index 00000000000..ba828341bb0 --- /dev/null +++ b/patches/features/all/rt/mm-workingset-do-not-protect-workingset_shadow_nodes.patch @@ -0,0 +1,154 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 29 Jan 2015 17:19:44 +0100 +Subject: mm/workingset: Do not protect workingset_shadow_nodes with irq off +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +workingset_shadow_nodes is protected by local_irq_disable(). Some users +use spin_lock_irq(). +Replace the irq/on with a local_lock(). Rename workingset_shadow_nodes +so I catch users of it which will be introduced later. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/swap.h | 4 +++- + mm/filemap.c | 13 +++++++++---- + mm/truncate.c | 7 +++++-- + mm/workingset.c | 23 ++++++++++++----------- + 4 files changed, 29 insertions(+), 18 deletions(-) + +--- a/include/linux/swap.h ++++ b/include/linux/swap.h +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + + struct notifier_block; +@@ -246,7 +247,8 @@ struct swap_info_struct { + void *workingset_eviction(struct address_space *mapping, struct page *page); + bool workingset_refault(void *shadow); + void workingset_activation(struct page *page); +-extern struct list_lru workingset_shadow_nodes; ++extern struct list_lru __workingset_shadow_nodes; ++DECLARE_LOCAL_IRQ_LOCK(workingset_shadow_lock); + + static inline unsigned int workingset_node_pages(struct radix_tree_node *node) + { +--- a/mm/filemap.c ++++ b/mm/filemap.c +@@ -159,9 +159,12 @@ static int page_cache_tree_insert(struct + * node->private_list is protected by + * mapping->tree_lock. + */ +- if (!list_empty(&node->private_list)) +- list_lru_del(&workingset_shadow_nodes, ++ if (!list_empty(&node->private_list)) { ++ local_lock(workingset_shadow_lock); ++ list_lru_del(&__workingset_shadow_nodes, + &node->private_list); ++ local_unlock(workingset_shadow_lock); ++ } + } + return 0; + } +@@ -217,8 +220,10 @@ static void page_cache_tree_delete(struc + if (!dax_mapping(mapping) && !workingset_node_pages(node) && + list_empty(&node->private_list)) { + node->private_data = mapping; +- list_lru_add(&workingset_shadow_nodes, +- &node->private_list); ++ local_lock(workingset_shadow_lock); ++ list_lru_add(&__workingset_shadow_nodes, ++ &node->private_list); ++ local_unlock(workingset_shadow_lock); + } + } + +--- a/mm/truncate.c ++++ b/mm/truncate.c +@@ -62,9 +62,12 @@ static void clear_exceptional_entry(stru + * protected by mapping->tree_lock. + */ + if (!workingset_node_shadows(node) && +- !list_empty(&node->private_list)) +- list_lru_del(&workingset_shadow_nodes, ++ !list_empty(&node->private_list)) { ++ local_lock(workingset_shadow_lock); ++ list_lru_del(&__workingset_shadow_nodes, + &node->private_list); ++ local_unlock(workingset_shadow_lock); ++ } + __radix_tree_delete_node(&mapping->page_tree, node); + unlock: + spin_unlock_irq(&mapping->tree_lock); +--- a/mm/workingset.c ++++ b/mm/workingset.c +@@ -334,7 +334,8 @@ void workingset_activation(struct page * + * point where they would still be useful. + */ + +-struct list_lru workingset_shadow_nodes; ++struct list_lru __workingset_shadow_nodes; ++DEFINE_LOCAL_IRQ_LOCK(workingset_shadow_lock); + + static unsigned long count_shadow_nodes(struct shrinker *shrinker, + struct shrink_control *sc) +@@ -344,9 +345,9 @@ static unsigned long count_shadow_nodes( + unsigned long pages; + + /* list_lru lock nests inside IRQ-safe mapping->tree_lock */ +- local_irq_disable(); +- shadow_nodes = list_lru_shrink_count(&workingset_shadow_nodes, sc); +- local_irq_enable(); ++ local_lock_irq(workingset_shadow_lock); ++ shadow_nodes = list_lru_shrink_count(&__workingset_shadow_nodes, sc); ++ local_unlock_irq(workingset_shadow_lock); + + if (sc->memcg) { + pages = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid, +@@ -438,9 +439,9 @@ static enum lru_status shadow_lru_isolat + spin_unlock(&mapping->tree_lock); + ret = LRU_REMOVED_RETRY; + out: +- local_irq_enable(); ++ local_unlock_irq(workingset_shadow_lock); + cond_resched(); +- local_irq_disable(); ++ local_lock_irq(workingset_shadow_lock); + spin_lock(lru_lock); + return ret; + } +@@ -451,10 +452,10 @@ static unsigned long scan_shadow_nodes(s + unsigned long ret; + + /* list_lru lock nests inside IRQ-safe mapping->tree_lock */ +- local_irq_disable(); +- ret = list_lru_shrink_walk(&workingset_shadow_nodes, sc, ++ local_lock_irq(workingset_shadow_lock); ++ ret = list_lru_shrink_walk(&__workingset_shadow_nodes, sc, + shadow_lru_isolate, NULL); +- local_irq_enable(); ++ local_unlock_irq(workingset_shadow_lock); + return ret; + } + +@@ -492,7 +493,7 @@ static int __init workingset_init(void) + pr_info("workingset: timestamp_bits=%d max_order=%d bucket_order=%u\n", + timestamp_bits, max_order, bucket_order); + +- ret = list_lru_init_key(&workingset_shadow_nodes, &shadow_nodes_key); ++ ret = list_lru_init_key(&__workingset_shadow_nodes, &shadow_nodes_key); + if (ret) + goto err; + ret = register_shrinker(&workingset_shadow_shrinker); +@@ -500,7 +501,7 @@ static int __init workingset_init(void) + goto err_list_lru; + return 0; + err_list_lru: +- list_lru_destroy(&workingset_shadow_nodes); ++ list_lru_destroy(&__workingset_shadow_nodes); + err: + return ret; + } diff --git a/patches/features/all/rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch b/patches/features/all/rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch new file mode 100644 index 00000000000..bb86b48c372 --- /dev/null +++ b/patches/features/all/rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch @@ -0,0 +1,197 @@ +From: Mike Galbraith +Date: Tue, 22 Mar 2016 11:16:09 +0100 +Subject: [PATCH] mm/zsmalloc: copy with get_cpu_var() and locking +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +get_cpu_var() disables preemption and triggers a might_sleep() splat later. +This is replaced with get_locked_var(). +This bitspinlocks are replaced with a proper mutex which requires a slightly +larger struct to allocate. + +Signed-off-by: Mike Galbraith +[bigeasy: replace the bitspin_lock() with a mutex, get_locked_var(). Mike then +fixed the size magic] +Signed-off-by: Sebastian Andrzej Siewior +--- + mm/zsmalloc.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 74 insertions(+), 6 deletions(-) + +--- a/mm/zsmalloc.c ++++ b/mm/zsmalloc.c +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + + #define ZSPAGE_MAGIC 0x58 + +@@ -70,9 +71,22 @@ + */ + #define ZS_MAX_ZSPAGE_ORDER 2 + #define ZS_MAX_PAGES_PER_ZSPAGE (_AC(1, UL) << ZS_MAX_ZSPAGE_ORDER) +- + #define ZS_HANDLE_SIZE (sizeof(unsigned long)) + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++struct zsmalloc_handle { ++ unsigned long addr; ++ struct mutex lock; ++}; ++ ++#define ZS_HANDLE_ALLOC_SIZE (sizeof(struct zsmalloc_handle)) ++ ++#else ++ ++#define ZS_HANDLE_ALLOC_SIZE (sizeof(unsigned long)) ++#endif ++ + /* + * Object location (, ) is encoded as + * as single (unsigned long) handle value. +@@ -327,7 +341,7 @@ static void SetZsPageMovable(struct zs_p + + static int create_cache(struct zs_pool *pool) + { +- pool->handle_cachep = kmem_cache_create("zs_handle", ZS_HANDLE_SIZE, ++ pool->handle_cachep = kmem_cache_create("zs_handle", ZS_HANDLE_ALLOC_SIZE, + 0, 0, NULL); + if (!pool->handle_cachep) + return 1; +@@ -351,10 +365,27 @@ static void destroy_cache(struct zs_pool + + static unsigned long cache_alloc_handle(struct zs_pool *pool, gfp_t gfp) + { +- return (unsigned long)kmem_cache_alloc(pool->handle_cachep, +- gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE)); ++ void *p; ++ ++ p = kmem_cache_alloc(pool->handle_cachep, ++ gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE)); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (p) { ++ struct zsmalloc_handle *zh = p; ++ ++ mutex_init(&zh->lock); ++ } ++#endif ++ return (unsigned long)p; + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static struct zsmalloc_handle *zs_get_pure_handle(unsigned long handle) ++{ ++ return (void *)(handle &~((1 << OBJ_TAG_BITS) - 1)); ++} ++#endif ++ + static void cache_free_handle(struct zs_pool *pool, unsigned long handle) + { + kmem_cache_free(pool->handle_cachep, (void *)handle); +@@ -373,12 +404,18 @@ static void cache_free_zspage(struct zs_ + + static void record_obj(unsigned long handle, unsigned long obj) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ WRITE_ONCE(zh->addr, obj); ++#else + /* + * lsb of @obj represents handle lock while other bits + * represent object value the handle is pointing so + * updating shouldn't do store tearing. + */ + WRITE_ONCE(*(unsigned long *)handle, obj); ++#endif + } + + /* zpool driver */ +@@ -467,6 +504,7 @@ MODULE_ALIAS("zpool-zsmalloc"); + + /* per-cpu VM mapping areas for zspage accesses that cross page boundaries */ + static DEFINE_PER_CPU(struct mapping_area, zs_map_area); ++static DEFINE_LOCAL_IRQ_LOCK(zs_map_area_lock); + + static bool is_zspage_isolated(struct zspage *zspage) + { +@@ -902,7 +940,13 @@ static unsigned long location_to_obj(str + + static unsigned long handle_to_obj(unsigned long handle) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ return zh->addr; ++#else + return *(unsigned long *)handle; ++#endif + } + + static unsigned long obj_to_head(struct page *page, void *obj) +@@ -916,22 +960,46 @@ static unsigned long obj_to_head(struct + + static inline int testpin_tag(unsigned long handle) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ return mutex_is_locked(&zh->lock); ++#else + return bit_spin_is_locked(HANDLE_PIN_BIT, (unsigned long *)handle); ++#endif + } + + static inline int trypin_tag(unsigned long handle) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ return mutex_trylock(&zh->lock); ++#else + return bit_spin_trylock(HANDLE_PIN_BIT, (unsigned long *)handle); ++#endif + } + + static void pin_tag(unsigned long handle) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ return mutex_lock(&zh->lock); ++#else + bit_spin_lock(HANDLE_PIN_BIT, (unsigned long *)handle); ++#endif + } + + static void unpin_tag(unsigned long handle) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct zsmalloc_handle *zh = zs_get_pure_handle(handle); ++ ++ return mutex_unlock(&zh->lock); ++#else + bit_spin_unlock(HANDLE_PIN_BIT, (unsigned long *)handle); ++#endif + } + + static void reset_page(struct page *page) +@@ -1423,7 +1491,7 @@ void *zs_map_object(struct zs_pool *pool + class = pool->size_class[class_idx]; + off = (class->size * obj_idx) & ~PAGE_MASK; + +- area = &get_cpu_var(zs_map_area); ++ area = &get_locked_var(zs_map_area_lock, zs_map_area); + area->vm_mm = mm; + if (off + class->size <= PAGE_SIZE) { + /* this object is contained entirely within a page */ +@@ -1477,7 +1545,7 @@ void zs_unmap_object(struct zs_pool *poo + + __zs_unmap_object(area, pages, off, class->size); + } +- put_cpu_var(zs_map_area); ++ put_locked_var(zs_map_area_lock, zs_map_area); + + migrate_read_unlock(zspage); + unpin_tag(handle); diff --git a/patches/features/all/rt/mmci-remove-bogus-irq-save.patch b/patches/features/all/rt/mmci-remove-bogus-irq-save.patch new file mode 100644 index 00000000000..a1ca8f403c0 --- /dev/null +++ b/patches/features/all/rt/mmci-remove-bogus-irq-save.patch @@ -0,0 +1,40 @@ +Subject: mmci: Remove bogus local_irq_save() +From: Thomas Gleixner +Date: Wed, 09 Jan 2013 12:11:12 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On !RT interrupt runs with interrupts disabled. On RT it's in a +thread, so no need to disable interrupts at all. + +Signed-off-by: Thomas Gleixner +--- + drivers/mmc/host/mmci.c | 5 ----- + 1 file changed, 5 deletions(-) + +--- a/drivers/mmc/host/mmci.c ++++ b/drivers/mmc/host/mmci.c +@@ -1147,15 +1147,12 @@ static irqreturn_t mmci_pio_irq(int irq, + struct sg_mapping_iter *sg_miter = &host->sg_miter; + struct variant_data *variant = host->variant; + void __iomem *base = host->base; +- unsigned long flags; + u32 status; + + status = readl(base + MMCISTATUS); + + dev_dbg(mmc_dev(host->mmc), "irq1 (pio) %08x\n", status); + +- local_irq_save(flags); +- + do { + unsigned int remain, len; + char *buffer; +@@ -1195,8 +1192,6 @@ static irqreturn_t mmci_pio_irq(int irq, + + sg_miter_stop(sg_miter); + +- local_irq_restore(flags); +- + /* + * If we have less than the fifo 'half-full' threshold to transfer, + * trigger a PIO interrupt as soon as any data is available. diff --git a/patches/features/all/rt/move_sched_delayed_work_to_helper.patch b/patches/features/all/rt/move_sched_delayed_work_to_helper.patch new file mode 100644 index 00000000000..89278db63fd --- /dev/null +++ b/patches/features/all/rt/move_sched_delayed_work_to_helper.patch @@ -0,0 +1,73 @@ +Date: Wed, 26 Jun 2013 15:28:11 -0400 +From: Steven Rostedt +Subject: rt,ntp: Move call to schedule_delayed_work() to helper thread +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The ntp code for notify_cmos_timer() is called from a hard interrupt +context. schedule_delayed_work() under PREEMPT_RT_FULL calls spinlocks +that have been converted to mutexes, thus calling schedule_delayed_work() +from interrupt is not safe. + +Add a helper thread that does the call to schedule_delayed_work and wake +up that thread instead of calling schedule_delayed_work() directly. +This is only for CONFIG_PREEMPT_RT_FULL, otherwise the code still calls +schedule_delayed_work() directly in irq context. + +Note: There's a few places in the kernel that do this. Perhaps the RT +code should have a dedicated thread that does the checks. Just register +a notifier on boot up for your check and wake up the thread when +needed. This will be a todo. + +Signed-off-by: Steven Rostedt +[bigeasy: use swork_queue() instead a helper thread] +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/time/ntp.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +--- a/kernel/time/ntp.c ++++ b/kernel/time/ntp.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + #include "ntp_internal.h" + #include "timekeeping_internal.h" +@@ -568,10 +569,35 @@ static void sync_cmos_clock(struct work_ + &sync_cmos_work, timespec64_to_jiffies(&next)); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++static void run_clock_set_delay(struct swork_event *event) ++{ ++ queue_delayed_work(system_power_efficient_wq, &sync_cmos_work, 0); ++} ++ ++static struct swork_event ntp_cmos_swork; ++ ++void ntp_notify_cmos_timer(void) ++{ ++ swork_queue(&ntp_cmos_swork); ++} ++ ++static __init int create_cmos_delay_thread(void) ++{ ++ WARN_ON(swork_get()); ++ INIT_SWORK(&ntp_cmos_swork, run_clock_set_delay); ++ return 0; ++} ++early_initcall(create_cmos_delay_thread); ++ ++#else ++ + void ntp_notify_cmos_timer(void) + { + queue_delayed_work(system_power_efficient_wq, &sync_cmos_work, 0); + } ++#endif /* CONFIG_PREEMPT_RT_FULL */ + + #else + void ntp_notify_cmos_timer(void) { } diff --git a/patches/features/all/rt/mutex-no-spin-on-rt.patch b/patches/features/all/rt/mutex-no-spin-on-rt.patch new file mode 100644 index 00000000000..89e26ceccb9 --- /dev/null +++ b/patches/features/all/rt/mutex-no-spin-on-rt.patch @@ -0,0 +1,29 @@ +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 21:51:45 +0200 +Subject: locking: Disable spin on owner for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Drop spin on owner for mutex / rwsem. We are most likely not using it +but… + +Signed-off-by: Thomas Gleixner +--- + kernel/Kconfig.locks | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/Kconfig.locks ++++ b/kernel/Kconfig.locks +@@ -225,11 +225,11 @@ config ARCH_SUPPORTS_ATOMIC_RMW + + config MUTEX_SPIN_ON_OWNER + def_bool y +- depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW ++ depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL + + config RWSEM_SPIN_ON_OWNER + def_bool y +- depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW ++ depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL + + config LOCK_SPIN_ON_OWNER + def_bool y diff --git a/patches/features/all/rt/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/patches/features/all/rt/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch new file mode 100644 index 00000000000..4faf187ddca --- /dev/null +++ b/patches/features/all/rt/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch @@ -0,0 +1,69 @@ +From: Steven Rostedt +Date: Tue, 6 Dec 2016 17:50:30 -0500 +Subject: [PATCH] net: Have __napi_schedule_irqoff() disable interrupts on + RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +A customer hit a crash where the napi sd->poll_list became corrupted. +The customer had the bnx2x driver, which does a +__napi_schedule_irqoff() in its interrupt handler. Unfortunately, when +running with CONFIG_PREEMPT_RT_FULL, this interrupt handler is run as a +thread and is preemptable. The call to ____napi_schedule() must be done +with interrupts disabled to protect the per cpu softnet_data's +"poll_list, which is protected by disabling interrupts (disabling +preemption is enough when all interrupts are threaded and +local_bh_disable() can't preempt)." + +As bnx2x isn't the only driver that does this, the safest thing to do +is to make __napi_schedule_irqoff() call __napi_schedule() instead when +CONFIG_PREEMPT_RT_FULL is enabled, which will call local_irq_save() +before calling ____napi_schedule(). + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Steven Rostedt (Red Hat) +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/netdevice.h | 12 ++++++++++++ + net/core/dev.c | 2 ++ + 2 files changed, 14 insertions(+) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -396,7 +396,19 @@ typedef enum rx_handler_result rx_handle + typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb); + + void __napi_schedule(struct napi_struct *n); ++ ++/* ++ * When PREEMPT_RT_FULL is defined, all device interrupt handlers ++ * run as threads, and they can also be preempted (without PREEMPT_RT ++ * interrupt threads can not be preempted). Which means that calling ++ * __napi_schedule_irqoff() from an interrupt handler can be preempted ++ * and can corrupt the napi->poll_list. ++ */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++#define __napi_schedule_irqoff(n) __napi_schedule(n) ++#else + void __napi_schedule_irqoff(struct napi_struct *n); ++#endif + + static inline bool napi_disable_pending(struct napi_struct *n) + { +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -4914,6 +4914,7 @@ void __napi_schedule(struct napi_struct + } + EXPORT_SYMBOL(__napi_schedule); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /** + * __napi_schedule_irqoff - schedule for receive + * @n: entry to schedule +@@ -4925,6 +4926,7 @@ void __napi_schedule_irqoff(struct napi_ + ____napi_schedule(this_cpu_ptr(&softnet_data), n); + } + EXPORT_SYMBOL(__napi_schedule_irqoff); ++#endif + + void __napi_complete(struct napi_struct *n) + { diff --git a/patches/features/all/rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch b/patches/features/all/rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch new file mode 100644 index 00000000000..03d435ea457 --- /dev/null +++ b/patches/features/all/rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -0,0 +1,274 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Sep 2016 17:36:35 +0200 +Subject: [PATCH] net/Qdisc: use a seqlock instead seqcount +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The seqcount disables preemption on -RT while it is held which can't +remove. Also we don't want the reader to spin for ages if the writer is +scheduled out. The seqlock on the other hand will serialize / sleep on +the lock while writer is active. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/seqlock.h | 9 +++++++++ + include/net/gen_stats.h | 9 +++++---- + include/net/net_seq_lock.h | 15 +++++++++++++++ + include/net/sch_generic.h | 21 ++++++++++++++++++--- + net/core/gen_estimator.c | 6 +++--- + net/core/gen_stats.c | 8 ++++---- + net/sched/sch_api.c | 2 +- + net/sched/sch_generic.c | 12 ++++++++++++ + 8 files changed, 67 insertions(+), 15 deletions(-) + create mode 100644 include/net/net_seq_lock.h + +--- a/include/linux/seqlock.h ++++ b/include/linux/seqlock.h +@@ -481,6 +481,15 @@ static inline void write_seqlock(seqlock + __raw_write_seqcount_begin(&sl->seqcount); + } + ++static inline int try_write_seqlock(seqlock_t *sl) ++{ ++ if (spin_trylock(&sl->lock)) { ++ __raw_write_seqcount_begin(&sl->seqcount); ++ return 1; ++ } ++ return 0; ++} ++ + static inline void write_sequnlock(seqlock_t *sl) + { + __raw_write_seqcount_end(&sl->seqcount); +--- a/include/net/gen_stats.h ++++ b/include/net/gen_stats.h +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + struct gnet_stats_basic_cpu { + struct gnet_stats_basic_packed bstats; +@@ -33,11 +34,11 @@ int gnet_stats_start_copy_compat(struct + spinlock_t *lock, struct gnet_dump *d, + int padattr); + +-int gnet_stats_copy_basic(const seqcount_t *running, ++int gnet_stats_copy_basic(net_seqlock_t *running, + struct gnet_dump *d, + struct gnet_stats_basic_cpu __percpu *cpu, + struct gnet_stats_basic_packed *b); +-void __gnet_stats_copy_basic(const seqcount_t *running, ++void __gnet_stats_copy_basic(net_seqlock_t *running, + struct gnet_stats_basic_packed *bstats, + struct gnet_stats_basic_cpu __percpu *cpu, + struct gnet_stats_basic_packed *b); +@@ -55,14 +56,14 @@ int gen_new_estimator(struct gnet_stats_ + struct gnet_stats_basic_cpu __percpu *cpu_bstats, + struct gnet_stats_rate_est64 *rate_est, + spinlock_t *stats_lock, +- seqcount_t *running, struct nlattr *opt); ++ net_seqlock_t *running, struct nlattr *opt); + void gen_kill_estimator(struct gnet_stats_basic_packed *bstats, + struct gnet_stats_rate_est64 *rate_est); + int gen_replace_estimator(struct gnet_stats_basic_packed *bstats, + struct gnet_stats_basic_cpu __percpu *cpu_bstats, + struct gnet_stats_rate_est64 *rate_est, + spinlock_t *stats_lock, +- seqcount_t *running, struct nlattr *opt); ++ net_seqlock_t *running, struct nlattr *opt); + bool gen_estimator_active(const struct gnet_stats_basic_packed *bstats, + const struct gnet_stats_rate_est64 *rate_est); + #endif +--- /dev/null ++++ b/include/net/net_seq_lock.h +@@ -0,0 +1,15 @@ ++#ifndef __NET_NET_SEQ_LOCK_H__ ++#define __NET_NET_SEQ_LOCK_H__ ++ ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define net_seqlock_t seqlock_t ++# define net_seq_begin(__r) read_seqbegin(__r) ++# define net_seq_retry(__r, __s) read_seqretry(__r, __s) ++ ++#else ++# define net_seqlock_t seqcount_t ++# define net_seq_begin(__r) read_seqcount_begin(__r) ++# define net_seq_retry(__r, __s) read_seqcount_retry(__r, __s) ++#endif ++ ++#endif +--- a/include/net/sch_generic.h ++++ b/include/net/sch_generic.h +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + struct Qdisc_ops; + struct qdisc_walker; +@@ -86,7 +87,7 @@ struct Qdisc { + struct sk_buff *gso_skb ____cacheline_aligned_in_smp; + struct qdisc_skb_head q; + struct gnet_stats_basic_packed bstats; +- seqcount_t running; ++ net_seqlock_t running; + struct gnet_stats_queue qstats; + unsigned long state; + struct Qdisc *next_sched; +@@ -98,13 +99,22 @@ struct Qdisc { + spinlock_t busylock ____cacheline_aligned_in_smp; + }; + +-static inline bool qdisc_is_running(const struct Qdisc *qdisc) ++static inline bool qdisc_is_running(struct Qdisc *qdisc) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ return spin_is_locked(&qdisc->running.lock) ? true : false; ++#else + return (raw_read_seqcount(&qdisc->running) & 1) ? true : false; ++#endif + } + + static inline bool qdisc_run_begin(struct Qdisc *qdisc) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ if (try_write_seqlock(&qdisc->running)) ++ return true; ++ return false; ++#else + if (qdisc_is_running(qdisc)) + return false; + /* Variant of write_seqcount_begin() telling lockdep a trylock +@@ -113,11 +123,16 @@ static inline bool qdisc_run_begin(struc + raw_write_seqcount_begin(&qdisc->running); + seqcount_acquire(&qdisc->running.dep_map, 0, 1, _RET_IP_); + return true; ++#endif + } + + static inline void qdisc_run_end(struct Qdisc *qdisc) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ write_sequnlock(&qdisc->running); ++#else + write_seqcount_end(&qdisc->running); ++#endif + } + + static inline bool qdisc_may_bulk(const struct Qdisc *qdisc) +@@ -308,7 +323,7 @@ static inline spinlock_t *qdisc_root_sle + return qdisc_lock(root); + } + +-static inline seqcount_t *qdisc_root_sleeping_running(const struct Qdisc *qdisc) ++static inline net_seqlock_t *qdisc_root_sleeping_running(const struct Qdisc *qdisc) + { + struct Qdisc *root = qdisc_root_sleeping(qdisc); + +--- a/net/core/gen_estimator.c ++++ b/net/core/gen_estimator.c +@@ -84,7 +84,7 @@ struct gen_estimator + struct gnet_stats_basic_packed *bstats; + struct gnet_stats_rate_est64 *rate_est; + spinlock_t *stats_lock; +- seqcount_t *running; ++ net_seqlock_t *running; + int ewma_log; + u32 last_packets; + unsigned long avpps; +@@ -213,7 +213,7 @@ int gen_new_estimator(struct gnet_stats_ + struct gnet_stats_basic_cpu __percpu *cpu_bstats, + struct gnet_stats_rate_est64 *rate_est, + spinlock_t *stats_lock, +- seqcount_t *running, ++ net_seqlock_t *running, + struct nlattr *opt) + { + struct gen_estimator *est; +@@ -309,7 +309,7 @@ int gen_replace_estimator(struct gnet_st + struct gnet_stats_basic_cpu __percpu *cpu_bstats, + struct gnet_stats_rate_est64 *rate_est, + spinlock_t *stats_lock, +- seqcount_t *running, struct nlattr *opt) ++ net_seqlock_t *running, struct nlattr *opt) + { + gen_kill_estimator(bstats, rate_est); + return gen_new_estimator(bstats, cpu_bstats, rate_est, stats_lock, running, opt); +--- a/net/core/gen_stats.c ++++ b/net/core/gen_stats.c +@@ -130,7 +130,7 @@ static void + } + + void +-__gnet_stats_copy_basic(const seqcount_t *running, ++__gnet_stats_copy_basic(net_seqlock_t *running, + struct gnet_stats_basic_packed *bstats, + struct gnet_stats_basic_cpu __percpu *cpu, + struct gnet_stats_basic_packed *b) +@@ -143,10 +143,10 @@ void + } + do { + if (running) +- seq = read_seqcount_begin(running); ++ seq = net_seq_begin(running); + bstats->bytes = b->bytes; + bstats->packets = b->packets; +- } while (running && read_seqcount_retry(running, seq)); ++ } while (running && net_seq_retry(running, seq)); + } + EXPORT_SYMBOL(__gnet_stats_copy_basic); + +@@ -164,7 +164,7 @@ EXPORT_SYMBOL(__gnet_stats_copy_basic); + * if the room in the socket buffer was not sufficient. + */ + int +-gnet_stats_copy_basic(const seqcount_t *running, ++gnet_stats_copy_basic(net_seqlock_t *running, + struct gnet_dump *d, + struct gnet_stats_basic_cpu __percpu *cpu, + struct gnet_stats_basic_packed *b) +--- a/net/sched/sch_api.c ++++ b/net/sched/sch_api.c +@@ -981,7 +981,7 @@ static struct Qdisc *qdisc_create(struct + rcu_assign_pointer(sch->stab, stab); + } + if (tca[TCA_RATE]) { +- seqcount_t *running; ++ net_seqlock_t *running; + + err = -EOPNOTSUPP; + if (sch->flags & TCQ_F_MQROOT) +--- a/net/sched/sch_generic.c ++++ b/net/sched/sch_generic.c +@@ -425,7 +425,11 @@ struct Qdisc noop_qdisc = { + .ops = &noop_qdisc_ops, + .q.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock), + .dev_queue = &noop_netdev_queue, ++#ifdef CONFIG_PREEMPT_RT_BASE ++ .running = __SEQLOCK_UNLOCKED(noop_qdisc.running), ++#else + .running = SEQCNT_ZERO(noop_qdisc.running), ++#endif + .busylock = __SPIN_LOCK_UNLOCKED(noop_qdisc.busylock), + }; + EXPORT_SYMBOL(noop_qdisc); +@@ -624,9 +628,17 @@ struct Qdisc *qdisc_alloc(struct netdev_ + lockdep_set_class(&sch->busylock, + dev->qdisc_tx_busylock ?: &qdisc_tx_busylock); + ++#ifdef CONFIG_PREEMPT_RT_BASE ++ seqlock_init(&sch->running); ++ lockdep_set_class(&sch->running.seqcount, ++ dev->qdisc_running_key ?: &qdisc_running_key); ++ lockdep_set_class(&sch->running.lock, ++ dev->qdisc_running_key ?: &qdisc_running_key); ++#else + seqcount_init(&sch->running); + lockdep_set_class(&sch->running, + dev->qdisc_running_key ?: &qdisc_running_key); ++#endif + + sch->ops = ops; + sch->enqueue = ops->enqueue; diff --git a/patches/features/all/rt/net-add-a-lock-around-icmp_sk.patch b/patches/features/all/rt/net-add-a-lock-around-icmp_sk.patch new file mode 100644 index 00000000000..406491ca71f --- /dev/null +++ b/patches/features/all/rt/net-add-a-lock-around-icmp_sk.patch @@ -0,0 +1,73 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 31 Aug 2016 17:54:09 +0200 +Subject: [PATCH] net: add a lock around icmp_sk() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +It looks like the this_cpu_ptr() access in icmp_sk() is protected with +local_bh_disable(). To avoid missing serialization in -RT I am adding +here a local lock. No crash has been observed, this is just precaution. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + net/ipv4/icmp.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/net/ipv4/icmp.c ++++ b/net/ipv4/icmp.c +@@ -77,6 +77,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -204,6 +205,8 @@ static const struct icmp_control icmp_po + * + * On SMP we have one ICMP socket per-cpu. + */ ++static DEFINE_LOCAL_IRQ_LOCK(icmp_sk_lock); ++ + static struct sock *icmp_sk(struct net *net) + { + return *this_cpu_ptr(net->ipv4.icmp_sk); +@@ -215,12 +218,14 @@ static inline struct sock *icmp_xmit_loc + + local_bh_disable(); + ++ local_lock(icmp_sk_lock); + sk = icmp_sk(net); + + if (unlikely(!spin_trylock(&sk->sk_lock.slock))) { + /* This can happen if the output path signals a + * dst_link_failure() for an outgoing ICMP packet. + */ ++ local_unlock(icmp_sk_lock); + local_bh_enable(); + return NULL; + } +@@ -230,6 +235,7 @@ static inline struct sock *icmp_xmit_loc + static inline void icmp_xmit_unlock(struct sock *sk) + { + spin_unlock_bh(&sk->sk_lock.slock); ++ local_unlock(icmp_sk_lock); + } + + int sysctl_icmp_msgs_per_sec __read_mostly = 1000; +@@ -358,6 +364,7 @@ static void icmp_push_reply(struct icmp_ + struct sock *sk; + struct sk_buff *skb; + ++ local_lock(icmp_sk_lock); + sk = icmp_sk(dev_net((*rt)->dst.dev)); + if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, + icmp_param->data_len+icmp_param->head_len, +@@ -380,6 +387,7 @@ static void icmp_push_reply(struct icmp_ + skb->ip_summed = CHECKSUM_NONE; + ip_push_pending_frames(sk, fl4); + } ++ local_unlock(icmp_sk_lock); + } + + /* diff --git a/patches/features/all/rt/net-add-back-the-missing-serialization-in-ip_send_un.patch b/patches/features/all/rt/net-add-back-the-missing-serialization-in-ip_send_un.patch new file mode 100644 index 00000000000..2890a5da95e --- /dev/null +++ b/patches/features/all/rt/net-add-back-the-missing-serialization-in-ip_send_un.patch @@ -0,0 +1,94 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 31 Aug 2016 17:21:56 +0200 +Subject: [PATCH] net: add back the missing serialization in + ip_send_unicast_reply() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Some time ago Sami Pietikäinen reported a crash on -RT in +ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire +(v3.12.8-rt11). Later (v3.18.8) the code was reworked and I dropped the +patch. As it turns out it was mistake. +I have reports that the same crash is possible with a similar backtrace. +It seems that vanilla protects access to this_cpu_ptr() via +local_bh_disable(). This does not work the on -RT since we can have +NET_RX and NET_TX running in parallel on the same CPU. +This is brings back the old locks. + +|Unable to handle kernel NULL pointer dereference at virtual address 00000010 +|PC is at __ip_make_skb+0x198/0x3e8 +|[] (__ip_make_skb) from [] (ip_push_pending_frames+0x20/0x40) +|[] (ip_push_pending_frames) from [] (ip_send_unicast_reply+0x210/0x22c) +|[] (ip_send_unicast_reply) from [] (tcp_v4_send_reset+0x190/0x1c0) +|[] (tcp_v4_send_reset) from [] (tcp_v4_do_rcv+0x22c/0x288) +|[] (tcp_v4_do_rcv) from [] (release_sock+0xb4/0x150) +|[] (release_sock) from [] (tcp_close+0x240/0x454) +|[] (tcp_close) from [] (inet_release+0x74/0x7c) +|[] (inet_release) from [] (sock_release+0x30/0xb0) +|[] (sock_release) from [] (sock_close+0x1c/0x24) +|[] (sock_close) from [] (__fput+0xe8/0x20c) +|[] (__fput) from [] (____fput+0x18/0x1c) +|[] (____fput) from [] (task_work_run+0xa4/0xb8) +|[] (task_work_run) from [] (do_work_pending+0xd0/0xe4) +|[] (do_work_pending) from [] (work_pending+0xc/0x20) +|Code: e3530001 8a000001 e3a00040 ea000011 (e5973010) + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + net/ipv4/tcp_ipv4.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/net/ipv4/tcp_ipv4.c ++++ b/net/ipv4/tcp_ipv4.c +@@ -62,6 +62,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -564,6 +565,7 @@ void tcp_v4_send_check(struct sock *sk, + } + EXPORT_SYMBOL(tcp_v4_send_check); + ++static DEFINE_LOCAL_IRQ_LOCK(tcp_sk_lock); + /* + * This routine will send an RST to the other tcp. + * +@@ -691,6 +693,8 @@ static void tcp_v4_send_reset(const stru + offsetof(struct inet_timewait_sock, tw_bound_dev_if)); + + arg.tos = ip_hdr(skb)->tos; ++ ++ local_lock(tcp_sk_lock); + local_bh_disable(); + ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk), + skb, &TCP_SKB_CB(skb)->header.h4.opt, +@@ -700,6 +704,7 @@ static void tcp_v4_send_reset(const stru + __TCP_INC_STATS(net, TCP_MIB_OUTSEGS); + __TCP_INC_STATS(net, TCP_MIB_OUTRSTS); + local_bh_enable(); ++ local_unlock(tcp_sk_lock); + + #ifdef CONFIG_TCP_MD5SIG + out: +@@ -775,6 +780,7 @@ static void tcp_v4_send_ack(struct net * + if (oif) + arg.bound_dev_if = oif; + arg.tos = tos; ++ local_lock(tcp_sk_lock); + local_bh_disable(); + ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk), + skb, &TCP_SKB_CB(skb)->header.h4.opt, +@@ -783,6 +789,7 @@ static void tcp_v4_send_ack(struct net * + + __TCP_INC_STATS(net, TCP_MIB_OUTSEGS); + local_bh_enable(); ++ local_unlock(tcp_sk_lock); + } + + static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb) diff --git a/patches/features/all/rt/net-another-local-irq-disable-alloc-atomic-headache.patch b/patches/features/all/rt/net-another-local-irq-disable-alloc-atomic-headache.patch new file mode 100644 index 00000000000..3b0532d0a84 --- /dev/null +++ b/patches/features/all/rt/net-another-local-irq-disable-alloc-atomic-headache.patch @@ -0,0 +1,59 @@ +From: Thomas Gleixner +Date: Wed, 26 Sep 2012 16:21:08 +0200 +Subject: net: Another local_irq_disable/kmalloc headache +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Replace it by a local lock. Though that's pretty inefficient :( + +Signed-off-by: Thomas Gleixner +--- + net/core/skbuff.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -64,6 +64,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -360,6 +361,7 @@ struct napi_alloc_cache { + + static DEFINE_PER_CPU(struct page_frag_cache, netdev_alloc_cache); + static DEFINE_PER_CPU(struct napi_alloc_cache, napi_alloc_cache); ++static DEFINE_LOCAL_IRQ_LOCK(netdev_alloc_lock); + + static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask) + { +@@ -367,10 +369,10 @@ static void *__netdev_alloc_frag(unsigne + unsigned long flags; + void *data; + +- local_irq_save(flags); ++ local_lock_irqsave(netdev_alloc_lock, flags); + nc = this_cpu_ptr(&netdev_alloc_cache); + data = __alloc_page_frag(nc, fragsz, gfp_mask); +- local_irq_restore(flags); ++ local_unlock_irqrestore(netdev_alloc_lock, flags); + return data; + } + +@@ -438,13 +440,13 @@ struct sk_buff *__netdev_alloc_skb(struc + if (sk_memalloc_socks()) + gfp_mask |= __GFP_MEMALLOC; + +- local_irq_save(flags); ++ local_lock_irqsave(netdev_alloc_lock, flags); + + nc = this_cpu_ptr(&netdev_alloc_cache); + data = __alloc_page_frag(nc, len, gfp_mask); + pfmemalloc = nc->pfmemalloc; + +- local_irq_restore(flags); ++ local_unlock_irqrestore(netdev_alloc_lock, flags); + + if (unlikely(!data)) + return NULL; diff --git a/patches/features/all/rt/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch b/patches/features/all/rt/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch new file mode 100644 index 00000000000..a7ddead1e4d --- /dev/null +++ b/patches/features/all/rt/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch @@ -0,0 +1,47 @@ +Subject: net/core/cpuhotplug: Drain input_pkt_queue lockless +From: Grygorii Strashko +Date: Fri, 9 Oct 2015 09:25:49 -0500 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +I can constantly see below error report with 4.1 RT-kernel on TI ARM dra7-evm +if I'm trying to unplug cpu1: + +[ 57.737589] CPU1: shutdown +[ 57.767537] BUG: spinlock bad magic on CPU#0, sh/137 +[ 57.767546] lock: 0xee994730, .magic: 00000000, .owner: /-1, .owner_cpu: 0 +[ 57.767552] CPU: 0 PID: 137 Comm: sh Not tainted 4.1.10-rt8-01700-g2c38702-dirty #55 +[ 57.767555] Hardware name: Generic DRA74X (Flattened Device Tree) +[ 57.767568] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) +[ 57.767579] [] (show_stack) from [] (dump_stack+0x84/0xa0) +[ 57.767593] [] (dump_stack) from [] (spin_dump+0x84/0xac) +[ 57.767603] [] (spin_dump) from [] (spin_bug+0x34/0x38) +[ 57.767614] [] (spin_bug) from [] (do_raw_spin_lock+0x168/0x1c0) +[ 57.767624] [] (do_raw_spin_lock) from [] (_raw_spin_lock+0x4c/0x54) +[ 57.767631] [] (_raw_spin_lock) from [] (rt_spin_lock_slowlock+0x5c/0x374) +[ 57.767638] [] (rt_spin_lock_slowlock) from [] (rt_spin_lock+0x38/0x70) +[ 57.767649] [] (rt_spin_lock) from [] (skb_dequeue+0x28/0x7c) +[ 57.767662] [] (skb_dequeue) from [] (dev_cpu_callback+0x1b8/0x240) +[ 57.767673] [] (dev_cpu_callback) from [] (notifier_call_chain+0x3c/0xb4) + +The reason is that skb_dequeue is taking skb->lock, but RT changed the +core code to use a raw spinlock. The non-raw lock is not initialized +on purpose to catch exactly this kind of problem. + +Fixes: 91df05da13a6 'net: Use skbufhead with raw lock' +Signed-off-by: Thomas Gleixner +Cc: stable-rt@vger.kernel.org +--- + net/core/dev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -8022,7 +8022,7 @@ static int dev_cpu_callback(struct notif + netif_rx_ni(skb); + input_queue_head_incr(oldsd); + } +- while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) { ++ while ((skb = __skb_dequeue(&oldsd->input_pkt_queue))) { + netif_rx_ni(skb); + input_queue_head_incr(oldsd); + } diff --git a/patches/features/all/rt/net-core-protect-users-of-napi_alloc_cache-against-r.patch b/patches/features/all/rt/net-core-protect-users-of-napi_alloc_cache-against-r.patch new file mode 100644 index 00000000000..04abd8cfbfc --- /dev/null +++ b/patches/features/all/rt/net-core-protect-users-of-napi_alloc_cache-against-r.patch @@ -0,0 +1,113 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 15 Jan 2016 16:33:34 +0100 +Subject: net/core: protect users of napi_alloc_cache against + reentrance +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On -RT the code running in BH can not be moved to another CPU so CPU +local variable remain local. However the code can be preempted +and another task may enter BH accessing the same CPU using the same +napi_alloc_cache variable. +This patch ensures that each user of napi_alloc_cache uses a local lock. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + net/core/skbuff.c | 25 +++++++++++++++++++------ + 1 file changed, 19 insertions(+), 6 deletions(-) + +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -362,6 +362,7 @@ struct napi_alloc_cache { + static DEFINE_PER_CPU(struct page_frag_cache, netdev_alloc_cache); + static DEFINE_PER_CPU(struct napi_alloc_cache, napi_alloc_cache); + static DEFINE_LOCAL_IRQ_LOCK(netdev_alloc_lock); ++static DEFINE_LOCAL_IRQ_LOCK(napi_alloc_cache_lock); + + static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask) + { +@@ -391,9 +392,13 @@ EXPORT_SYMBOL(netdev_alloc_frag); + + static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask) + { +- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache); ++ struct napi_alloc_cache *nc; ++ void *data; + +- return __alloc_page_frag(&nc->page, fragsz, gfp_mask); ++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache); ++ data = __alloc_page_frag(&nc->page, fragsz, gfp_mask); ++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache); ++ return data; + } + + void *napi_alloc_frag(unsigned int fragsz) +@@ -487,9 +492,10 @@ EXPORT_SYMBOL(__netdev_alloc_skb); + struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len, + gfp_t gfp_mask) + { +- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache); ++ struct napi_alloc_cache *nc; + struct sk_buff *skb; + void *data; ++ bool pfmemalloc; + + len += NET_SKB_PAD + NET_IP_ALIGN; + +@@ -507,7 +513,10 @@ struct sk_buff *__napi_alloc_skb(struct + if (sk_memalloc_socks()) + gfp_mask |= __GFP_MEMALLOC; + ++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + data = __alloc_page_frag(&nc->page, len, gfp_mask); ++ pfmemalloc = nc->page.pfmemalloc; ++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + if (unlikely(!data)) + return NULL; + +@@ -518,7 +527,7 @@ struct sk_buff *__napi_alloc_skb(struct + } + + /* use OR instead of assignment to avoid clearing of bits in mask */ +- if (nc->page.pfmemalloc) ++ if (pfmemalloc) + skb->pfmemalloc = 1; + skb->head_frag = 1; + +@@ -762,23 +771,26 @@ EXPORT_SYMBOL(consume_skb); + + void __kfree_skb_flush(void) + { +- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache); ++ struct napi_alloc_cache *nc; + ++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + /* flush skb_cache if containing objects */ + if (nc->skb_count) { + kmem_cache_free_bulk(skbuff_head_cache, nc->skb_count, + nc->skb_cache); + nc->skb_count = 0; + } ++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + } + + static inline void _kfree_skb_defer(struct sk_buff *skb) + { +- struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache); ++ struct napi_alloc_cache *nc; + + /* drop skb->head and call any destructors for packet */ + skb_release_all(skb); + ++ nc = &get_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + /* record skb to CPU local list */ + nc->skb_cache[nc->skb_count++] = skb; + +@@ -793,6 +805,7 @@ static inline void _kfree_skb_defer(stru + nc->skb_cache); + nc->skb_count = 0; + } ++ put_locked_var(napi_alloc_cache_lock, napi_alloc_cache); + } + void __kfree_skb_defer(struct sk_buff *skb) + { diff --git a/patches/features/all/rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/patches/features/all/rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch new file mode 100644 index 00000000000..84d4397c923 --- /dev/null +++ b/patches/features/all/rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -0,0 +1,35 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 30 Mar 2016 13:36:29 +0200 +Subject: [PATCH] net: dev: always take qdisc's busylock in __dev_xmit_skb() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The root-lock is dropped before dev_hard_start_xmit() is invoked and after +setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away +by a task with a higher priority then the task with the higher priority +won't be able to submit packets to the NIC directly instead they will be +enqueued into the Qdisc. The NIC will remain idle until the task(s) with +higher priority leave the CPU and the task with lower priority gets back +and finishes the job. + +If we take always the busylock we ensure that the RT task can boost the +low-prio task and submit the packet. + +Signed-off-by: Sebastian Andrzej Siewior +--- + net/core/dev.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3080,7 +3080,11 @@ static inline int __dev_xmit_skb(struct + * This permits qdisc->running owner to get the lock more + * often and dequeue packets faster. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ contended = true; ++#else + contended = qdisc_is_running(q); ++#endif + if (unlikely(contended)) + spin_lock(&q->busylock); + diff --git a/patches/features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch b/patches/features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch new file mode 100644 index 00000000000..c8c4c5ad36e --- /dev/null +++ b/patches/features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch @@ -0,0 +1,75 @@ +Subject: net: netfilter: Serialize xt_write_recseq sections on RT +From: Thomas Gleixner +Date: Sun, 28 Oct 2012 11:18:08 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The netfilter code relies only on the implicit semantics of +local_bh_disable() for serializing wt_write_recseq sections. RT breaks +that and needs explicit serialization here. + +Reported-by: Peter LaDow +Signed-off-by: Thomas Gleixner + +--- + include/linux/netfilter/x_tables.h | 7 +++++++ + net/netfilter/core.c | 6 ++++++ + 2 files changed, 13 insertions(+) + +--- a/include/linux/netfilter/x_tables.h ++++ b/include/linux/netfilter/x_tables.h +@@ -4,6 +4,7 @@ + + #include + #include ++#include + #include + + /* Test a struct->invflags and a boolean for inequality */ +@@ -300,6 +301,8 @@ void xt_free_table_info(struct xt_table_ + */ + DECLARE_PER_CPU(seqcount_t, xt_recseq); + ++DECLARE_LOCAL_IRQ_LOCK(xt_write_lock); ++ + /* xt_tee_enabled - true if x_tables needs to handle reentrancy + * + * Enabled if current ip(6)tables ruleset has at least one -j TEE rule. +@@ -320,6 +323,9 @@ static inline unsigned int xt_write_recs + { + unsigned int addend; + ++ /* RT protection */ ++ local_lock(xt_write_lock); ++ + /* + * Low order bit of sequence is set if we already + * called xt_write_recseq_begin(). +@@ -350,6 +356,7 @@ static inline void xt_write_recseq_end(u + /* this is kind of a write_seqcount_end(), but addend is 0 or 1 */ + smp_wmb(); + __this_cpu_add(xt_recseq.sequence, addend); ++ local_unlock(xt_write_lock); + } + + /* +--- a/net/netfilter/core.c ++++ b/net/netfilter/core.c +@@ -22,12 +22,18 @@ + #include + #include + #include ++#include + #include + #include + #include + + #include "nf_internals.h" + ++#ifdef CONFIG_PREEMPT_RT_BASE ++DEFINE_LOCAL_IRQ_LOCK(xt_write_lock); ++EXPORT_PER_CPU_SYMBOL(xt_write_lock); ++#endif ++ + static DEFINE_MUTEX(afinfo_mutex); + + const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly; diff --git a/patches/features/all/rt/net-make-devnet_rename_seq-a-mutex.patch b/patches/features/all/rt/net-make-devnet_rename_seq-a-mutex.patch new file mode 100644 index 00000000000..9bd5ea3f448 --- /dev/null +++ b/patches/features/all/rt/net-make-devnet_rename_seq-a-mutex.patch @@ -0,0 +1,107 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 20 Mar 2013 18:06:20 +0100 +Subject: net: Add a mutex around devnet_rename_seq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On RT write_seqcount_begin() disables preemption and device_rename() +allocates memory with GFP_KERNEL and grabs later the sysfs_mutex +mutex. Serialize with a mutex and add use the non preemption disabling +__write_seqcount_begin(). + +To avoid writer starvation, let the reader grab the mutex and release +it when it detects a writer in progress. This keeps the normal case +(no reader on the fly) fast. + +[ tglx: Instead of replacing the seqcount by a mutex, add the mutex ] + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Thomas Gleixner +--- + net/core/dev.c | 34 ++++++++++++++++++++-------------- + 1 file changed, 20 insertions(+), 14 deletions(-) + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -190,6 +190,7 @@ static unsigned int napi_gen_id = NR_CPU + static DEFINE_READ_MOSTLY_HASHTABLE(napi_hash, 8); + + static seqcount_t devnet_rename_seq; ++static DEFINE_MUTEX(devnet_rename_mutex); + + static inline void dev_base_seq_inc(struct net *net) + { +@@ -888,7 +889,8 @@ int netdev_get_name(struct net *net, cha + strcpy(name, dev->name); + rcu_read_unlock(); + if (read_seqcount_retry(&devnet_rename_seq, seq)) { +- cond_resched(); ++ mutex_lock(&devnet_rename_mutex); ++ mutex_unlock(&devnet_rename_mutex); + goto retry; + } + +@@ -1157,20 +1159,17 @@ int dev_change_name(struct net_device *d + if (dev->flags & IFF_UP) + return -EBUSY; + +- write_seqcount_begin(&devnet_rename_seq); ++ mutex_lock(&devnet_rename_mutex); ++ __raw_write_seqcount_begin(&devnet_rename_seq); + +- if (strncmp(newname, dev->name, IFNAMSIZ) == 0) { +- write_seqcount_end(&devnet_rename_seq); +- return 0; +- } ++ if (strncmp(newname, dev->name, IFNAMSIZ) == 0) ++ goto outunlock; + + memcpy(oldname, dev->name, IFNAMSIZ); + + err = dev_get_valid_name(net, dev, newname); +- if (err < 0) { +- write_seqcount_end(&devnet_rename_seq); +- return err; +- } ++ if (err < 0) ++ goto outunlock; + + if (oldname[0] && !strchr(oldname, '%')) + netdev_info(dev, "renamed from %s\n", oldname); +@@ -1183,11 +1182,12 @@ int dev_change_name(struct net_device *d + if (ret) { + memcpy(dev->name, oldname, IFNAMSIZ); + dev->name_assign_type = old_assign_type; +- write_seqcount_end(&devnet_rename_seq); +- return ret; ++ err = ret; ++ goto outunlock; + } + +- write_seqcount_end(&devnet_rename_seq); ++ __raw_write_seqcount_end(&devnet_rename_seq); ++ mutex_unlock(&devnet_rename_mutex); + + netdev_adjacent_rename_links(dev, oldname); + +@@ -1208,7 +1208,8 @@ int dev_change_name(struct net_device *d + /* err >= 0 after dev_alloc_name() or stores the first errno */ + if (err >= 0) { + err = ret; +- write_seqcount_begin(&devnet_rename_seq); ++ mutex_lock(&devnet_rename_mutex); ++ __raw_write_seqcount_begin(&devnet_rename_seq); + memcpy(dev->name, oldname, IFNAMSIZ); + memcpy(oldname, newname, IFNAMSIZ); + dev->name_assign_type = old_assign_type; +@@ -1221,6 +1222,11 @@ int dev_change_name(struct net_device *d + } + + return err; ++ ++outunlock: ++ __raw_write_seqcount_end(&devnet_rename_seq); ++ mutex_unlock(&devnet_rename_mutex); ++ return err; + } + + /** diff --git a/patches/features/all/rt/net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/patches/features/all/rt/net-move-xmit_recursion-to-per-task-variable-on-RT.patch new file mode 100644 index 00000000000..54f34558ff9 --- /dev/null +++ b/patches/features/all/rt/net-move-xmit_recursion-to-per-task-variable-on-RT.patch @@ -0,0 +1,151 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 13 Jan 2016 15:55:02 +0100 +Subject: net: move xmit_recursion to per-task variable on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +A softirq on -RT can be preempted. That means one task is in +__dev_queue_xmit(), gets preempted and another task may enter +__dev_queue_xmit() aw well. netperf together with a bridge device +will then trigger the `recursion alert` because each task increments +the xmit_recursion variable which is per-CPU. +A virtual device like br0 is required to trigger this warning. + +This patch moves the counter to per task instead per-CPU so it counts +the recursion properly on -RT. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/netdevice.h | 41 ++++++++++++++++++++++++++++++++++++++++- + include/linux/sched.h | 3 +++ + net/core/dev.c | 9 +++++---- + net/core/filter.c | 6 +++--- + 4 files changed, 51 insertions(+), 8 deletions(-) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -2461,14 +2461,53 @@ void netdev_freemem(struct net_device *d + void synchronize_net(void); + int init_dummy_netdev(struct net_device *dev); + +-DECLARE_PER_CPU(int, xmit_recursion); + #define XMIT_RECURSION_LIMIT 10 ++#ifdef CONFIG_PREEMPT_RT_FULL ++static inline int dev_recursion_level(void) ++{ ++ return current->xmit_recursion; ++} ++ ++static inline int xmit_rec_read(void) ++{ ++ return current->xmit_recursion; ++} ++ ++static inline void xmit_rec_inc(void) ++{ ++ current->xmit_recursion++; ++} ++ ++static inline void xmit_rec_dec(void) ++{ ++ current->xmit_recursion--; ++} ++ ++#else ++ ++DECLARE_PER_CPU(int, xmit_recursion); + + static inline int dev_recursion_level(void) + { + return this_cpu_read(xmit_recursion); + } + ++static inline int xmit_rec_read(void) ++{ ++ return __this_cpu_read(xmit_recursion); ++} ++ ++static inline void xmit_rec_inc(void) ++{ ++ __this_cpu_inc(xmit_recursion); ++} ++ ++static inline void xmit_rec_dec(void) ++{ ++ __this_cpu_dec(xmit_recursion); ++} ++#endif ++ + struct net_device *dev_get_by_index(struct net *net, int ifindex); + struct net_device *__dev_get_by_index(struct net *net, int ifindex); + struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1982,6 +1982,9 @@ struct task_struct { + #ifdef CONFIG_DEBUG_ATOMIC_SLEEP + unsigned long task_state_change; + #endif ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int xmit_recursion; ++#endif + int pagefault_disabled; + #ifdef CONFIG_MMU + struct task_struct *oom_reaper_list; +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3143,8 +3143,10 @@ static void skb_update_prio(struct sk_bu + #define skb_update_prio(skb) + #endif + ++#ifndef CONFIG_PREEMPT_RT_FULL + DEFINE_PER_CPU(int, xmit_recursion); + EXPORT_SYMBOL(xmit_recursion); ++#endif + + /** + * dev_loopback_xmit - loop back @skb +@@ -3378,8 +3380,7 @@ static int __dev_queue_xmit(struct sk_bu + int cpu = smp_processor_id(); /* ok because BHs are off */ + + if (txq->xmit_lock_owner != cpu) { +- if (unlikely(__this_cpu_read(xmit_recursion) > +- XMIT_RECURSION_LIMIT)) ++ if (unlikely(xmit_rec_read() > XMIT_RECURSION_LIMIT)) + goto recursion_alert; + + skb = validate_xmit_skb(skb, dev); +@@ -3389,9 +3390,9 @@ static int __dev_queue_xmit(struct sk_bu + HARD_TX_LOCK(dev, txq, cpu); + + if (!netif_xmit_stopped(txq)) { +- __this_cpu_inc(xmit_recursion); ++ xmit_rec_inc(); + skb = dev_hard_start_xmit(skb, dev, txq, &rc); +- __this_cpu_dec(xmit_recursion); ++ xmit_rec_dec(); + if (dev_xmit_complete(rc)) { + HARD_TX_UNLOCK(dev, txq); + goto out; +--- a/net/core/filter.c ++++ b/net/core/filter.c +@@ -1645,7 +1645,7 @@ static inline int __bpf_tx_skb(struct ne + { + int ret; + +- if (unlikely(__this_cpu_read(xmit_recursion) > XMIT_RECURSION_LIMIT)) { ++ if (unlikely(xmit_rec_read() > XMIT_RECURSION_LIMIT)) { + net_crit_ratelimited("bpf: recursion limit reached on datapath, buggy bpf program?\n"); + kfree_skb(skb); + return -ENETDOWN; +@@ -1653,9 +1653,9 @@ static inline int __bpf_tx_skb(struct ne + + skb->dev = dev; + +- __this_cpu_inc(xmit_recursion); ++ xmit_rec_inc(); + ret = dev_queue_xmit(skb); +- __this_cpu_dec(xmit_recursion); ++ xmit_rec_dec(); + + return ret; + } diff --git a/patches/features/all/rt/net-prevent-abba-deadlock.patch b/patches/features/all/rt/net-prevent-abba-deadlock.patch new file mode 100644 index 00000000000..7e5f29871f9 --- /dev/null +++ b/patches/features/all/rt/net-prevent-abba-deadlock.patch @@ -0,0 +1,112 @@ +Subject: net-flip-lock-dep-thingy.patch +From: Thomas Gleixner +Date: Tue, 28 Jun 2011 10:59:58 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +======================================================= +[ INFO: possible circular locking dependency detected ] +3.0.0-rc3+ #26 +------------------------------------------------------- +ip/1104 is trying to acquire lock: + (local_softirq_lock){+.+...}, at: [] __local_lock+0x25/0x68 + +but task is already holding lock: + (sk_lock-AF_INET){+.+...}, at: [] lock_sock+0x10/0x12 + +which lock already depends on the new lock. + + +the existing dependency chain (in reverse order) is: + +-> #1 (sk_lock-AF_INET){+.+...}: + [] lock_acquire+0x103/0x12e + [] lock_sock_nested+0x82/0x92 + [] lock_sock+0x10/0x12 + [] tcp_close+0x1b/0x355 + [] inet_release+0xc3/0xcd + [] sock_release+0x1f/0x74 + [] sock_close+0x27/0x2b + [] fput+0x11d/0x1e3 + [] filp_close+0x70/0x7b + [] sys_close+0xf8/0x13d + [] system_call_fastpath+0x16/0x1b + +-> #0 (local_softirq_lock){+.+...}: + [] __lock_acquire+0xacc/0xdc8 + [] lock_acquire+0x103/0x12e + [] _raw_spin_lock+0x3b/0x4a + [] __local_lock+0x25/0x68 + [] local_bh_disable+0x36/0x3b + [] _raw_write_lock_bh+0x16/0x4f + [] tcp_close+0x159/0x355 + [] inet_release+0xc3/0xcd + [] sock_release+0x1f/0x74 + [] sock_close+0x27/0x2b + [] fput+0x11d/0x1e3 + [] filp_close+0x70/0x7b + [] sys_close+0xf8/0x13d + [] system_call_fastpath+0x16/0x1b + +other info that might help us debug this: + + Possible unsafe locking scenario: + + CPU0 CPU1 + ---- ---- + lock(sk_lock-AF_INET); + lock(local_softirq_lock); + lock(sk_lock-AF_INET); + lock(local_softirq_lock); + + *** DEADLOCK *** + +1 lock held by ip/1104: + #0: (sk_lock-AF_INET){+.+...}, at: [] lock_sock+0x10/0x12 + +stack backtrace: +Pid: 1104, comm: ip Not tainted 3.0.0-rc3+ #26 +Call Trace: + [] print_circular_bug+0x1f8/0x209 + [] __lock_acquire+0xacc/0xdc8 + [] ? __local_lock+0x25/0x68 + [] lock_acquire+0x103/0x12e + [] ? __local_lock+0x25/0x68 + [] ? get_parent_ip+0x11/0x41 + [] _raw_spin_lock+0x3b/0x4a + [] ? __local_lock+0x25/0x68 + [] ? get_parent_ip+0x28/0x41 + [] __local_lock+0x25/0x68 + [] local_bh_disable+0x36/0x3b + [] ? lock_sock+0x10/0x12 + [] _raw_write_lock_bh+0x16/0x4f + [] tcp_close+0x159/0x355 + [] inet_release+0xc3/0xcd + [] sock_release+0x1f/0x74 + [] sock_close+0x27/0x2b + [] fput+0x11d/0x1e3 + [] filp_close+0x70/0x7b + [] sys_close+0xf8/0x13d + [] system_call_fastpath+0x16/0x1b + + +Signed-off-by: Thomas Gleixner +--- + net/core/sock.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/net/core/sock.c ++++ b/net/core/sock.c +@@ -2488,12 +2488,11 @@ void lock_sock_nested(struct sock *sk, i + if (sk->sk_lock.owned) + __lock_sock(sk); + sk->sk_lock.owned = 1; +- spin_unlock(&sk->sk_lock.slock); ++ spin_unlock_bh(&sk->sk_lock.slock); + /* + * The sk_lock has mutex_lock() semantics here: + */ + mutex_acquire(&sk->sk_lock.dep_map, subclass, 0, _RET_IP_); +- local_bh_enable(); + } + EXPORT_SYMBOL(lock_sock_nested); + diff --git a/patches/features/all/rt/net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/patches/features/all/rt/net-provide-a-way-to-delegate-processing-a-softirq-t.patch new file mode 100644 index 00000000000..15a2d786ceb --- /dev/null +++ b/patches/features/all/rt/net-provide-a-way-to-delegate-processing-a-softirq-t.patch @@ -0,0 +1,79 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 20 Jan 2016 15:39:05 +0100 +Subject: net: provide a way to delegate processing a softirq to + ksoftirqd +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +If the NET_RX uses up all of his budget it moves the following NAPI +invocations into the `ksoftirqd`. On -RT it does not do so. Instead it +rises the NET_RX softirq in its current context again. + +In order to get closer to mainline's behaviour this patch provides +__raise_softirq_irqoff_ksoft() which raises the softirq in the ksoftird. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/interrupt.h | 8 ++++++++ + kernel/softirq.c | 21 +++++++++++++++++++++ + net/core/dev.c | 2 +- + 3 files changed, 30 insertions(+), 1 deletion(-) + +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -496,6 +496,14 @@ extern void thread_do_softirq(void); + extern void open_softirq(int nr, void (*action)(struct softirq_action *)); + extern void softirq_init(void); + extern void __raise_softirq_irqoff(unsigned int nr); ++#ifdef CONFIG_PREEMPT_RT_FULL ++extern void __raise_softirq_irqoff_ksoft(unsigned int nr); ++#else ++static inline void __raise_softirq_irqoff_ksoft(unsigned int nr) ++{ ++ __raise_softirq_irqoff(nr); ++} ++#endif + + extern void raise_softirq_irqoff(unsigned int nr); + extern void raise_softirq(unsigned int nr); +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -685,6 +685,27 @@ void __raise_softirq_irqoff(unsigned int + } + + /* ++ * Same as __raise_softirq_irqoff() but will process them in ksoftirqd ++ */ ++void __raise_softirq_irqoff_ksoft(unsigned int nr) ++{ ++ unsigned int mask; ++ ++ if (WARN_ON_ONCE(!__this_cpu_read(ksoftirqd) || ++ !__this_cpu_read(ktimer_softirqd))) ++ return; ++ mask = 1UL << nr; ++ ++ trace_softirq_raise(nr); ++ or_softirq_pending(mask); ++ if (mask & TIMER_SOFTIRQS) ++ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask; ++ else ++ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask; ++ wakeup_proper_softirq(nr); ++} ++ ++/* + * This function must run with irqs disabled! + */ + void raise_softirq_irqoff(unsigned int nr) +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -5255,7 +5255,7 @@ static __latent_entropy void net_rx_acti + list_splice_tail(&repoll, &list); + list_splice(&list, &sd->poll_list); + if (!list_empty(&sd->poll_list)) +- __raise_softirq_irqoff(NET_RX_SOFTIRQ); ++ __raise_softirq_irqoff_ksoft(NET_RX_SOFTIRQ); + + net_rps_action_and_irq_enable(sd); + } diff --git a/patches/features/all/rt/net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch b/patches/features/all/rt/net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch new file mode 100644 index 00000000000..e7093b654b9 --- /dev/null +++ b/patches/features/all/rt/net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch @@ -0,0 +1,58 @@ +From: Marc Kleine-Budde +Date: Wed, 5 Mar 2014 00:49:47 +0100 +Subject: net: sched: Use msleep() instead of yield() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50 +(by default). If a high priority userspace process tries to shut down a busy +network interface it might spin in a yield loop waiting for the device to +become idle. With the interrupt thread having a lower priority than the +looping process it might never be scheduled and so result in a deadlock on UP +systems. + +With Magic SysRq the following backtrace can be produced: + +> test_app R running 0 174 168 0x00000000 +> [] (__schedule+0x220/0x3fc) from [] (preempt_schedule_irq+0x48/0x80) +> [] (preempt_schedule_irq+0x48/0x80) from [] (svc_preempt+0x8/0x20) +> [] (svc_preempt+0x8/0x20) from [] (local_bh_enable+0x18/0x88) +> [] (local_bh_enable+0x18/0x88) from [] (dev_deactivate_many+0x220/0x264) +> [] (dev_deactivate_many+0x220/0x264) from [] (__dev_close_many+0x64/0xd4) +> [] (__dev_close_many+0x64/0xd4) from [] (__dev_close+0x28/0x3c) +> [] (__dev_close+0x28/0x3c) from [] (__dev_change_flags+0x88/0x130) +> [] (__dev_change_flags+0x88/0x130) from [] (dev_change_flags+0x10/0x48) +> [] (dev_change_flags+0x10/0x48) from [] (do_setlink+0x370/0x7ec) +> [] (do_setlink+0x370/0x7ec) from [] (rtnl_newlink+0x2b4/0x450) +> [] (rtnl_newlink+0x2b4/0x450) from [] (rtnetlink_rcv_msg+0x158/0x1f4) +> [] (rtnetlink_rcv_msg+0x158/0x1f4) from [] (netlink_rcv_skb+0xac/0xc0) +> [] (netlink_rcv_skb+0xac/0xc0) from [] (rtnetlink_rcv+0x18/0x24) +> [] (rtnetlink_rcv+0x18/0x24) from [] (netlink_unicast+0x13c/0x198) +> [] (netlink_unicast+0x13c/0x198) from [] (netlink_sendmsg+0x264/0x2e0) +> [] (netlink_sendmsg+0x264/0x2e0) from [] (sock_sendmsg+0x78/0x98) +> [] (sock_sendmsg+0x78/0x98) from [] (___sys_sendmsg.part.25+0x268/0x278) +> [] (___sys_sendmsg.part.25+0x268/0x278) from [] (__sys_sendmsg+0x48/0x78) +> [] (__sys_sendmsg+0x48/0x78) from [] (ret_fast_syscall+0x0/0x2c) + +This patch works around the problem by replacing yield() by msleep(1), giving +the interrupt thread time to finish, similar to other changes contained in the +rt patch set. Using wait_for_completion() instead would probably be a better +solution. + + +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Sebastian Andrzej Siewior +--- + net/sched/sch_generic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/sched/sch_generic.c ++++ b/net/sched/sch_generic.c +@@ -925,7 +925,7 @@ void dev_deactivate_many(struct list_hea + /* Wait for outstanding qdisc_run calls. */ + list_for_each_entry(dev, head, close_list) + while (some_qdisc_is_busy(dev)) +- yield(); ++ msleep(1); + } + + void dev_deactivate(struct net_device *dev) diff --git a/patches/features/all/rt/net-use-cpu-chill.patch b/patches/features/all/rt/net-use-cpu-chill.patch new file mode 100644 index 00000000000..c61ece21767 --- /dev/null +++ b/patches/features/all/rt/net-use-cpu-chill.patch @@ -0,0 +1,63 @@ +Subject: net: Use cpu_chill() instead of cpu_relax() +From: Thomas Gleixner +Date: Wed, 07 Mar 2012 21:10:04 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Retry loops on RT might loop forever when the modifying side was +preempted. Use cpu_chill() instead of cpu_relax() to let the system +make progress. + +Signed-off-by: Thomas Gleixner + +--- + net/packet/af_packet.c | 5 +++-- + net/rds/ib_rdma.c | 3 ++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +--- a/net/packet/af_packet.c ++++ b/net/packet/af_packet.c +@@ -63,6 +63,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -694,7 +695,7 @@ static void prb_retire_rx_blk_timer_expi + if (BLOCK_NUM_PKTS(pbd)) { + while (atomic_read(&pkc->blk_fill_in_prog)) { + /* Waiting for skb_copy_bits to finish... */ +- cpu_relax(); ++ cpu_chill(); + } + } + +@@ -956,7 +957,7 @@ static void prb_retire_current_block(str + if (!(status & TP_STATUS_BLK_TMO)) { + while (atomic_read(&pkc->blk_fill_in_prog)) { + /* Waiting for skb_copy_bits to finish... */ +- cpu_relax(); ++ cpu_chill(); + } + } + prb_close_block(pkc, pbd, po, status); +--- a/net/rds/ib_rdma.c ++++ b/net/rds/ib_rdma.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + #include "rds_single_path.h" + #include "ib_mr.h" +@@ -210,7 +211,7 @@ static inline void wait_clean_list_grace + for_each_online_cpu(cpu) { + flag = &per_cpu(clean_list_grace, cpu); + while (test_bit(CLEAN_LIST_BUSY_BIT, flag)) +- cpu_relax(); ++ cpu_chill(); + } + } + diff --git a/patches/features/all/rt/net-wireless-warn-nort.patch b/patches/features/all/rt/net-wireless-warn-nort.patch new file mode 100644 index 00000000000..be4d8f18fb0 --- /dev/null +++ b/patches/features/all/rt/net-wireless-warn-nort.patch @@ -0,0 +1,24 @@ +Subject: net/wireless: Use WARN_ON_NORT() +From: Thomas Gleixner +Date: Thu, 21 Jul 2011 21:05:33 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The softirq counter is meaningless on RT, so the check triggers a +false positive. + +Signed-off-by: Thomas Gleixner +--- + net/mac80211/rx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/mac80211/rx.c ++++ b/net/mac80211/rx.c +@@ -4156,7 +4156,7 @@ void ieee80211_rx_napi(struct ieee80211_ + struct ieee80211_supported_band *sband; + struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); + +- WARN_ON_ONCE(softirq_count() == 0); ++ WARN_ON_ONCE_NONRT(softirq_count() == 0); + + if (WARN_ON(status->band >= NUM_NL80211_BANDS)) + goto drop; diff --git a/patches/features/all/rt/oleg-signal-rt-fix.patch b/patches/features/all/rt/oleg-signal-rt-fix.patch new file mode 100644 index 00000000000..58eb72f8180 --- /dev/null +++ b/patches/features/all/rt/oleg-signal-rt-fix.patch @@ -0,0 +1,143 @@ +From: Oleg Nesterov +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: signal/x86: Delay calling signals in atomic +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On x86_64 we must disable preemption before we enable interrupts +for stack faults, int3 and debugging, because the current task is using +a per CPU debug stack defined by the IST. If we schedule out, another task +can come in and use the same stack and cause the stack to be corrupted +and crash the kernel on return. + +When CONFIG_PREEMPT_RT_FULL is enabled, spin_locks become mutexes, and +one of these is the spin lock used in signal handling. + +Some of the debug code (int3) causes do_trap() to send a signal. +This function calls a spin lock that has been converted to a mutex +and has the possibility to sleep. If this happens, the above issues with +the corrupted stack is possible. + +Instead of calling the signal right away, for PREEMPT_RT and x86_64, +the signal information is stored on the stacks task_struct and +TIF_NOTIFY_RESUME is set. Then on exit of the trap, the signal resume +code will send the signal when preemption is enabled. + +[ rostedt: Switched from #ifdef CONFIG_PREEMPT_RT_FULL to + ARCH_RT_DELAYS_SIGNAL_SEND and added comments to the code. ] + + +Signed-off-by: Oleg Nesterov +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner +--- + + arch/x86/entry/common.c | 7 +++++++ + arch/x86/include/asm/signal.h | 13 +++++++++++++ + include/linux/sched.h | 4 ++++ + kernel/signal.c | 37 +++++++++++++++++++++++++++++++++++-- + 4 files changed, 59 insertions(+), 2 deletions(-) + +--- a/arch/x86/entry/common.c ++++ b/arch/x86/entry/common.c +@@ -148,6 +148,13 @@ static void exit_to_usermode_loop(struct + if (cached_flags & _TIF_NEED_RESCHED) + schedule(); + ++#ifdef ARCH_RT_DELAYS_SIGNAL_SEND ++ if (unlikely(current->forced_info.si_signo)) { ++ struct task_struct *t = current; ++ force_sig_info(t->forced_info.si_signo, &t->forced_info, t); ++ t->forced_info.si_signo = 0; ++ } ++#endif + if (cached_flags & _TIF_UPROBE) + uprobe_notify_resume(regs); + +--- a/arch/x86/include/asm/signal.h ++++ b/arch/x86/include/asm/signal.h +@@ -27,6 +27,19 @@ typedef struct { + #define SA_IA32_ABI 0x02000000u + #define SA_X32_ABI 0x01000000u + ++/* ++ * Because some traps use the IST stack, we must keep preemption ++ * disabled while calling do_trap(), but do_trap() may call ++ * force_sig_info() which will grab the signal spin_locks for the ++ * task, which in PREEMPT_RT_FULL are mutexes. By defining ++ * ARCH_RT_DELAYS_SIGNAL_SEND the force_sig_info() will set ++ * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the ++ * trap. ++ */ ++#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_X86_64) ++#define ARCH_RT_DELAYS_SIGNAL_SEND ++#endif ++ + #ifndef CONFIG_COMPAT + typedef sigset_t compat_sigset_t; + #endif +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1695,6 +1695,10 @@ struct task_struct { + sigset_t blocked, real_blocked; + sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */ + struct sigpending pending; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ /* TODO: move me into ->restart_block ? */ ++ struct siginfo forced_info; ++#endif + + unsigned long sas_ss_sp; + size_t sas_ss_size; +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -1216,8 +1216,8 @@ int do_send_sig_info(int sig, struct sig + * We don't want to have recursive SIGSEGV's etc, for example, + * that is why we also clear SIGNAL_UNKILLABLE. + */ +-int +-force_sig_info(int sig, struct siginfo *info, struct task_struct *t) ++static int ++do_force_sig_info(int sig, struct siginfo *info, struct task_struct *t) + { + unsigned long int flags; + int ret, blocked, ignored; +@@ -1242,6 +1242,39 @@ force_sig_info(int sig, struct siginfo * + return ret; + } + ++int force_sig_info(int sig, struct siginfo *info, struct task_struct *t) ++{ ++/* ++ * On some archs, PREEMPT_RT has to delay sending a signal from a trap ++ * since it can not enable preemption, and the signal code's spin_locks ++ * turn into mutexes. Instead, it must set TIF_NOTIFY_RESUME which will ++ * send the signal on exit of the trap. ++ */ ++#ifdef ARCH_RT_DELAYS_SIGNAL_SEND ++ if (in_atomic()) { ++ if (WARN_ON_ONCE(t != current)) ++ return 0; ++ if (WARN_ON_ONCE(t->forced_info.si_signo)) ++ return 0; ++ ++ if (is_si_special(info)) { ++ WARN_ON_ONCE(info != SEND_SIG_PRIV); ++ t->forced_info.si_signo = sig; ++ t->forced_info.si_errno = 0; ++ t->forced_info.si_code = SI_KERNEL; ++ t->forced_info.si_pid = 0; ++ t->forced_info.si_uid = 0; ++ } else { ++ t->forced_info = *info; ++ } ++ ++ set_tsk_thread_flag(t, TIF_NOTIFY_RESUME); ++ return 0; ++ } ++#endif ++ return do_force_sig_info(sig, info, t); ++} ++ + /* + * Nuke all other threads in the group. + */ diff --git a/patches/features/all/rt/panic-disable-random-on-rt.patch b/patches/features/all/rt/panic-disable-random-on-rt.patch new file mode 100644 index 00000000000..dfc013168a2 --- /dev/null +++ b/patches/features/all/rt/panic-disable-random-on-rt.patch @@ -0,0 +1,27 @@ +From: Thomas Gleixner +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: panic: skip get_random_bytes for RT_FULL in init_oops_id +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable on -RT. If this is invoked from irq-context we will have problems +to acquire the sleeping lock. + +Signed-off-by: Thomas Gleixner +--- + kernel/panic.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/panic.c ++++ b/kernel/panic.c +@@ -482,9 +482,11 @@ static u64 oops_id; + + static int init_oops_id(void) + { ++#ifndef CONFIG_PREEMPT_RT_FULL + if (!oops_id) + get_random_bytes(&oops_id, sizeof(oops_id)); + else ++#endif + oops_id++; + + return 0; diff --git a/patches/features/all/rt/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch b/patches/features/all/rt/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch new file mode 100644 index 00000000000..c060ec9ed94 --- /dev/null +++ b/patches/features/all/rt/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch @@ -0,0 +1,109 @@ +Subject: rcu: Make ksoftirqd do RCU quiescent states +From: "Paul E. McKenney" +Date: Wed, 5 Oct 2011 11:45:18 -0700 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable +to network-based denial-of-service attacks. This patch therefore +makes __do_softirq() invoke rcu_bh_qs(), but only when __do_softirq() +is running in ksoftirqd context. A wrapper layer in interposed so that +other calls to __do_softirq() avoid invoking rcu_bh_qs(). The underlying +function __do_softirq_common() does the actual work. + +The reason that rcu_bh_qs() is bad in these non-ksoftirqd contexts is +that there might be a local_bh_enable() inside an RCU-preempt read-side +critical section. This local_bh_enable() can invoke __do_softirq() +directly, so if __do_softirq() were to invoke rcu_bh_qs() (which just +calls rcu_preempt_qs() in the PREEMPT_RT_FULL case), there would be +an illegal RCU-preempt quiescent state in the middle of an RCU-preempt +read-side critical section. Therefore, quiescent states can only happen +in cases where __do_softirq() is invoked directly from ksoftirqd. + +Signed-off-by: Paul E. McKenney +Link: http://lkml.kernel.org/r/20111005184518.GA21601@linux.vnet.ibm.com +Signed-off-by: Thomas Gleixner + +--- + include/linux/rcupdate.h | 4 ---- + kernel/rcu/tree.c | 9 ++++++++- + kernel/rcu/tree_plugin.h | 8 +++++++- + 3 files changed, 15 insertions(+), 6 deletions(-) + +--- a/include/linux/rcupdate.h ++++ b/include/linux/rcupdate.h +@@ -343,11 +343,7 @@ static inline int rcu_preempt_depth(void + /* Internal to kernel */ + void rcu_init(void); + void rcu_sched_qs(void); +-#ifdef CONFIG_PREEMPT_RT_FULL +-static inline void rcu_bh_qs(void) { } +-#else + void rcu_bh_qs(void); +-#endif + void rcu_check_callbacks(int user); + void rcu_report_dead(unsigned int cpu); + void rcu_cpu_starting(unsigned int cpu); +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -257,7 +257,14 @@ void rcu_sched_qs(void) + this_cpu_ptr(&rcu_sched_data), true); + } + +-#ifndef CONFIG_PREEMPT_RT_FULL ++#ifdef CONFIG_PREEMPT_RT_FULL ++static void rcu_preempt_qs(void); ++ ++void rcu_bh_qs(void) ++{ ++ rcu_preempt_qs(); ++} ++#else + void rcu_bh_qs(void) + { + if (__this_cpu_read(rcu_bh_data.cpu_no_qs.s)) { +--- a/kernel/rcu/tree_plugin.h ++++ b/kernel/rcu/tree_plugin.h +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include "../time/tick-internal.h" + + #ifdef CONFIG_RCU_BOOST +@@ -1244,7 +1245,7 @@ static void rcu_prepare_kthreads(int cpu + + #endif /* #else #ifdef CONFIG_RCU_BOOST */ + +-#if !defined(CONFIG_RCU_FAST_NO_HZ) ++#if !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) + + /* + * Check to see if any future RCU-related work will need to be done +@@ -1261,7 +1262,9 @@ int rcu_needs_cpu(u64 basemono, u64 *nex + return IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL) + ? 0 : rcu_cpu_has_callbacks(NULL); + } ++#endif /* !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) */ + ++#if !defined(CONFIG_RCU_FAST_NO_HZ) + /* + * Because we do not have RCU_FAST_NO_HZ, don't bother cleaning up + * after it. +@@ -1357,6 +1360,8 @@ static bool __maybe_unused rcu_try_advan + return cbs_ready; + } + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + /* + * Allow the CPU to enter dyntick-idle mode unless it has callbacks ready + * to invoke. If the CPU has callbacks, try to advance them. Tell the +@@ -1402,6 +1407,7 @@ int rcu_needs_cpu(u64 basemono, u64 *nex + *nextevt = basemono + dj * TICK_NSEC; + return 0; + } ++#endif /* #ifndef CONFIG_PREEMPT_RT_FULL */ + + /* + * Prepare a CPU for idle from an RCU perspective. The first major task diff --git a/patches/features/all/rt/pci-access-use-__wake_up_all_locked.patch b/patches/features/all/rt/pci-access-use-__wake_up_all_locked.patch new file mode 100644 index 00000000000..cd4d57646df --- /dev/null +++ b/patches/features/all/rt/pci-access-use-__wake_up_all_locked.patch @@ -0,0 +1,26 @@ +Subject: pci: Use __wake_up_all_locked in pci_unblock_user_cfg_access() +From: Thomas Gleixner +Date: Thu, 01 Dec 2011 00:07:16 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The waitqueue is protected by the pci_lock, so we can just avoid to +lock the waitqueue lock itself. That prevents the +might_sleep()/scheduling while atomic problem on RT + +Signed-off-by: Thomas Gleixner + +--- + drivers/pci/access.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pci/access.c ++++ b/drivers/pci/access.c +@@ -672,7 +672,7 @@ void pci_cfg_access_unlock(struct pci_de + WARN_ON(!dev->block_cfg_access); + + dev->block_cfg_access = 0; +- wake_up_all(&pci_cfg_wait); ++ wake_up_all_locked(&pci_cfg_wait); + raw_spin_unlock_irqrestore(&pci_lock, flags); + } + EXPORT_SYMBOL_GPL(pci_cfg_access_unlock); diff --git a/patches/features/all/rt/percpu_ida-use-locklocks.patch b/patches/features/all/rt/percpu_ida-use-locklocks.patch new file mode 100644 index 00000000000..372a693c7c7 --- /dev/null +++ b/patches/features/all/rt/percpu_ida-use-locklocks.patch @@ -0,0 +1,102 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 9 Apr 2014 11:58:17 +0200 +Subject: percpu_ida: Use local locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +the local_irq_save() + spin_lock() does not work that well on -RT + +Signed-off-by: Sebastian Andrzej Siewior +--- + lib/percpu_ida.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +--- a/lib/percpu_ida.c ++++ b/lib/percpu_ida.c +@@ -26,6 +26,9 @@ + #include + #include + #include ++#include ++ ++static DEFINE_LOCAL_IRQ_LOCK(irq_off_lock); + + struct percpu_ida_cpu { + /* +@@ -148,13 +151,13 @@ int percpu_ida_alloc(struct percpu_ida * + unsigned long flags; + int tag; + +- local_irq_save(flags); ++ local_lock_irqsave(irq_off_lock, flags); + tags = this_cpu_ptr(pool->tag_cpu); + + /* Fastpath */ + tag = alloc_local_tag(tags); + if (likely(tag >= 0)) { +- local_irq_restore(flags); ++ local_unlock_irqrestore(irq_off_lock, flags); + return tag; + } + +@@ -173,6 +176,7 @@ int percpu_ida_alloc(struct percpu_ida * + + if (!tags->nr_free) + alloc_global_tags(pool, tags); ++ + if (!tags->nr_free) + steal_tags(pool, tags); + +@@ -184,7 +188,7 @@ int percpu_ida_alloc(struct percpu_ida * + } + + spin_unlock(&pool->lock); +- local_irq_restore(flags); ++ local_unlock_irqrestore(irq_off_lock, flags); + + if (tag >= 0 || state == TASK_RUNNING) + break; +@@ -196,7 +200,7 @@ int percpu_ida_alloc(struct percpu_ida * + + schedule(); + +- local_irq_save(flags); ++ local_lock_irqsave(irq_off_lock, flags); + tags = this_cpu_ptr(pool->tag_cpu); + } + if (state != TASK_RUNNING) +@@ -221,7 +225,7 @@ void percpu_ida_free(struct percpu_ida * + + BUG_ON(tag >= pool->nr_tags); + +- local_irq_save(flags); ++ local_lock_irqsave(irq_off_lock, flags); + tags = this_cpu_ptr(pool->tag_cpu); + + spin_lock(&tags->lock); +@@ -253,7 +257,7 @@ void percpu_ida_free(struct percpu_ida * + spin_unlock(&pool->lock); + } + +- local_irq_restore(flags); ++ local_unlock_irqrestore(irq_off_lock, flags); + } + EXPORT_SYMBOL_GPL(percpu_ida_free); + +@@ -345,7 +349,7 @@ int percpu_ida_for_each_free(struct perc + struct percpu_ida_cpu *remote; + unsigned cpu, i, err = 0; + +- local_irq_save(flags); ++ local_lock_irqsave(irq_off_lock, flags); + for_each_possible_cpu(cpu) { + remote = per_cpu_ptr(pool->tag_cpu, cpu); + spin_lock(&remote->lock); +@@ -367,7 +371,7 @@ int percpu_ida_for_each_free(struct perc + } + spin_unlock(&pool->lock); + out: +- local_irq_restore(flags); ++ local_unlock_irqrestore(irq_off_lock, flags); + return err; + } + EXPORT_SYMBOL_GPL(percpu_ida_for_each_free); diff --git a/patches/features/all/rt/perf-make-swevent-hrtimer-irqsafe.patch b/patches/features/all/rt/perf-make-swevent-hrtimer-irqsafe.patch new file mode 100644 index 00000000000..a91cdf65cdc --- /dev/null +++ b/patches/features/all/rt/perf-make-swevent-hrtimer-irqsafe.patch @@ -0,0 +1,69 @@ +From: Yong Zhang +Date: Wed, 11 Jul 2012 22:05:21 +0000 +Subject: perf: Make swevent hrtimer run in irq instead of softirq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Otherwise we get a deadlock like below: + +[ 1044.042749] BUG: scheduling while atomic: ksoftirqd/21/141/0x00010003 +[ 1044.042752] INFO: lockdep is turned off. +[ 1044.042754] Modules linked in: +[ 1044.042757] Pid: 141, comm: ksoftirqd/21 Tainted: G W 3.4.0-rc2-rt3-23676-ga723175-dirty #29 +[ 1044.042759] Call Trace: +[ 1044.042761] [] __schedule_bug+0x65/0x80 +[ 1044.042770] [] __schedule+0x83c/0xa70 +[ 1044.042775] [] ? prepare_to_wait+0x32/0xb0 +[ 1044.042779] [] schedule+0x2e/0xa0 +[ 1044.042782] [] hrtimer_wait_for_timer+0x6d/0xb0 +[ 1044.042786] [] ? wake_up_bit+0x40/0x40 +[ 1044.042790] [] hrtimer_cancel+0x20/0x40 +[ 1044.042794] [] perf_swevent_cancel_hrtimer+0x3c/0x50 +[ 1044.042798] [] task_clock_event_stop+0x11/0x40 +[ 1044.042802] [] task_clock_event_del+0xe/0x10 +[ 1044.042805] [] event_sched_out+0x118/0x1d0 +[ 1044.042809] [] group_sched_out+0x29/0x90 +[ 1044.042813] [] __perf_event_disable+0x18e/0x200 +[ 1044.042817] [] remote_function+0x63/0x70 +[ 1044.042821] [] generic_smp_call_function_single_interrupt+0xce/0x120 +[ 1044.042826] [] smp_call_function_single_interrupt+0x27/0x40 +[ 1044.042831] [] call_function_single_interrupt+0x6c/0x80 +[ 1044.042833] [] ? perf_event_overflow+0x20/0x20 +[ 1044.042840] [] ? _raw_spin_unlock_irq+0x30/0x70 +[ 1044.042844] [] ? _raw_spin_unlock_irq+0x36/0x70 +[ 1044.042848] [] run_hrtimer_softirq+0xc2/0x200 +[ 1044.042853] [] ? perf_event_overflow+0x20/0x20 +[ 1044.042857] [] __do_softirq_common+0xf5/0x3a0 +[ 1044.042862] [] __thread_do_softirq+0x15d/0x200 +[ 1044.042865] [] run_ksoftirqd+0xfa/0x210 +[ 1044.042869] [] ? __thread_do_softirq+0x200/0x200 +[ 1044.042873] [] ? __thread_do_softirq+0x200/0x200 +[ 1044.042877] [] kthread+0xb6/0xc0 +[ 1044.042881] [] ? _raw_spin_unlock_irq+0x3b/0x70 +[ 1044.042886] [] kernel_thread_helper+0x4/0x10 +[ 1044.042889] [] ? finish_task_switch+0x8c/0x110 +[ 1044.042894] [] ? _raw_spin_unlock_irq+0x3b/0x70 +[ 1044.042897] [] ? retint_restore_args+0xe/0xe +[ 1044.042900] [] ? kthreadd+0x1e0/0x1e0 +[ 1044.042902] [] ? gs_change+0xb/0xb + +Signed-off-by: Yong Zhang +Cc: Peter Zijlstra +Cc: Steven Rostedt +Link: http://lkml.kernel.org/r/1341476476-5666-1-git-send-email-yong.zhang0@gmail.com +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt + +--- + kernel/events/core.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -8335,6 +8335,7 @@ static void perf_swevent_init_hrtimer(st + + hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hwc->hrtimer.function = perf_swevent_hrtimer; ++ hwc->hrtimer.irqsafe = 1; + + /* + * Since hrtimers have a fixed rate, we can do a static freq->period diff --git a/patches/features/all/rt/peter_zijlstra-frob-rcu.patch b/patches/features/all/rt/peter_zijlstra-frob-rcu.patch new file mode 100644 index 00000000000..96440e11541 --- /dev/null +++ b/patches/features/all/rt/peter_zijlstra-frob-rcu.patch @@ -0,0 +1,167 @@ +Subject: rcu: Frob softirq test +From: Peter Zijlstra +Date: Sat Aug 13 00:23:17 CEST 2011 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +With RT_FULL we get the below wreckage: + +[ 126.060484] ======================================================= +[ 126.060486] [ INFO: possible circular locking dependency detected ] +[ 126.060489] 3.0.1-rt10+ #30 +[ 126.060490] ------------------------------------------------------- +[ 126.060492] irq/24-eth0/1235 is trying to acquire lock: +[ 126.060495] (&(lock)->wait_lock#2){+.+...}, at: [] rt_mutex_slowunlock+0x16/0x55 +[ 126.060503] +[ 126.060504] but task is already holding lock: +[ 126.060506] (&p->pi_lock){-...-.}, at: [] try_to_wake_up+0x35/0x429 +[ 126.060511] +[ 126.060511] which lock already depends on the new lock. +[ 126.060513] +[ 126.060514] +[ 126.060514] the existing dependency chain (in reverse order) is: +[ 126.060516] +[ 126.060516] -> #1 (&p->pi_lock){-...-.}: +[ 126.060519] [] lock_acquire+0x145/0x18a +[ 126.060524] [] _raw_spin_lock_irqsave+0x4b/0x85 +[ 126.060527] [] task_blocks_on_rt_mutex+0x36/0x20f +[ 126.060531] [] rt_mutex_slowlock+0xd1/0x15a +[ 126.060534] [] rt_mutex_lock+0x2d/0x2f +[ 126.060537] [] rcu_boost+0xad/0xde +[ 126.060541] [] rcu_boost_kthread+0x7d/0x9b +[ 126.060544] [] kthread+0x99/0xa1 +[ 126.060547] [] kernel_thread_helper+0x4/0x10 +[ 126.060551] +[ 126.060552] -> #0 (&(lock)->wait_lock#2){+.+...}: +[ 126.060555] [] __lock_acquire+0x1157/0x1816 +[ 126.060558] [] lock_acquire+0x145/0x18a +[ 126.060561] [] _raw_spin_lock+0x40/0x73 +[ 126.060564] [] rt_mutex_slowunlock+0x16/0x55 +[ 126.060566] [] rt_mutex_unlock+0x27/0x29 +[ 126.060569] [] rcu_read_unlock_special+0x17e/0x1c4 +[ 126.060573] [] __rcu_read_unlock+0x48/0x89 +[ 126.060576] [] select_task_rq_rt+0xc7/0xd5 +[ 126.060580] [] try_to_wake_up+0x175/0x429 +[ 126.060583] [] wake_up_process+0x15/0x17 +[ 126.060585] [] wakeup_softirqd+0x24/0x26 +[ 126.060590] [] irq_exit+0x49/0x55 +[ 126.060593] [] smp_apic_timer_interrupt+0x8a/0x98 +[ 126.060597] [] apic_timer_interrupt+0x13/0x20 +[ 126.060600] [] irq_forced_thread_fn+0x1b/0x44 +[ 126.060603] [] irq_thread+0xde/0x1af +[ 126.060606] [] kthread+0x99/0xa1 +[ 126.060608] [] kernel_thread_helper+0x4/0x10 +[ 126.060611] +[ 126.060612] other info that might help us debug this: +[ 126.060614] +[ 126.060615] Possible unsafe locking scenario: +[ 126.060616] +[ 126.060617] CPU0 CPU1 +[ 126.060619] ---- ---- +[ 126.060620] lock(&p->pi_lock); +[ 126.060623] lock(&(lock)->wait_lock); +[ 126.060625] lock(&p->pi_lock); +[ 126.060627] lock(&(lock)->wait_lock); +[ 126.060629] +[ 126.060629] *** DEADLOCK *** +[ 126.060630] +[ 126.060632] 1 lock held by irq/24-eth0/1235: +[ 126.060633] #0: (&p->pi_lock){-...-.}, at: [] try_to_wake_up+0x35/0x429 +[ 126.060638] +[ 126.060638] stack backtrace: +[ 126.060641] Pid: 1235, comm: irq/24-eth0 Not tainted 3.0.1-rt10+ #30 +[ 126.060643] Call Trace: +[ 126.060644] [] print_circular_bug+0x289/0x29a +[ 126.060651] [] __lock_acquire+0x1157/0x1816 +[ 126.060655] [] ? trace_hardirqs_off_caller+0x1f/0x99 +[ 126.060658] [] ? rt_mutex_slowunlock+0x16/0x55 +[ 126.060661] [] lock_acquire+0x145/0x18a +[ 126.060664] [] ? rt_mutex_slowunlock+0x16/0x55 +[ 126.060668] [] _raw_spin_lock+0x40/0x73 +[ 126.060671] [] ? rt_mutex_slowunlock+0x16/0x55 +[ 126.060674] [] ? rcu_report_qs_rsp+0x87/0x8c +[ 126.060677] [] rt_mutex_slowunlock+0x16/0x55 +[ 126.060680] [] ? rcu_read_unlock_special+0x9b/0x1c4 +[ 126.060683] [] rt_mutex_unlock+0x27/0x29 +[ 126.060687] [] rcu_read_unlock_special+0x17e/0x1c4 +[ 126.060690] [] __rcu_read_unlock+0x48/0x89 +[ 126.060693] [] select_task_rq_rt+0xc7/0xd5 +[ 126.060696] [] ? select_task_rq_rt+0x27/0xd5 +[ 126.060701] [] ? clockevents_program_event+0x8e/0x90 +[ 126.060704] [] try_to_wake_up+0x175/0x429 +[ 126.060708] [] ? tick_program_event+0x1f/0x21 +[ 126.060711] [] wake_up_process+0x15/0x17 +[ 126.060715] [] wakeup_softirqd+0x24/0x26 +[ 126.060718] [] irq_exit+0x49/0x55 +[ 126.060721] [] smp_apic_timer_interrupt+0x8a/0x98 +[ 126.060724] [] apic_timer_interrupt+0x13/0x20 +[ 126.060726] [] ? migrate_disable+0x75/0x12d +[ 126.060733] [] ? local_bh_disable+0xe/0x1f +[ 126.060736] [] ? local_bh_disable+0x1d/0x1f +[ 126.060739] [] irq_forced_thread_fn+0x1b/0x44 +[ 126.060742] [] ? _raw_spin_unlock_irq+0x3b/0x59 +[ 126.060745] [] irq_thread+0xde/0x1af +[ 126.060748] [] ? irq_thread_fn+0x3a/0x3a +[ 126.060751] [] ? irq_finalize_oneshot+0xd1/0xd1 +[ 126.060754] [] ? irq_finalize_oneshot+0xd1/0xd1 +[ 126.060757] [] kthread+0x99/0xa1 +[ 126.060761] [] kernel_thread_helper+0x4/0x10 +[ 126.060764] [] ? finish_task_switch+0x87/0x10a +[ 126.060768] [] ? retint_restore_args+0xe/0xe +[ 126.060771] [] ? __init_kthread_worker+0x8c/0x8c +[ 126.060774] [] ? gs_change+0xb/0xb + +Because irq_exit() does: + +void irq_exit(void) +{ + account_system_vtime(current); + trace_hardirq_exit(); + sub_preempt_count(IRQ_EXIT_OFFSET); + if (!in_interrupt() && local_softirq_pending()) + invoke_softirq(); + + ... +} + +Which triggers a wakeup, which uses RCU, now if the interrupted task has +t->rcu_read_unlock_special set, the rcu usage from the wakeup will end +up in rcu_read_unlock_special(). rcu_read_unlock_special() will test +for in_irq(), which will fail as we just decremented preempt_count +with IRQ_EXIT_OFFSET, and in_sering_softirq(), which for +PREEMPT_RT_FULL reads: + +int in_serving_softirq(void) +{ + int res; + + preempt_disable(); + res = __get_cpu_var(local_softirq_runner) == current; + preempt_enable(); + return res; +} + +Which will thus also fail, resulting in the above wreckage. + +The 'somewhat' ugly solution is to open-code the preempt_count() test +in rcu_read_unlock_special(). + +Also, we're not at all sure how ->rcu_read_unlock_special gets set +here... so this is very likely a bandaid and more thought is required. + +Cc: Paul E. McKenney +Signed-off-by: Peter Zijlstra +--- + kernel/rcu/tree_plugin.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/rcu/tree_plugin.h ++++ b/kernel/rcu/tree_plugin.h +@@ -426,7 +426,7 @@ void rcu_read_unlock_special(struct task + } + + /* Hardware IRQ handlers cannot block, complain if they get here. */ +- if (in_irq() || in_serving_softirq()) { ++ if (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_OFFSET)) { + lockdep_rcu_suspicious(__FILE__, __LINE__, + "rcu_read_unlock() from irq or softirq with blocking in critical section!!!\n"); + pr_alert("->rcu_read_unlock_special: %#x (b: %d, enq: %d nq: %d)\n", diff --git a/patches/features/all/rt/peterz-percpu-rwsem-rt.patch b/patches/features/all/rt/peterz-percpu-rwsem-rt.patch new file mode 100644 index 00000000000..b8ecd73993e --- /dev/null +++ b/patches/features/all/rt/peterz-percpu-rwsem-rt.patch @@ -0,0 +1,219 @@ +Subject: locking/percpu-rwsem: Remove preempt_disable variants +From: Peter Zijlstra +Date: Wed Nov 23 16:29:32 CET 2016 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Effective revert commit: + + 87709e28dc7c ("fs/locks: Use percpu_down_read_preempt_disable()") + +This is causing major pain for PREEMPT_RT and is only a very small +performance issue for PREEMPT=y. + +Signed-off-by: Peter Zijlstra (Intel) +--- +--- + fs/locks.c | 32 ++++++++++++++++---------------- + include/linux/percpu-rwsem.h | 24 ++++-------------------- + 2 files changed, 20 insertions(+), 36 deletions(-) + +--- a/fs/locks.c ++++ b/fs/locks.c +@@ -935,7 +935,7 @@ static int flock_lock_inode(struct inode + return -ENOMEM; + } + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + if (request->fl_flags & FL_ACCESS) + goto find_conflict; +@@ -976,7 +976,7 @@ static int flock_lock_inode(struct inode + + out: + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + if (new_fl) + locks_free_lock(new_fl); + locks_dispose_list(&dispose); +@@ -1013,7 +1013,7 @@ static int posix_lock_inode(struct inode + new_fl2 = locks_alloc_lock(); + } + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + /* + * New lock request. Walk all POSIX locks and look for conflicts. If +@@ -1185,7 +1185,7 @@ static int posix_lock_inode(struct inode + } + out: + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + /* + * Free any unused locks. + */ +@@ -1460,7 +1460,7 @@ int __break_lease(struct inode *inode, u + return error; + } + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + + time_out_leases(inode, &dispose); +@@ -1512,13 +1512,13 @@ int __break_lease(struct inode *inode, u + locks_insert_block(fl, new_fl); + trace_break_lease_block(inode, new_fl); + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + + locks_dispose_list(&dispose); + error = wait_event_interruptible_timeout(new_fl->fl_wait, + !new_fl->fl_next, break_time); + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + trace_break_lease_unblock(inode, new_fl); + locks_delete_block(new_fl); +@@ -1535,7 +1535,7 @@ int __break_lease(struct inode *inode, u + } + out: + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + locks_dispose_list(&dispose); + locks_free_lock(new_fl); + return error; +@@ -1609,7 +1609,7 @@ int fcntl_getlease(struct file *filp) + + ctx = smp_load_acquire(&inode->i_flctx); + if (ctx && !list_empty_careful(&ctx->flc_lease)) { +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + time_out_leases(inode, &dispose); + list_for_each_entry(fl, &ctx->flc_lease, fl_list) { +@@ -1619,7 +1619,7 @@ int fcntl_getlease(struct file *filp) + break; + } + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + + locks_dispose_list(&dispose); + } +@@ -1694,7 +1694,7 @@ generic_add_lease(struct file *filp, lon + return -EINVAL; + } + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + time_out_leases(inode, &dispose); + error = check_conflicting_open(dentry, arg, lease->fl_flags); +@@ -1765,7 +1765,7 @@ generic_add_lease(struct file *filp, lon + lease->fl_lmops->lm_setup(lease, priv); + out: + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + locks_dispose_list(&dispose); + if (is_deleg) + inode_unlock(inode); +@@ -1788,7 +1788,7 @@ static int generic_delete_lease(struct f + return error; + } + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + list_for_each_entry(fl, &ctx->flc_lease, fl_list) { + if (fl->fl_file == filp && +@@ -1801,7 +1801,7 @@ static int generic_delete_lease(struct f + if (victim) + error = fl->fl_lmops->lm_change(victim, F_UNLCK, &dispose); + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + locks_dispose_list(&dispose); + return error; + } +@@ -2532,13 +2532,13 @@ locks_remove_lease(struct file *filp, st + if (list_empty(&ctx->flc_lease)) + return; + +- percpu_down_read_preempt_disable(&file_rwsem); ++ percpu_down_read(&file_rwsem); + spin_lock(&ctx->flc_lock); + list_for_each_entry_safe(fl, tmp, &ctx->flc_lease, fl_list) + if (filp == fl->fl_file) + lease_modify(fl, F_UNLCK, &dispose); + spin_unlock(&ctx->flc_lock); +- percpu_up_read_preempt_enable(&file_rwsem); ++ percpu_up_read(&file_rwsem); + + locks_dispose_list(&dispose); + } +--- a/include/linux/percpu-rwsem.h ++++ b/include/linux/percpu-rwsem.h +@@ -28,7 +28,7 @@ static struct percpu_rw_semaphore name = + extern int __percpu_down_read(struct percpu_rw_semaphore *, int); + extern void __percpu_up_read(struct percpu_rw_semaphore *); + +-static inline void percpu_down_read_preempt_disable(struct percpu_rw_semaphore *sem) ++static inline void percpu_down_read(struct percpu_rw_semaphore *sem) + { + might_sleep(); + +@@ -46,16 +46,10 @@ static inline void percpu_down_read_pree + __this_cpu_inc(*sem->read_count); + if (unlikely(!rcu_sync_is_idle(&sem->rss))) + __percpu_down_read(sem, false); /* Unconditional memory barrier */ +- barrier(); + /* +- * The barrier() prevents the compiler from ++ * The preempt_enable() prevents the compiler from + * bleeding the critical section out. + */ +-} +- +-static inline void percpu_down_read(struct percpu_rw_semaphore *sem) +-{ +- percpu_down_read_preempt_disable(sem); + preempt_enable(); + } + +@@ -82,13 +76,9 @@ static inline int percpu_down_read_trylo + return ret; + } + +-static inline void percpu_up_read_preempt_enable(struct percpu_rw_semaphore *sem) ++static inline void percpu_up_read(struct percpu_rw_semaphore *sem) + { +- /* +- * The barrier() prevents the compiler from +- * bleeding the critical section out. +- */ +- barrier(); ++ preempt_disable(); + /* + * Same as in percpu_down_read(). + */ +@@ -101,12 +91,6 @@ static inline void percpu_up_read_preemp + rwsem_release(&sem->rw_sem.dep_map, 1, _RET_IP_); + } + +-static inline void percpu_up_read(struct percpu_rw_semaphore *sem) +-{ +- preempt_disable(); +- percpu_up_read_preempt_enable(sem); +-} +- + extern void percpu_down_write(struct percpu_rw_semaphore *); + extern void percpu_up_write(struct percpu_rw_semaphore *); + diff --git a/patches/features/all/rt/peterz-srcu-crypto-chain.patch b/patches/features/all/rt/peterz-srcu-crypto-chain.patch new file mode 100644 index 00000000000..9c58c966497 --- /dev/null +++ b/patches/features/all/rt/peterz-srcu-crypto-chain.patch @@ -0,0 +1,183 @@ +Subject: crypto: Convert crypto notifier chain to SRCU +From: Peter Zijlstra +Date: Fri, 05 Oct 2012 09:03:24 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The crypto notifier deadlocks on RT. Though this can be a real deadlock +on mainline as well due to fifo fair rwsems. + +The involved parties here are: + +[ 82.172678] swapper/0 S 0000000000000001 0 1 0 0x00000000 +[ 82.172682] ffff88042f18fcf0 0000000000000046 ffff88042f18fc80 ffffffff81491238 +[ 82.172685] 0000000000011cc0 0000000000011cc0 ffff88042f18c040 ffff88042f18ffd8 +[ 82.172688] 0000000000011cc0 0000000000011cc0 ffff88042f18ffd8 0000000000011cc0 +[ 82.172689] Call Trace: +[ 82.172697] [] ? _raw_spin_unlock_irqrestore+0x6c/0x7a +[ 82.172701] [] schedule+0x64/0x66 +[ 82.172704] [] schedule_timeout+0x27/0xd0 +[ 82.172708] [] ? unpin_current_cpu+0x1a/0x6c +[ 82.172713] [] ? migrate_enable+0x12f/0x141 +[ 82.172716] [] wait_for_common+0xbb/0x11f +[ 82.172719] [] ? try_to_wake_up+0x182/0x182 +[ 82.172722] [] wait_for_completion_interruptible+0x1d/0x2e +[ 82.172726] [] crypto_wait_for_test+0x49/0x6b +[ 82.172728] [] crypto_register_alg+0x53/0x5a +[ 82.172730] [] crypto_register_algs+0x33/0x72 +[ 82.172734] [] ? aes_init+0x12/0x12 +[ 82.172737] [] aesni_init+0x64/0x66 +[ 82.172741] [] do_one_initcall+0x7f/0x13b +[ 82.172744] [] kernel_init+0x199/0x22c +[ 82.172747] [] ? loglevel+0x31/0x31 +[ 82.172752] [] kernel_thread_helper+0x4/0x10 +[ 82.172755] [] ? retint_restore_args+0x13/0x13 +[ 82.172759] [] ? start_kernel+0x3ca/0x3ca +[ 82.172761] [] ? gs_change+0x13/0x13 + +[ 82.174186] cryptomgr_test S 0000000000000001 0 41 2 0x00000000 +[ 82.174189] ffff88042c971980 0000000000000046 ffffffff81d74830 0000000000000292 +[ 82.174192] 0000000000011cc0 0000000000011cc0 ffff88042c96eb80 ffff88042c971fd8 +[ 82.174195] 0000000000011cc0 0000000000011cc0 ffff88042c971fd8 0000000000011cc0 +[ 82.174195] Call Trace: +[ 82.174198] [] schedule+0x64/0x66 +[ 82.174201] [] schedule_timeout+0x27/0xd0 +[ 82.174204] [] ? unpin_current_cpu+0x1a/0x6c +[ 82.174206] [] ? migrate_enable+0x12f/0x141 +[ 82.174209] [] wait_for_common+0xbb/0x11f +[ 82.174212] [] ? try_to_wake_up+0x182/0x182 +[ 82.174215] [] wait_for_completion_interruptible+0x1d/0x2e +[ 82.174218] [] cryptomgr_notify+0x280/0x385 +[ 82.174221] [] notifier_call_chain+0x6b/0x98 +[ 82.174224] [] ? rt_down_read+0x10/0x12 +[ 82.174227] [] __blocking_notifier_call_chain+0x70/0x8d +[ 82.174230] [] blocking_notifier_call_chain+0x14/0x16 +[ 82.174234] [] crypto_probing_notify+0x24/0x50 +[ 82.174236] [] crypto_alg_mod_lookup+0x3e/0x74 +[ 82.174238] [] crypto_alloc_base+0x36/0x8f +[ 82.174241] [] cryptd_alloc_ablkcipher+0x6e/0xb5 +[ 82.174243] [] ? kzalloc.clone.5+0xe/0x10 +[ 82.174246] [] ablk_init_common+0x1d/0x38 +[ 82.174249] [] ablk_ecb_init+0x15/0x17 +[ 82.174251] [] __crypto_alloc_tfm+0xc7/0x114 +[ 82.174254] [] ? crypto_lookup_skcipher+0x1f/0xe4 +[ 82.174256] [] crypto_alloc_ablkcipher+0x60/0xa5 +[ 82.174258] [] alg_test_skcipher+0x24/0x9b +[ 82.174261] [] ? finish_task_switch+0x3f/0xfa +[ 82.174263] [] alg_test+0x16f/0x1d7 +[ 82.174267] [] ? cryptomgr_probe+0xac/0xac +[ 82.174269] [] cryptomgr_test+0x2c/0x47 +[ 82.174272] [] kthread+0x7e/0x86 +[ 82.174275] [] ? finish_task_switch+0xaf/0xfa +[ 82.174278] [] kernel_thread_helper+0x4/0x10 +[ 82.174281] [] ? retint_restore_args+0x13/0x13 +[ 82.174284] [] ? __init_kthread_worker+0x8c/0x8c +[ 82.174287] [] ? gs_change+0x13/0x13 + +[ 82.174329] cryptomgr_probe D 0000000000000002 0 47 2 0x00000000 +[ 82.174332] ffff88042c991b70 0000000000000046 ffff88042c991bb0 0000000000000006 +[ 82.174335] 0000000000011cc0 0000000000011cc0 ffff88042c98ed00 ffff88042c991fd8 +[ 82.174338] 0000000000011cc0 0000000000011cc0 ffff88042c991fd8 0000000000011cc0 +[ 82.174338] Call Trace: +[ 82.174342] [] schedule+0x64/0x66 +[ 82.174344] [] __rt_mutex_slowlock+0x85/0xbe +[ 82.174347] [] rt_mutex_slowlock+0xec/0x159 +[ 82.174351] [] rt_mutex_fastlock.clone.8+0x29/0x2f +[ 82.174353] [] rt_mutex_lock+0x33/0x37 +[ 82.174356] [] __rt_down_read+0x50/0x5a +[ 82.174358] [] ? rt_down_read+0x10/0x12 +[ 82.174360] [] rt_down_read+0x10/0x12 +[ 82.174363] [] __blocking_notifier_call_chain+0x58/0x8d +[ 82.174366] [] blocking_notifier_call_chain+0x14/0x16 +[ 82.174369] [] crypto_probing_notify+0x24/0x50 +[ 82.174372] [] crypto_wait_for_test+0x22/0x6b +[ 82.174374] [] crypto_register_instance+0xb4/0xc0 +[ 82.174377] [] cryptd_create+0x378/0x3b6 +[ 82.174379] [] ? __crypto_lookup_template+0x5b/0x63 +[ 82.174382] [] cryptomgr_probe+0x45/0xac +[ 82.174385] [] ? crypto_alloc_pcomp+0x1b/0x1b +[ 82.174388] [] kthread+0x7e/0x86 +[ 82.174391] [] ? finish_task_switch+0xaf/0xfa +[ 82.174394] [] kernel_thread_helper+0x4/0x10 +[ 82.174398] [] ? retint_restore_args+0x13/0x13 +[ 82.174401] [] ? __init_kthread_worker+0x8c/0x8c +[ 82.174403] [] ? gs_change+0x13/0x13 + +cryptomgr_test spawns the cryptomgr_probe thread from the notifier +call. The probe thread fires the same notifier as the test thread and +deadlocks on the rwsem on RT. + +Now this is a potential deadlock in mainline as well, because we have +fifo fair rwsems. If another thread blocks with a down_write() on the +notifier chain before the probe thread issues the down_read() it will +block the probe thread and the whole party is dead locked. + +Signed-off-by: Peter Zijlstra +Signed-off-by: Thomas Gleixner +--- + crypto/algapi.c | 4 ++-- + crypto/api.c | 6 +++--- + crypto/internal.h | 4 ++-- + 3 files changed, 7 insertions(+), 7 deletions(-) + +--- a/crypto/algapi.c ++++ b/crypto/algapi.c +@@ -718,13 +718,13 @@ EXPORT_SYMBOL_GPL(crypto_spawn_tfm2); + + int crypto_register_notifier(struct notifier_block *nb) + { +- return blocking_notifier_chain_register(&crypto_chain, nb); ++ return srcu_notifier_chain_register(&crypto_chain, nb); + } + EXPORT_SYMBOL_GPL(crypto_register_notifier); + + int crypto_unregister_notifier(struct notifier_block *nb) + { +- return blocking_notifier_chain_unregister(&crypto_chain, nb); ++ return srcu_notifier_chain_unregister(&crypto_chain, nb); + } + EXPORT_SYMBOL_GPL(crypto_unregister_notifier); + +--- a/crypto/api.c ++++ b/crypto/api.c +@@ -31,7 +31,7 @@ EXPORT_SYMBOL_GPL(crypto_alg_list); + DECLARE_RWSEM(crypto_alg_sem); + EXPORT_SYMBOL_GPL(crypto_alg_sem); + +-BLOCKING_NOTIFIER_HEAD(crypto_chain); ++SRCU_NOTIFIER_HEAD(crypto_chain); + EXPORT_SYMBOL_GPL(crypto_chain); + + static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg); +@@ -236,10 +236,10 @@ int crypto_probing_notify(unsigned long + { + int ok; + +- ok = blocking_notifier_call_chain(&crypto_chain, val, v); ++ ok = srcu_notifier_call_chain(&crypto_chain, val, v); + if (ok == NOTIFY_DONE) { + request_module("cryptomgr"); +- ok = blocking_notifier_call_chain(&crypto_chain, val, v); ++ ok = srcu_notifier_call_chain(&crypto_chain, val, v); + } + + return ok; +--- a/crypto/internal.h ++++ b/crypto/internal.h +@@ -47,7 +47,7 @@ struct crypto_larval { + + extern struct list_head crypto_alg_list; + extern struct rw_semaphore crypto_alg_sem; +-extern struct blocking_notifier_head crypto_chain; ++extern struct srcu_notifier_head crypto_chain; + + #ifdef CONFIG_PROC_FS + void __init crypto_init_proc(void); +@@ -146,7 +146,7 @@ static inline int crypto_is_moribund(str + + static inline void crypto_notify(unsigned long val, void *v) + { +- blocking_notifier_call_chain(&crypto_chain, val, v); ++ srcu_notifier_call_chain(&crypto_chain, val, v); + } + + #endif /* _CRYPTO_INTERNAL_H */ diff --git a/patches/features/all/rt/pid.h-include-atomic.h.patch b/patches/features/all/rt/pid.h-include-atomic.h.patch new file mode 100644 index 00000000000..422ba187378 --- /dev/null +++ b/patches/features/all/rt/pid.h-include-atomic.h.patch @@ -0,0 +1,37 @@ +From: Grygorii Strashko +Date: Tue, 21 Jul 2015 19:43:56 +0300 +Subject: pid.h: include atomic.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This patch fixes build error: + CC kernel/pid_namespace.o +In file included from kernel/pid_namespace.c:11:0: +include/linux/pid.h: In function 'get_pid': +include/linux/pid.h:78:3: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration] + atomic_inc(&pid->count); + ^ +which happens when + CONFIG_PROVE_LOCKING=n + CONFIG_DEBUG_SPINLOCK=n + CONFIG_DEBUG_MUTEXES=n + CONFIG_DEBUG_LOCK_ALLOC=n + CONFIG_PID_NS=y + +Vanilla gets this via spinlock.h. + +Signed-off-by: Grygorii Strashko +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/pid.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/linux/pid.h ++++ b/include/linux/pid.h +@@ -2,6 +2,7 @@ + #define _LINUX_PID_H + + #include ++#include + + enum pid_type + { diff --git a/patches/features/all/rt/ping-sysrq.patch b/patches/features/all/rt/ping-sysrq.patch new file mode 100644 index 00000000000..5d243a90bd2 --- /dev/null +++ b/patches/features/all/rt/ping-sysrq.patch @@ -0,0 +1,122 @@ +Subject: net: sysrq via icmp +From: Carsten Emde +Date: Tue, 19 Jul 2011 13:51:17 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There are (probably rare) situations when a system crashed and the system +console becomes unresponsive but the network icmp layer still is alive. +Wouldn't it be wonderful, if we then could submit a sysreq command via ping? + +This patch provides this facility. Please consult the updated documentation +Documentation/sysrq.txt for details. + +Signed-off-by: Carsten Emde + +--- + Documentation/sysrq.txt | 11 +++++++++-- + include/net/netns/ipv4.h | 1 + + net/ipv4/icmp.c | 30 ++++++++++++++++++++++++++++++ + net/ipv4/sysctl_net_ipv4.c | 7 +++++++ + 4 files changed, 47 insertions(+), 2 deletions(-) + +--- a/Documentation/sysrq.txt ++++ b/Documentation/sysrq.txt +@@ -59,10 +59,17 @@ On PowerPC - Press 'ALT - Print Screen ( + On other - If you know of the key combos for other architectures, please + let me know so I can add them to this section. + +-On all - write a character to /proc/sysrq-trigger. e.g.: +- ++On all - write a character to /proc/sysrq-trigger, e.g.: + echo t > /proc/sysrq-trigger + ++On all - Enable network SysRq by writing a cookie to icmp_echo_sysrq, e.g. ++ echo 0x01020304 >/proc/sys/net/ipv4/icmp_echo_sysrq ++ Send an ICMP echo request with this pattern plus the particular ++ SysRq command key. Example: ++ # ping -c1 -s57 -p0102030468 ++ will trigger the SysRq-H (help) command. ++ ++ + * What are the 'command' keys? + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 'b' - Will immediately reboot the system without syncing or unmounting +--- a/include/net/netns/ipv4.h ++++ b/include/net/netns/ipv4.h +@@ -69,6 +69,7 @@ struct netns_ipv4 { + + int sysctl_icmp_echo_ignore_all; + int sysctl_icmp_echo_ignore_broadcasts; ++ int sysctl_icmp_echo_sysrq; + int sysctl_icmp_ignore_bogus_error_responses; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; +--- a/net/ipv4/icmp.c ++++ b/net/ipv4/icmp.c +@@ -69,6 +69,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -899,6 +900,30 @@ static bool icmp_redirect(struct sk_buff + } + + /* ++ * 32bit and 64bit have different timestamp length, so we check for ++ * the cookie at offset 20 and verify it is repeated at offset 50 ++ */ ++#define CO_POS0 20 ++#define CO_POS1 50 ++#define CO_SIZE sizeof(int) ++#define ICMP_SYSRQ_SIZE 57 ++ ++/* ++ * We got a ICMP_SYSRQ_SIZE sized ping request. Check for the cookie ++ * pattern and if it matches send the next byte as a trigger to sysrq. ++ */ ++static void icmp_check_sysrq(struct net *net, struct sk_buff *skb) ++{ ++ int cookie = htonl(net->ipv4.sysctl_icmp_echo_sysrq); ++ char *p = skb->data; ++ ++ if (!memcmp(&cookie, p + CO_POS0, CO_SIZE) && ++ !memcmp(&cookie, p + CO_POS1, CO_SIZE) && ++ p[CO_POS0 + CO_SIZE] == p[CO_POS1 + CO_SIZE]) ++ handle_sysrq(p[CO_POS0 + CO_SIZE]); ++} ++ ++/* + * Handle ICMP_ECHO ("ping") requests. + * + * RFC 1122: 3.2.2.6 MUST have an echo server that answers ICMP echo +@@ -925,6 +950,11 @@ static bool icmp_echo(struct sk_buff *sk + icmp_param.data_len = skb->len; + icmp_param.head_len = sizeof(struct icmphdr); + icmp_reply(&icmp_param, skb); ++ ++ if (skb->len == ICMP_SYSRQ_SIZE && ++ net->ipv4.sysctl_icmp_echo_sysrq) { ++ icmp_check_sysrq(net, skb); ++ } + } + /* should there be an ICMP stat for ignored echos? */ + return true; +--- a/net/ipv4/sysctl_net_ipv4.c ++++ b/net/ipv4/sysctl_net_ipv4.c +@@ -681,6 +681,13 @@ static struct ctl_table ipv4_net_table[] + .proc_handler = proc_dointvec + }, + { ++ .procname = "icmp_echo_sysrq", ++ .data = &init_net.ipv4.sysctl_icmp_echo_sysrq, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec ++ }, ++ { + .procname = "icmp_ignore_bogus_error_responses", + .data = &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses, + .maxlen = sizeof(int), diff --git a/patches/features/all/rt/posix-timers-no-broadcast.patch b/patches/features/all/rt/posix-timers-no-broadcast.patch new file mode 100644 index 00000000000..946c89a0b48 --- /dev/null +++ b/patches/features/all/rt/posix-timers-no-broadcast.patch @@ -0,0 +1,34 @@ +From: Thomas Gleixner +Date: Fri, 3 Jul 2009 08:29:20 -0500 +Subject: posix-timers: Prevent broadcast signals +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Posix timers should not send broadcast signals and kernel only +signals. Prevent it. + +Signed-off-by: Thomas Gleixner + +--- + kernel/time/posix-timers.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/time/posix-timers.c ++++ b/kernel/time/posix-timers.c +@@ -506,6 +506,7 @@ static enum hrtimer_restart posix_timer_ + static struct pid *good_sigevent(sigevent_t * event) + { + struct task_struct *rtn = current->group_leader; ++ int sig = event->sigev_signo; + + if ((event->sigev_notify & SIGEV_THREAD_ID ) && + (!(rtn = find_task_by_vpid(event->sigev_notify_thread_id)) || +@@ -514,7 +515,8 @@ static struct pid *good_sigevent(sigeven + return NULL; + + if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) && +- ((event->sigev_signo <= 0) || (event->sigev_signo > SIGRTMAX))) ++ (sig <= 0 || sig > SIGRTMAX || sig_kernel_only(sig) || ++ sig_kernel_coredump(sig))) + return NULL; + + return task_pid(rtn); diff --git a/patches/features/all/rt/posix-timers-thread-posix-cpu-timers-on-rt.patch b/patches/features/all/rt/posix-timers-thread-posix-cpu-timers-on-rt.patch new file mode 100644 index 00000000000..909692fceb8 --- /dev/null +++ b/patches/features/all/rt/posix-timers-thread-posix-cpu-timers-on-rt.patch @@ -0,0 +1,302 @@ +From: John Stultz +Date: Fri, 3 Jul 2009 08:29:58 -0500 +Subject: posix-timers: Thread posix-cpu-timers on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +posix-cpu-timer code takes non -rt safe locks in hard irq +context. Move it to a thread. + +[ 3.0 fixes from Peter Zijlstra ] + +Signed-off-by: John Stultz +Signed-off-by: Thomas Gleixner + +--- + include/linux/init_task.h | 7 + + include/linux/sched.h | 3 + kernel/fork.c | 3 + kernel/time/posix-cpu-timers.c | 193 ++++++++++++++++++++++++++++++++++++++++- + 4 files changed, 202 insertions(+), 4 deletions(-) + +--- a/include/linux/init_task.h ++++ b/include/linux/init_task.h +@@ -150,6 +150,12 @@ extern struct task_group root_task_group + # define INIT_PERF_EVENTS(tsk) + #endif + ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define INIT_TIMER_LIST .posix_timer_list = NULL, ++#else ++# define INIT_TIMER_LIST ++#endif ++ + #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN + # define INIT_VTIME(tsk) \ + .vtime_seqcount = SEQCNT_ZERO(tsk.vtime_seqcount), \ +@@ -250,6 +256,7 @@ extern struct task_group root_task_group + .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \ + .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \ + .timer_slack_ns = 50000, /* 50 usec default slack */ \ ++ INIT_TIMER_LIST \ + .pids = { \ + [PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \ + [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \ +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1660,6 +1660,9 @@ struct task_struct { + + struct task_cputime cputime_expires; + struct list_head cpu_timers[3]; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct task_struct *posix_timer_list; ++#endif + + /* process credentials */ + const struct cred __rcu *ptracer_cred; /* Tracer's credentials at attach */ +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -1431,6 +1431,9 @@ static void rt_mutex_init_task(struct ta + */ + static void posix_cpu_timers_init(struct task_struct *tsk) + { ++#ifdef CONFIG_PREEMPT_RT_BASE ++ tsk->posix_timer_list = NULL; ++#endif + tsk->cputime_expires.prof_exp = 0; + tsk->cputime_expires.virt_exp = 0; + tsk->cputime_expires.sched_exp = 0; +--- a/kernel/time/posix-cpu-timers.c ++++ b/kernel/time/posix-cpu-timers.c +@@ -3,6 +3,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -620,7 +621,7 @@ static int posix_cpu_timer_set(struct k_ + /* + * Disarm any old timer after extracting its expiry time. + */ +- WARN_ON_ONCE(!irqs_disabled()); ++ WARN_ON_ONCE_NONRT(!irqs_disabled()); + + ret = 0; + old_incr = timer->it.cpu.incr; +@@ -1064,7 +1065,7 @@ void posix_cpu_timer_schedule(struct k_i + /* + * Now re-arm for the new expiry time. + */ +- WARN_ON_ONCE(!irqs_disabled()); ++ WARN_ON_ONCE_NONRT(!irqs_disabled()); + arm_timer(timer); + unlock_task_sighand(p, &flags); + +@@ -1153,13 +1154,13 @@ static inline int fastpath_timer_check(s + * already updated our counts. We need to check if any timers fire now. + * Interrupts are disabled. + */ +-void run_posix_cpu_timers(struct task_struct *tsk) ++static void __run_posix_cpu_timers(struct task_struct *tsk) + { + LIST_HEAD(firing); + struct k_itimer *timer, *next; + unsigned long flags; + +- WARN_ON_ONCE(!irqs_disabled()); ++ WARN_ON_ONCE_NONRT(!irqs_disabled()); + + /* + * The fast path checks that there are no expired thread or thread +@@ -1213,6 +1214,190 @@ void run_posix_cpu_timers(struct task_st + } + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++#include ++#include ++DEFINE_PER_CPU(struct task_struct *, posix_timer_task); ++DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist); ++ ++static int posix_cpu_timers_thread(void *data) ++{ ++ int cpu = (long)data; ++ ++ BUG_ON(per_cpu(posix_timer_task,cpu) != current); ++ ++ while (!kthread_should_stop()) { ++ struct task_struct *tsk = NULL; ++ struct task_struct *next = NULL; ++ ++ if (cpu_is_offline(cpu)) ++ goto wait_to_die; ++ ++ /* grab task list */ ++ raw_local_irq_disable(); ++ tsk = per_cpu(posix_timer_tasklist, cpu); ++ per_cpu(posix_timer_tasklist, cpu) = NULL; ++ raw_local_irq_enable(); ++ ++ /* its possible the list is empty, just return */ ++ if (!tsk) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule(); ++ __set_current_state(TASK_RUNNING); ++ continue; ++ } ++ ++ /* Process task list */ ++ while (1) { ++ /* save next */ ++ next = tsk->posix_timer_list; ++ ++ /* run the task timers, clear its ptr and ++ * unreference it ++ */ ++ __run_posix_cpu_timers(tsk); ++ tsk->posix_timer_list = NULL; ++ put_task_struct(tsk); ++ ++ /* check if this is the last on the list */ ++ if (next == tsk) ++ break; ++ tsk = next; ++ } ++ } ++ return 0; ++ ++wait_to_die: ++ /* Wait for kthread_stop */ ++ set_current_state(TASK_INTERRUPTIBLE); ++ while (!kthread_should_stop()) { ++ schedule(); ++ set_current_state(TASK_INTERRUPTIBLE); ++ } ++ __set_current_state(TASK_RUNNING); ++ return 0; ++} ++ ++static inline int __fastpath_timer_check(struct task_struct *tsk) ++{ ++ /* tsk == current, ensure it is safe to use ->signal/sighand */ ++ if (unlikely(tsk->exit_state)) ++ return 0; ++ ++ if (!task_cputime_zero(&tsk->cputime_expires)) ++ return 1; ++ ++ if (!task_cputime_zero(&tsk->signal->cputime_expires)) ++ return 1; ++ ++ return 0; ++} ++ ++void run_posix_cpu_timers(struct task_struct *tsk) ++{ ++ unsigned long cpu = smp_processor_id(); ++ struct task_struct *tasklist; ++ ++ BUG_ON(!irqs_disabled()); ++ if(!per_cpu(posix_timer_task, cpu)) ++ return; ++ /* get per-cpu references */ ++ tasklist = per_cpu(posix_timer_tasklist, cpu); ++ ++ /* check to see if we're already queued */ ++ if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) { ++ get_task_struct(tsk); ++ if (tasklist) { ++ tsk->posix_timer_list = tasklist; ++ } else { ++ /* ++ * The list is terminated by a self-pointing ++ * task_struct ++ */ ++ tsk->posix_timer_list = tsk; ++ } ++ per_cpu(posix_timer_tasklist, cpu) = tsk; ++ ++ wake_up_process(per_cpu(posix_timer_task, cpu)); ++ } ++} ++ ++/* ++ * posix_cpu_thread_call - callback that gets triggered when a CPU is added. ++ * Here we can start up the necessary migration thread for the new CPU. ++ */ ++static int posix_cpu_thread_call(struct notifier_block *nfb, ++ unsigned long action, void *hcpu) ++{ ++ int cpu = (long)hcpu; ++ struct task_struct *p; ++ struct sched_param param; ++ ++ switch (action) { ++ case CPU_UP_PREPARE: ++ p = kthread_create(posix_cpu_timers_thread, hcpu, ++ "posixcputmr/%d",cpu); ++ if (IS_ERR(p)) ++ return NOTIFY_BAD; ++ p->flags |= PF_NOFREEZE; ++ kthread_bind(p, cpu); ++ /* Must be high prio to avoid getting starved */ ++ param.sched_priority = MAX_RT_PRIO-1; ++ sched_setscheduler(p, SCHED_FIFO, ¶m); ++ per_cpu(posix_timer_task,cpu) = p; ++ break; ++ case CPU_ONLINE: ++ /* Strictly unneccessary, as first user will wake it. */ ++ wake_up_process(per_cpu(posix_timer_task,cpu)); ++ break; ++#ifdef CONFIG_HOTPLUG_CPU ++ case CPU_UP_CANCELED: ++ /* Unbind it from offline cpu so it can run. Fall thru. */ ++ kthread_bind(per_cpu(posix_timer_task, cpu), ++ cpumask_any(cpu_online_mask)); ++ kthread_stop(per_cpu(posix_timer_task,cpu)); ++ per_cpu(posix_timer_task,cpu) = NULL; ++ break; ++ case CPU_DEAD: ++ kthread_stop(per_cpu(posix_timer_task,cpu)); ++ per_cpu(posix_timer_task,cpu) = NULL; ++ break; ++#endif ++ } ++ return NOTIFY_OK; ++} ++ ++/* Register at highest priority so that task migration (migrate_all_tasks) ++ * happens before everything else. ++ */ ++static struct notifier_block posix_cpu_thread_notifier = { ++ .notifier_call = posix_cpu_thread_call, ++ .priority = 10 ++}; ++ ++static int __init posix_cpu_thread_init(void) ++{ ++ void *hcpu = (void *)(long)smp_processor_id(); ++ /* Start one for boot CPU. */ ++ unsigned long cpu; ++ ++ /* init the per-cpu posix_timer_tasklets */ ++ for_each_possible_cpu(cpu) ++ per_cpu(posix_timer_tasklist, cpu) = NULL; ++ ++ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_UP_PREPARE, hcpu); ++ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_ONLINE, hcpu); ++ register_cpu_notifier(&posix_cpu_thread_notifier); ++ return 0; ++} ++early_initcall(posix_cpu_thread_init); ++#else /* CONFIG_PREEMPT_RT_BASE */ ++void run_posix_cpu_timers(struct task_struct *tsk) ++{ ++ __run_posix_cpu_timers(tsk); ++} ++#endif /* CONFIG_PREEMPT_RT_BASE */ ++ + /* + * Set one of the process-wide special case CPU timers or RLIMIT_CPU. + * The tsk->sighand->siglock must be held by the caller. diff --git a/patches/features/all/rt/power-disable-highmem-on-rt.patch b/patches/features/all/rt/power-disable-highmem-on-rt.patch new file mode 100644 index 00000000000..cb760e98cbd --- /dev/null +++ b/patches/features/all/rt/power-disable-highmem-on-rt.patch @@ -0,0 +1,23 @@ +Subject: powerpc: Disable highmem on RT +From: Thomas Gleixner +Date: Mon, 18 Jul 2011 17:08:34 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The current highmem handling on -RT is not compatible and needs fixups. + +Signed-off-by: Thomas Gleixner +--- + arch/powerpc/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/Kconfig ++++ b/arch/powerpc/Kconfig +@@ -322,7 +322,7 @@ menu "Kernel options" + + config HIGHMEM + bool "High memory support" +- depends on PPC32 ++ depends on PPC32 && !PREEMPT_RT_FULL + + source kernel/Kconfig.hz + source kernel/Kconfig.preempt diff --git a/patches/features/all/rt/power-use-generic-rwsem-on-rt.patch b/patches/features/all/rt/power-use-generic-rwsem-on-rt.patch new file mode 100644 index 00000000000..f11b8d5e8c2 --- /dev/null +++ b/patches/features/all/rt/power-use-generic-rwsem-on-rt.patch @@ -0,0 +1,27 @@ +From: Thomas Gleixner +Date: Tue, 14 Jul 2015 14:26:34 +0200 +Subject: powerpc: Use generic rwsem on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use generic code which uses rtmutex + +Signed-off-by: Thomas Gleixner +--- + arch/powerpc/Kconfig | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/powerpc/Kconfig ++++ b/arch/powerpc/Kconfig +@@ -52,10 +52,11 @@ config LOCKDEP_SUPPORT + + config RWSEM_GENERIC_SPINLOCK + bool ++ default y if PREEMPT_RT_FULL + + config RWSEM_XCHGADD_ALGORITHM + bool +- default y ++ default y if !PREEMPT_RT_FULL + + config GENERIC_LOCKBREAK + bool diff --git a/patches/features/all/rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/patches/features/all/rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch new file mode 100644 index 00000000000..1f956fc3c0f --- /dev/null +++ b/patches/features/all/rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -0,0 +1,38 @@ +From: Bogdan Purcareata +Date: Fri, 24 Apr 2015 15:53:13 +0000 +Subject: powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT_FULL +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +While converting the openpic emulation code to use a raw_spinlock_t enables +guests to run on RT, there's still a performance issue. For interrupts sent in +directed delivery mode with a multiple CPU mask, the emulated openpic will loop +through all of the VCPUs, and for each VCPUs, it call IRQ_check, which will loop +through all the pending interrupts for that VCPU. This is done while holding the +raw_lock, meaning that in all this time the interrupts and preemption are +disabled on the host Linux. A malicious user app can max both these number and +cause a DoS. + +This temporary fix is sent for two reasons. First is so that users who want to +use the in-kernel MPIC emulation are aware of the potential latencies, thus +making sure that the hardware MPIC and their usage scenario does not involve +interrupts sent in directed delivery mode, and the number of possible pending +interrupts is kept small. Secondly, this should incentivize the development of a +proper openpic emulation that would be better suited for RT. + +Acked-by: Scott Wood +Signed-off-by: Bogdan Purcareata +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/powerpc/kvm/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/powerpc/kvm/Kconfig ++++ b/arch/powerpc/kvm/Kconfig +@@ -175,6 +175,7 @@ config KVM_E500MC + config KVM_MPIC + bool "KVM in-kernel MPIC emulation" + depends on KVM && E500 ++ depends on !PREEMPT_RT_FULL + select HAVE_KVM_IRQCHIP + select HAVE_KVM_IRQFD + select HAVE_KVM_IRQ_ROUTING diff --git a/patches/features/all/rt/powerpc-preempt-lazy-support.patch b/patches/features/all/rt/powerpc-preempt-lazy-support.patch new file mode 100644 index 00000000000..42b8fa0f8a6 --- /dev/null +++ b/patches/features/all/rt/powerpc-preempt-lazy-support.patch @@ -0,0 +1,174 @@ +From: Thomas Gleixner +Date: Thu, 1 Nov 2012 10:14:11 +0100 +Subject: powerpc: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Implement the powerpc pieces for lazy preempt. + +Signed-off-by: Thomas Gleixner +--- + arch/powerpc/Kconfig | 1 + + arch/powerpc/include/asm/thread_info.h | 11 ++++++++--- + arch/powerpc/kernel/asm-offsets.c | 1 + + arch/powerpc/kernel/entry_32.S | 17 ++++++++++++----- + arch/powerpc/kernel/entry_64.S | 14 +++++++++++--- + 5 files changed, 33 insertions(+), 11 deletions(-) + +--- a/arch/powerpc/Kconfig ++++ b/arch/powerpc/Kconfig +@@ -135,6 +135,7 @@ config PPC + select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST + select GENERIC_STRNCPY_FROM_USER + select GENERIC_STRNLEN_USER ++ select HAVE_PREEMPT_LAZY + select HAVE_MOD_ARCH_SPECIFIC + select MODULES_USE_ELF_RELA + select CLONE_BACKWARDS +--- a/arch/powerpc/include/asm/thread_info.h ++++ b/arch/powerpc/include/asm/thread_info.h +@@ -43,6 +43,8 @@ struct thread_info { + int cpu; /* cpu we're on */ + int preempt_count; /* 0 => preemptable, + <0 => BUG */ ++ int preempt_lazy_count; /* 0 => preemptable, ++ <0 => BUG */ + unsigned long local_flags; /* private flags for thread */ + #ifdef CONFIG_LIVEPATCH + unsigned long *livepatch_sp; +@@ -88,8 +90,7 @@ static inline struct thread_info *curren + #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ + #define TIF_SIGPENDING 1 /* signal pending */ + #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ +-#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling +- TIF_NEED_RESCHED */ ++#define TIF_NEED_RESCHED_LAZY 3 /* lazy rescheduling necessary */ + #define TIF_32BIT 4 /* 32 bit binary */ + #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */ + #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ +@@ -107,6 +108,8 @@ static inline struct thread_info *curren + #if defined(CONFIG_PPC64) + #define TIF_ELF2ABI 18 /* function descriptors must die! */ + #endif ++#define TIF_POLLING_NRFLAG 19 /* true if poll_idle() is polling ++ TIF_NEED_RESCHED */ + + /* as above, but as bit values */ + #define _TIF_SYSCALL_TRACE (1< +Date: Sun, 31 May 2015 14:44:42 -0400 +Subject: powerpc: ps3/device-init.c - adapt to completions using swait vs wait +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +To fix: + + cc1: warnings being treated as errors + arch/powerpc/platforms/ps3/device-init.c: In function 'ps3_notification_read_write': + arch/powerpc/platforms/ps3/device-init.c:755:2: error: passing argument 1 of 'prepare_to_wait_event' from incompatible pointer type + arch/powerpc/platforms/ps3/device-init.c:755:2: error: passing argument 1 of 'abort_exclusive_wait' from incompatible pointer type + arch/powerpc/platforms/ps3/device-init.c:755:2: error: passing argument 1 of 'finish_wait' from incompatible pointer type + arch/powerpc/platforms/ps3/device-init.o] Error 1 + make[3]: *** Waiting for unfinished jobs.... + +Signed-off-by: Paul Gortmaker +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/powerpc/platforms/ps3/device-init.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/platforms/ps3/device-init.c ++++ b/arch/powerpc/platforms/ps3/device-init.c +@@ -752,7 +752,7 @@ static int ps3_notification_read_write(s + } + pr_debug("%s:%u: notification %s issued\n", __func__, __LINE__, op); + +- res = wait_event_interruptible(dev->done.wait, ++ res = swait_event_interruptible(dev->done.wait, + dev->done.done || kthread_should_stop()); + if (kthread_should_stop()) + res = -EINTR; diff --git a/patches/features/all/rt/preempt-lazy-support.patch b/patches/features/all/rt/preempt-lazy-support.patch new file mode 100644 index 00000000000..711947e3672 --- /dev/null +++ b/patches/features/all/rt/preempt-lazy-support.patch @@ -0,0 +1,589 @@ +Subject: sched: Add support for lazy preemption +From: Thomas Gleixner +Date: Fri, 26 Oct 2012 18:50:54 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +It has become an obsession to mitigate the determinism vs. throughput +loss of RT. Looking at the mainline semantics of preemption points +gives a hint why RT sucks throughput wise for ordinary SCHED_OTHER +tasks. One major issue is the wakeup of tasks which are right away +preempting the waking task while the waking task holds a lock on which +the woken task will block right after having preempted the wakee. In +mainline this is prevented due to the implicit preemption disable of +spin/rw_lock held regions. On RT this is not possible due to the fully +preemptible nature of sleeping spinlocks. + +Though for a SCHED_OTHER task preempting another SCHED_OTHER task this +is really not a correctness issue. RT folks are concerned about +SCHED_FIFO/RR tasks preemption and not about the purely fairness +driven SCHED_OTHER preemption latencies. + +So I introduced a lazy preemption mechanism which only applies to +SCHED_OTHER tasks preempting another SCHED_OTHER task. Aside of the +existing preempt_count each tasks sports now a preempt_lazy_count +which is manipulated on lock acquiry and release. This is slightly +incorrect as for lazyness reasons I coupled this on +migrate_disable/enable so some other mechanisms get the same treatment +(e.g. get_cpu_light). + +Now on the scheduler side instead of setting NEED_RESCHED this sets +NEED_RESCHED_LAZY in case of a SCHED_OTHER/SCHED_OTHER preemption and +therefor allows to exit the waking task the lock held region before +the woken task preempts. That also works better for cross CPU wakeups +as the other side can stay in the adaptive spinning loop. + +For RT class preemption there is no change. This simply sets +NEED_RESCHED and forgoes the lazy preemption counter. + + Initial test do not expose any observable latency increasement, but +history shows that I've been proven wrong before :) + +The lazy preemption mode is per default on, but with +CONFIG_SCHED_DEBUG enabled it can be disabled via: + + # echo NO_PREEMPT_LAZY >/sys/kernel/debug/sched_features + +and reenabled via + + # echo PREEMPT_LAZY >/sys/kernel/debug/sched_features + +The test results so far are very machine and workload dependent, but +there is a clear trend that it enhances the non RT workload +performance. + +Signed-off-by: Thomas Gleixner +--- + include/linux/preempt.h | 29 ++++++++++++++++- + include/linux/sched.h | 37 ++++++++++++++++++++++ + include/linux/thread_info.h | 12 ++++++- + include/linux/trace_events.h | 1 + kernel/Kconfig.preempt | 6 +++ + kernel/sched/core.c | 72 +++++++++++++++++++++++++++++++++++++++++-- + kernel/sched/fair.c | 16 ++++----- + kernel/sched/features.h | 3 + + kernel/sched/sched.h | 9 +++++ + kernel/trace/trace.c | 37 +++++++++++++--------- + kernel/trace/trace.h | 2 + + kernel/trace/trace_output.c | 14 +++++++- + 12 files changed, 209 insertions(+), 29 deletions(-) + +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -153,6 +153,20 @@ extern void preempt_count_sub(int val); + #define preempt_count_inc() preempt_count_add(1) + #define preempt_count_dec() preempt_count_sub(1) + ++#ifdef CONFIG_PREEMPT_LAZY ++#define add_preempt_lazy_count(val) do { preempt_lazy_count() += (val); } while (0) ++#define sub_preempt_lazy_count(val) do { preempt_lazy_count() -= (val); } while (0) ++#define inc_preempt_lazy_count() add_preempt_lazy_count(1) ++#define dec_preempt_lazy_count() sub_preempt_lazy_count(1) ++#define preempt_lazy_count() (current_thread_info()->preempt_lazy_count) ++#else ++#define add_preempt_lazy_count(val) do { } while (0) ++#define sub_preempt_lazy_count(val) do { } while (0) ++#define inc_preempt_lazy_count() do { } while (0) ++#define dec_preempt_lazy_count() do { } while (0) ++#define preempt_lazy_count() (0) ++#endif ++ + #ifdef CONFIG_PREEMPT_COUNT + + #define preempt_disable() \ +@@ -161,6 +175,12 @@ do { \ + barrier(); \ + } while (0) + ++#define preempt_lazy_disable() \ ++do { \ ++ inc_preempt_lazy_count(); \ ++ barrier(); \ ++} while (0) ++ + #define sched_preempt_enable_no_resched() \ + do { \ + barrier(); \ +@@ -198,6 +218,13 @@ do { \ + __preempt_schedule(); \ + } while (0) + ++#define preempt_lazy_enable() \ ++do { \ ++ dec_preempt_lazy_count(); \ ++ barrier(); \ ++ preempt_check_resched(); \ ++} while (0) ++ + #else /* !CONFIG_PREEMPT */ + #define preempt_enable() \ + do { \ +@@ -264,7 +291,7 @@ do { \ + } while (0) + #define preempt_fold_need_resched() \ + do { \ +- if (tif_need_resched()) \ ++ if (tif_need_resched_now()) \ + set_preempt_need_resched(); \ + } while (0) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -3342,6 +3342,43 @@ static inline int test_tsk_need_resched( + return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED)); + } + ++#ifdef CONFIG_PREEMPT_LAZY ++static inline void set_tsk_need_resched_lazy(struct task_struct *tsk) ++{ ++ set_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY); ++} ++ ++static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk) ++{ ++ clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY); ++} ++ ++static inline int test_tsk_need_resched_lazy(struct task_struct *tsk) ++{ ++ return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY)); ++} ++ ++static inline int need_resched_lazy(void) ++{ ++ return test_thread_flag(TIF_NEED_RESCHED_LAZY); ++} ++ ++static inline int need_resched_now(void) ++{ ++ return test_thread_flag(TIF_NEED_RESCHED); ++} ++ ++#else ++static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk) { } ++static inline int need_resched_lazy(void) { return 0; } ++ ++static inline int need_resched_now(void) ++{ ++ return test_thread_flag(TIF_NEED_RESCHED); ++} ++ ++#endif ++ + static inline int restart_syscall(void) + { + set_tsk_thread_flag(current, TIF_SIGPENDING); +--- a/include/linux/thread_info.h ++++ b/include/linux/thread_info.h +@@ -107,7 +107,17 @@ static inline int test_ti_thread_flag(st + #define test_thread_flag(flag) \ + test_ti_thread_flag(current_thread_info(), flag) + +-#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) ++#ifdef CONFIG_PREEMPT_LAZY ++#define tif_need_resched() (test_thread_flag(TIF_NEED_RESCHED) || \ ++ test_thread_flag(TIF_NEED_RESCHED_LAZY)) ++#define tif_need_resched_now() (test_thread_flag(TIF_NEED_RESCHED)) ++#define tif_need_resched_lazy() test_thread_flag(TIF_NEED_RESCHED_LAZY)) ++ ++#else ++#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) ++#define tif_need_resched_now() test_thread_flag(TIF_NEED_RESCHED) ++#define tif_need_resched_lazy() 0 ++#endif + + #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES + static inline int arch_within_stack_frames(const void * const stack, +--- a/include/linux/trace_events.h ++++ b/include/linux/trace_events.h +@@ -58,6 +58,7 @@ struct trace_entry { + int pid; + unsigned short migrate_disable; + unsigned short padding; ++ unsigned char preempt_lazy_count; + }; + + #define TRACE_EVENT_TYPE_MAX \ +--- a/kernel/Kconfig.preempt ++++ b/kernel/Kconfig.preempt +@@ -6,6 +6,12 @@ config PREEMPT_RT_BASE + bool + select PREEMPT + ++config HAVE_PREEMPT_LAZY ++ bool ++ ++config PREEMPT_LAZY ++ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL ++ + choice + prompt "Preemption Model" + default PREEMPT_NONE +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -510,6 +510,38 @@ void resched_curr(struct rq *rq) + trace_sched_wake_idle_without_ipi(cpu); + } + ++#ifdef CONFIG_PREEMPT_LAZY ++void resched_curr_lazy(struct rq *rq) ++{ ++ struct task_struct *curr = rq->curr; ++ int cpu; ++ ++ if (!sched_feat(PREEMPT_LAZY)) { ++ resched_curr(rq); ++ return; ++ } ++ ++ lockdep_assert_held(&rq->lock); ++ ++ if (test_tsk_need_resched(curr)) ++ return; ++ ++ if (test_tsk_need_resched_lazy(curr)) ++ return; ++ ++ set_tsk_need_resched_lazy(curr); ++ ++ cpu = cpu_of(rq); ++ if (cpu == smp_processor_id()) ++ return; ++ ++ /* NEED_RESCHED_LAZY must be visible before we test polling */ ++ smp_mb(); ++ if (!tsk_is_polling(curr)) ++ smp_send_reschedule(cpu); ++} ++#endif ++ + void resched_cpu(int cpu) + { + struct rq *rq = cpu_rq(cpu); +@@ -2531,6 +2563,9 @@ int sched_fork(unsigned long clone_flags + p->on_cpu = 0; + #endif + init_task_preempt_count(p); ++#ifdef CONFIG_HAVE_PREEMPT_LAZY ++ task_thread_info(p)->preempt_lazy_count = 0; ++#endif + #ifdef CONFIG_SMP + plist_node_init(&p->pushable_tasks, MAX_PRIO); + RB_CLEAR_NODE(&p->pushable_dl_tasks); +@@ -3362,6 +3397,7 @@ void migrate_disable(void) + } + + preempt_disable(); ++ preempt_lazy_disable(); + pin_current_cpu(); + p->migrate_disable = 1; + preempt_enable(); +@@ -3401,6 +3437,7 @@ void migrate_enable(void) + + unpin_current_cpu(); + preempt_enable(); ++ preempt_lazy_enable(); + } + EXPORT_SYMBOL(migrate_enable); + #endif +@@ -3530,6 +3567,7 @@ static void __sched notrace __schedule(b + + next = pick_next_task(rq, prev, cookie); + clear_tsk_need_resched(prev); ++ clear_tsk_need_resched_lazy(prev); + clear_preempt_need_resched(); + rq->clock_skip_update = 0; + +@@ -3675,6 +3713,30 @@ static void __sched notrace preempt_sche + } while (need_resched()); + } + ++#ifdef CONFIG_PREEMPT_LAZY ++/* ++ * If TIF_NEED_RESCHED is then we allow to be scheduled away since this is ++ * set by a RT task. Oterwise we try to avoid beeing scheduled out as long as ++ * preempt_lazy_count counter >0. ++ */ ++static __always_inline int preemptible_lazy(void) ++{ ++ if (test_thread_flag(TIF_NEED_RESCHED)) ++ return 1; ++ if (current_thread_info()->preempt_lazy_count) ++ return 0; ++ return 1; ++} ++ ++#else ++ ++static inline int preemptible_lazy(void) ++{ ++ return 1; ++} ++ ++#endif ++ + #ifdef CONFIG_PREEMPT + /* + * this is the entry point to schedule() from in-kernel preemption +@@ -3689,7 +3751,8 @@ asmlinkage __visible void __sched notrac + */ + if (likely(!preemptible())) + return; +- ++ if (!preemptible_lazy()) ++ return; + preempt_schedule_common(); + } + NOKPROBE_SYMBOL(preempt_schedule); +@@ -3716,6 +3779,9 @@ asmlinkage __visible void __sched notrac + if (likely(!preemptible())) + return; + ++ if (!preemptible_lazy()) ++ return; ++ + do { + /* + * Because the function tracer can trace preempt_count_sub() +@@ -5481,7 +5547,9 @@ void init_idle(struct task_struct *idle, + + /* Set the preempt count _outside_ the spinlocks! */ + init_idle_preempt_count(idle, cpu); +- ++#ifdef CONFIG_HAVE_PREEMPT_LAZY ++ task_thread_info(idle)->preempt_lazy_count = 0; ++#endif + /* + * The idle tasks have their own, simple scheduling class: + */ +--- a/kernel/sched/fair.c ++++ b/kernel/sched/fair.c +@@ -3518,7 +3518,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq + ideal_runtime = sched_slice(cfs_rq, curr); + delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime; + if (delta_exec > ideal_runtime) { +- resched_curr(rq_of(cfs_rq)); ++ resched_curr_lazy(rq_of(cfs_rq)); + /* + * The current task ran long enough, ensure it doesn't get + * re-elected due to buddy favours. +@@ -3542,7 +3542,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq + return; + + if (delta > ideal_runtime) +- resched_curr(rq_of(cfs_rq)); ++ resched_curr_lazy(rq_of(cfs_rq)); + } + + static void +@@ -3684,7 +3684,7 @@ entity_tick(struct cfs_rq *cfs_rq, struc + * validating it and just reschedule. + */ + if (queued) { +- resched_curr(rq_of(cfs_rq)); ++ resched_curr_lazy(rq_of(cfs_rq)); + return; + } + /* +@@ -3866,7 +3866,7 @@ static void __account_cfs_rq_runtime(str + * hierarchy can be throttled + */ + if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr)) +- resched_curr(rq_of(cfs_rq)); ++ resched_curr_lazy(rq_of(cfs_rq)); + } + + static __always_inline +@@ -4494,7 +4494,7 @@ static void hrtick_start_fair(struct rq + + if (delta < 0) { + if (rq->curr == p) +- resched_curr(rq); ++ resched_curr_lazy(rq); + return; + } + hrtick_start(rq, delta); +@@ -5905,7 +5905,7 @@ static void check_preempt_wakeup(struct + return; + + preempt: +- resched_curr(rq); ++ resched_curr_lazy(rq); + /* + * Only set the backward buddy when the current task is still + * on the rq. This can happen when a wakeup gets interleaved +@@ -8631,7 +8631,7 @@ static void task_fork_fair(struct task_s + * 'current' within the tree based on its new key value. + */ + swap(curr->vruntime, se->vruntime); +- resched_curr(rq); ++ resched_curr_lazy(rq); + } + + se->vruntime -= cfs_rq->min_vruntime; +@@ -8655,7 +8655,7 @@ prio_changed_fair(struct rq *rq, struct + */ + if (rq->curr == p) { + if (p->prio > oldprio) +- resched_curr(rq); ++ resched_curr_lazy(rq); + } else + check_preempt_curr(rq, p, 0); + } +--- a/kernel/sched/features.h ++++ b/kernel/sched/features.h +@@ -47,6 +47,9 @@ SCHED_FEAT(NONTASK_CAPACITY, true) + + #ifdef CONFIG_PREEMPT_RT_FULL + SCHED_FEAT(TTWU_QUEUE, false) ++# ifdef CONFIG_PREEMPT_LAZY ++SCHED_FEAT(PREEMPT_LAZY, true) ++# endif + #else + + /* +--- a/kernel/sched/sched.h ++++ b/kernel/sched/sched.h +@@ -1347,6 +1347,15 @@ extern void init_sched_fair_class(void); + extern void resched_curr(struct rq *rq); + extern void resched_cpu(int cpu); + ++#ifdef CONFIG_PREEMPT_LAZY ++extern void resched_curr_lazy(struct rq *rq); ++#else ++static inline void resched_curr_lazy(struct rq *rq) ++{ ++ resched_curr(rq); ++} ++#endif ++ + extern struct rt_bandwidth def_rt_bandwidth; + extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); + +--- a/kernel/trace/trace.c ++++ b/kernel/trace/trace.c +@@ -1897,6 +1897,7 @@ tracing_generic_entry_update(struct trac + struct task_struct *tsk = current; + + entry->preempt_count = pc & 0xff; ++ entry->preempt_lazy_count = preempt_lazy_count(); + entry->pid = (tsk) ? tsk->pid : 0; + entry->flags = + #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT +@@ -1907,7 +1908,8 @@ tracing_generic_entry_update(struct trac + ((pc & NMI_MASK ) ? TRACE_FLAG_NMI : 0) | + ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) | + ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) | +- (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) | ++ (tif_need_resched_now() ? TRACE_FLAG_NEED_RESCHED : 0) | ++ (need_resched_lazy() ? TRACE_FLAG_NEED_RESCHED_LAZY : 0) | + (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0); + + entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0; +@@ -2894,15 +2896,17 @@ get_total_entries(struct trace_buffer *b + + static void print_lat_help_header(struct seq_file *m) + { +- seq_puts(m, "# _------=> CPU# \n" +- "# / _-----=> irqs-off \n" +- "# | / _----=> need-resched \n" +- "# || / _---=> hardirq/softirq \n" +- "# ||| / _--=> preempt-depth \n" +- "# |||| / _--=> migrate-disable\n" +- "# ||||| / delay \n" +- "# cmd pid |||||| time | caller \n" +- "# \\ / ||||| \\ | / \n"); ++ seq_puts(m, "# _--------=> CPU# \n" ++ "# / _-------=> irqs-off \n" ++ "# | / _------=> need-resched \n" ++ "# || / _-----=> need-resched_lazy \n" ++ "# ||| / _----=> hardirq/softirq \n" ++ "# |||| / _---=> preempt-depth \n" ++ "# ||||| / _--=> preempt-lazy-depth\n" ++ "# |||||| / _-=> migrate-disable \n" ++ "# ||||||| / delay \n" ++ "# cmd pid |||||||| time | caller \n" ++ "# \\ / |||||||| \\ | / \n"); + } + + static void print_event_info(struct trace_buffer *buf, struct seq_file *m) +@@ -2928,11 +2932,14 @@ static void print_func_help_header_irq(s + print_event_info(buf, m); + seq_puts(m, "# _-----=> irqs-off\n" + "# / _----=> need-resched\n" +- "# | / _---=> hardirq/softirq\n" +- "# || / _--=> preempt-depth\n" +- "# ||| / delay\n" +- "# TASK-PID CPU# |||| TIMESTAMP FUNCTION\n" +- "# | | | |||| | |\n"); ++ "# |/ _-----=> need-resched_lazy\n" ++ "# || / _---=> hardirq/softirq\n" ++ "# ||| / _--=> preempt-depth\n" ++ "# |||| /_--=> preempt-lazy-depth\n" ++ "# ||||| _-=> migrate-disable \n" ++ "# ||||| / delay\n" ++ "# TASK-PID CPU# |||||| TIMESTAMP FUNCTION\n" ++ "# | | | |||||| | |\n"); + } + + void +--- a/kernel/trace/trace.h ++++ b/kernel/trace/trace.h +@@ -124,6 +124,7 @@ struct kretprobe_trace_entry_head { + * NEED_RESCHED - reschedule is requested + * HARDIRQ - inside an interrupt handler + * SOFTIRQ - inside a softirq handler ++ * NEED_RESCHED_LAZY - lazy reschedule is requested + */ + enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 0x01, +@@ -133,6 +134,7 @@ enum trace_flag_type { + TRACE_FLAG_SOFTIRQ = 0x10, + TRACE_FLAG_PREEMPT_RESCHED = 0x20, + TRACE_FLAG_NMI = 0x40, ++ TRACE_FLAG_NEED_RESCHED_LAZY = 0x80, + }; + + #define TRACE_BUF_SIZE 1024 +--- a/kernel/trace/trace_output.c ++++ b/kernel/trace/trace_output.c +@@ -386,6 +386,7 @@ int trace_print_lat_fmt(struct trace_seq + { + char hardsoft_irq; + char need_resched; ++ char need_resched_lazy; + char irqs_off; + int hardirq; + int softirq; +@@ -416,6 +417,9 @@ int trace_print_lat_fmt(struct trace_seq + break; + } + ++ need_resched_lazy = ++ (entry->flags & TRACE_FLAG_NEED_RESCHED_LAZY) ? 'L' : '.'; ++ + hardsoft_irq = + (nmi && hardirq) ? 'Z' : + nmi ? 'z' : +@@ -424,14 +428,20 @@ int trace_print_lat_fmt(struct trace_seq + softirq ? 's' : + '.' ; + +- trace_seq_printf(s, "%c%c%c", +- irqs_off, need_resched, hardsoft_irq); ++ trace_seq_printf(s, "%c%c%c%c", ++ irqs_off, need_resched, need_resched_lazy, ++ hardsoft_irq); + + if (entry->preempt_count) + trace_seq_printf(s, "%x", entry->preempt_count); + else + trace_seq_putc(s, '.'); + ++ if (entry->preempt_lazy_count) ++ trace_seq_printf(s, "%x", entry->preempt_lazy_count); ++ else ++ trace_seq_putc(s, '.'); ++ + if (entry->migrate_disable) + trace_seq_printf(s, "%x", entry->migrate_disable); + else diff --git a/patches/features/all/rt/preempt-nort-rt-variants.patch b/patches/features/all/rt/preempt-nort-rt-variants.patch new file mode 100644 index 00000000000..571ea6e867b --- /dev/null +++ b/patches/features/all/rt/preempt-nort-rt-variants.patch @@ -0,0 +1,48 @@ +From: Thomas Gleixner +Date: Fri, 24 Jul 2009 12:38:56 +0200 +Subject: preempt: Provide preempt_*_(no)rt variants +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT needs a few preempt_disable/enable points which are not necessary +otherwise. Implement variants to avoid #ifdeffery. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/preempt.h | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -154,7 +154,11 @@ do { \ + preempt_count_dec(); \ + } while (0) + +-#define preempt_enable_no_resched() sched_preempt_enable_no_resched() ++#ifdef CONFIG_PREEMPT_RT_BASE ++# define preempt_enable_no_resched() sched_preempt_enable_no_resched() ++#else ++# define preempt_enable_no_resched() preempt_enable() ++#endif + + #define preemptible() (preempt_count() == 0 && !irqs_disabled()) + +@@ -248,6 +252,18 @@ do { \ + set_preempt_need_resched(); \ + } while (0) + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define preempt_disable_rt() preempt_disable() ++# define preempt_enable_rt() preempt_enable() ++# define preempt_disable_nort() barrier() ++# define preempt_enable_nort() barrier() ++#else ++# define preempt_disable_rt() barrier() ++# define preempt_enable_rt() barrier() ++# define preempt_disable_nort() preempt_disable() ++# define preempt_enable_nort() preempt_enable() ++#endif ++ + #ifdef CONFIG_PREEMPT_NOTIFIERS + + struct preempt_notifier; diff --git a/patches/features/all/rt/printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch b/patches/features/all/rt/printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch new file mode 100644 index 00000000000..a5f1076a2e6 --- /dev/null +++ b/patches/features/all/rt/printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch @@ -0,0 +1,32 @@ +Subject: printk: Add "force_early_printk" boot param to help with debugging +From: Peter Zijlstra +Date: Fri, 02 Sep 2011 14:41:29 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Gives me an option to screw printk and actually see what the machine +says. + +Signed-off-by: Peter Zijlstra +Link: http://lkml.kernel.org/r/1314967289.1301.11.camel@twins +Signed-off-by: Thomas Gleixner +Link: http://lkml.kernel.org/n/tip-ykb97nsfmobq44xketrxs977@git.kernel.org +--- + kernel/printk/printk.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -381,6 +381,13 @@ asmlinkage void early_printk(const char + */ + static bool __read_mostly printk_killswitch; + ++static int __init force_early_printk_setup(char *str) ++{ ++ printk_killswitch = true; ++ return 0; ++} ++early_param("force_early_printk", force_early_printk_setup); ++ + void printk_kill(void) + { + printk_killswitch = true; diff --git a/patches/features/all/rt/printk-kill.patch b/patches/features/all/rt/printk-kill.patch new file mode 100644 index 00000000000..09764aa6506 --- /dev/null +++ b/patches/features/all/rt/printk-kill.patch @@ -0,0 +1,164 @@ +Subject: printk: Add a printk kill switch +From: Ingo Molnar +Date: Fri, 22 Jul 2011 17:58:40 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that +it does not dead-lock with the early printk code. + +Signed-off-by: Thomas Gleixner +--- + include/linux/printk.h | 2 + + kernel/printk/printk.c | 79 ++++++++++++++++++++++++++++++++++++------------- + kernel/watchdog.c | 10 ++++++ + 3 files changed, 71 insertions(+), 20 deletions(-) + +--- a/include/linux/printk.h ++++ b/include/linux/printk.h +@@ -126,9 +126,11 @@ struct va_format { + #ifdef CONFIG_EARLY_PRINTK + extern asmlinkage __printf(1, 2) + void early_printk(const char *fmt, ...); ++extern void printk_kill(void); + #else + static inline __printf(1, 2) __cold + void early_printk(const char *s, ...) { } ++static inline void printk_kill(void) { } + #endif + + #ifdef CONFIG_PRINTK_NMI +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -351,6 +351,58 @@ struct printk_log { + */ + DEFINE_RAW_SPINLOCK(logbuf_lock); + ++#ifdef CONFIG_EARLY_PRINTK ++struct console *early_console; ++ ++static void early_vprintk(const char *fmt, va_list ap) ++{ ++ if (early_console) { ++ char buf[512]; ++ int n = vscnprintf(buf, sizeof(buf), fmt, ap); ++ ++ early_console->write(early_console, buf, n); ++ } ++} ++ ++asmlinkage void early_printk(const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ early_vprintk(fmt, ap); ++ va_end(ap); ++} ++ ++/* ++ * This is independent of any log levels - a global ++ * kill switch that turns off all of printk. ++ * ++ * Used by the NMI watchdog if early-printk is enabled. ++ */ ++static bool __read_mostly printk_killswitch; ++ ++void printk_kill(void) ++{ ++ printk_killswitch = true; ++} ++ ++#ifdef CONFIG_PRINTK ++static int forced_early_printk(const char *fmt, va_list ap) ++{ ++ if (!printk_killswitch) ++ return 0; ++ early_vprintk(fmt, ap); ++ return 1; ++} ++#endif ++ ++#else ++static inline int forced_early_printk(const char *fmt, va_list ap) ++{ ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_PRINTK + DECLARE_WAIT_QUEUE_HEAD(log_wait); + /* the next printk record to read by syslog(READ) or /proc/kmsg */ +@@ -1781,6 +1833,13 @@ asmlinkage int vprintk_emit(int facility + /* cpu currently holding logbuf_lock in this function */ + static unsigned int logbuf_cpu = UINT_MAX; + ++ /* ++ * Fall back to early_printk if a debugging subsystem has ++ * killed printk output ++ */ ++ if (unlikely(forced_early_printk(fmt, args))) ++ return 1; ++ + if (level == LOGLEVEL_SCHED) { + level = LOGLEVEL_DEFAULT; + in_sched = true; +@@ -2014,26 +2073,6 @@ DEFINE_PER_CPU(printk_func_t, printk_fun + + #endif /* CONFIG_PRINTK */ + +-#ifdef CONFIG_EARLY_PRINTK +-struct console *early_console; +- +-asmlinkage __visible void early_printk(const char *fmt, ...) +-{ +- va_list ap; +- char buf[512]; +- int n; +- +- if (!early_console) +- return; +- +- va_start(ap, fmt); +- n = vscnprintf(buf, sizeof(buf), fmt, ap); +- va_end(ap); +- +- early_console->write(early_console, buf, n); +-} +-#endif +- + static int __add_preferred_console(char *name, int idx, char *options, + char *brl_options) + { +--- a/kernel/watchdog.c ++++ b/kernel/watchdog.c +@@ -315,6 +315,8 @@ static int is_softlockup(unsigned long t + + #ifdef CONFIG_HARDLOCKUP_DETECTOR + ++static DEFINE_RAW_SPINLOCK(watchdog_output_lock); ++ + static struct perf_event_attr wd_hw_attr = { + .type = PERF_TYPE_HARDWARE, + .config = PERF_COUNT_HW_CPU_CYCLES, +@@ -349,6 +351,13 @@ static void watchdog_overflow_callback(s + /* only print hardlockups once */ + if (__this_cpu_read(hard_watchdog_warn) == true) + return; ++ /* ++ * If early-printk is enabled then make sure we do not ++ * lock up in printk() and kill console logging: ++ */ ++ printk_kill(); ++ ++ raw_spin_lock(&watchdog_output_lock); + + pr_emerg("Watchdog detected hard LOCKUP on cpu %d", this_cpu); + print_modules(); +@@ -366,6 +375,7 @@ static void watchdog_overflow_callback(s + !test_and_set_bit(0, &hardlockup_allcpu_dumped)) + trigger_allbutself_cpu_backtrace(); + ++ raw_spin_unlock(&watchdog_output_lock); + if (hardlockup_panic) + nmi_panic(regs, "Hard LOCKUP"); + diff --git a/patches/features/all/rt/printk-rt-aware.patch b/patches/features/all/rt/printk-rt-aware.patch new file mode 100644 index 00000000000..efaf07dd8f6 --- /dev/null +++ b/patches/features/all/rt/printk-rt-aware.patch @@ -0,0 +1,92 @@ +Subject: printk: Make rt aware +From: Thomas Gleixner +Date: Wed, 19 Sep 2012 14:50:37 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Drop the lock before calling the console driver and do not disable +interrupts while printing to a serial console. + +Signed-off-by: Thomas Gleixner +--- + kernel/printk/printk.c | 25 +++++++++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +--- a/kernel/printk/printk.c ++++ b/kernel/printk/printk.c +@@ -1628,6 +1628,7 @@ static void call_console_drivers(int lev + if (!console_drivers) + return; + ++ migrate_disable(); + for_each_console(con) { + if (exclusive_console && con != exclusive_console) + continue; +@@ -1643,6 +1644,7 @@ static void call_console_drivers(int lev + else + con->write(con, text, len); + } ++ migrate_enable(); + } + + /* +@@ -1951,13 +1953,23 @@ asmlinkage int vprintk_emit(int facility + + /* If called from the scheduler, we can not call up(). */ + if (!in_sched) { ++ int may_trylock = 1; ++ + lockdep_off(); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ /* ++ * we can't take a sleeping lock with IRQs or preeption disabled ++ * so we can't print in these contexts ++ */ ++ if (!(preempt_count() == 0 && !irqs_disabled())) ++ may_trylock = 0; ++#endif + /* + * Try to acquire and then immediately release the console + * semaphore. The release will print out buffers and wake up + * /dev/kmsg and syslog() users. + */ +- if (console_trylock()) ++ if (may_trylock && console_trylock()) + console_unlock(); + lockdep_on(); + } +@@ -2349,11 +2361,16 @@ static void console_cont_flush(char *tex + goto out; + + len = cont_print_text(text, size); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); ++ call_console_drivers(cont.level, NULL, 0, text, len); ++#else + raw_spin_unlock(&logbuf_lock); + stop_critical_timings(); + call_console_drivers(cont.level, NULL, 0, text, len); + start_critical_timings(); + local_irq_restore(flags); ++#endif + return; + out: + raw_spin_unlock_irqrestore(&logbuf_lock, flags); +@@ -2477,13 +2494,17 @@ void console_unlock(void) + console_idx = log_next(console_idx); + console_seq++; + console_prev = msg->flags; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ raw_spin_unlock_irqrestore(&logbuf_lock, flags); ++ call_console_drivers(level, ext_text, ext_len, text, len); ++#else + raw_spin_unlock(&logbuf_lock); + + stop_critical_timings(); /* don't trace print latency */ + call_console_drivers(level, ext_text, ext_len, text, len); + start_critical_timings(); + local_irq_restore(flags); +- ++#endif + if (do_cond_resched) + cond_resched(); + } diff --git a/patches/features/all/rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/patches/features/all/rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch new file mode 100644 index 00000000000..7a6ae7da8c5 --- /dev/null +++ b/patches/features/all/rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -0,0 +1,154 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 29 Aug 2013 18:21:04 +0200 +Subject: ptrace: fix ptrace vs tasklist_lock race +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +As explained by Alexander Fyodorov : + +|read_lock(&tasklist_lock) in ptrace_stop() is converted to mutex on RT kernel, +|and it can remove __TASK_TRACED from task->state (by moving it to +|task->saved_state). If parent does wait() on child followed by a sys_ptrace +|call, the following race can happen: +| +|- child sets __TASK_TRACED in ptrace_stop() +|- parent does wait() which eventually calls wait_task_stopped() and returns +| child's pid +|- child blocks on read_lock(&tasklist_lock) in ptrace_stop() and moves +| __TASK_TRACED flag to saved_state +|- parent calls sys_ptrace, which calls ptrace_check_attach() and wait_task_inactive() + +The patch is based on his initial patch where an additional check is +added in case the __TASK_TRACED moved to ->saved_state. The pi_lock is +taken in case the caller is interrupted between looking into ->state and +->saved_state. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/sched.h | 48 +++++++++++++++++++++++++++++++++++++++++++++--- + kernel/ptrace.c | 9 ++++++++- + kernel/sched/core.c | 17 +++++++++++++++-- + 3 files changed, 68 insertions(+), 6 deletions(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -243,10 +243,7 @@ extern char ___assert_task_state[1 - 2*! + TASK_UNINTERRUPTIBLE | __TASK_STOPPED | \ + __TASK_TRACED | EXIT_ZOMBIE | EXIT_DEAD) + +-#define task_is_traced(task) ((task->state & __TASK_TRACED) != 0) + #define task_is_stopped(task) ((task->state & __TASK_STOPPED) != 0) +-#define task_is_stopped_or_traced(task) \ +- ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) + #define task_contributes_to_load(task) \ + ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ + (task->flags & PF_FROZEN) == 0 && \ +@@ -3359,6 +3356,51 @@ static inline int signal_pending_state(l + return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p); + } + ++static inline bool __task_is_stopped_or_traced(struct task_struct *task) ++{ ++ if (task->state & (__TASK_STOPPED | __TASK_TRACED)) ++ return true; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (task->saved_state & (__TASK_STOPPED | __TASK_TRACED)) ++ return true; ++#endif ++ return false; ++} ++ ++static inline bool task_is_stopped_or_traced(struct task_struct *task) ++{ ++ bool traced_stopped; ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ unsigned long flags; ++ ++ raw_spin_lock_irqsave(&task->pi_lock, flags); ++ traced_stopped = __task_is_stopped_or_traced(task); ++ raw_spin_unlock_irqrestore(&task->pi_lock, flags); ++#else ++ traced_stopped = __task_is_stopped_or_traced(task); ++#endif ++ return traced_stopped; ++} ++ ++static inline bool task_is_traced(struct task_struct *task) ++{ ++ bool traced = false; ++ ++ if (task->state & __TASK_TRACED) ++ return true; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ /* in case the task is sleeping on tasklist_lock */ ++ raw_spin_lock_irq(&task->pi_lock); ++ if (task->state & __TASK_TRACED) ++ traced = true; ++ else if (task->saved_state & __TASK_TRACED) ++ traced = true; ++ raw_spin_unlock_irq(&task->pi_lock); ++#endif ++ return traced; ++} ++ + /* + * cond_resched() and cond_resched_lock(): latency reduction via + * explicit rescheduling in places that are safe. The return +--- a/kernel/ptrace.c ++++ b/kernel/ptrace.c +@@ -130,7 +130,14 @@ static bool ptrace_freeze_traced(struct + + spin_lock_irq(&task->sighand->siglock); + if (task_is_traced(task) && !__fatal_signal_pending(task)) { +- task->state = __TASK_TRACED; ++ unsigned long flags; ++ ++ raw_spin_lock_irqsave(&task->pi_lock, flags); ++ if (task->state & __TASK_TRACED) ++ task->state = __TASK_TRACED; ++ else ++ task->saved_state = __TASK_TRACED; ++ raw_spin_unlock_irqrestore(&task->pi_lock, flags); + ret = true; + } + spin_unlock_irq(&task->sighand->siglock); +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -1384,6 +1384,18 @@ int migrate_swap(struct task_struct *cur + return ret; + } + ++static bool check_task_state(struct task_struct *p, long match_state) ++{ ++ bool match = false; ++ ++ raw_spin_lock_irq(&p->pi_lock); ++ if (p->state == match_state || p->saved_state == match_state) ++ match = true; ++ raw_spin_unlock_irq(&p->pi_lock); ++ ++ return match; ++} ++ + /* + * wait_task_inactive - wait for a thread to unschedule. + * +@@ -1428,7 +1440,7 @@ unsigned long wait_task_inactive(struct + * is actually now running somewhere else! + */ + while (task_running(rq, p)) { +- if (match_state && unlikely(p->state != match_state)) ++ if (match_state && !check_task_state(p, match_state)) + return 0; + cpu_relax(); + } +@@ -1443,7 +1455,8 @@ unsigned long wait_task_inactive(struct + running = task_running(rq, p); + queued = task_on_rq_queued(p); + ncsw = 0; +- if (!match_state || p->state == match_state) ++ if (!match_state || p->state == match_state || ++ p->saved_state == match_state) + ncsw = p->nvcsw | LONG_MIN; /* sets MSB */ + task_rq_unlock(rq, p, &rf); + diff --git a/patches/features/all/rt/radix-tree-rt-aware.patch b/patches/features/all/rt/radix-tree-rt-aware.patch new file mode 100644 index 00000000000..a59d05eb3e8 --- /dev/null +++ b/patches/features/all/rt/radix-tree-rt-aware.patch @@ -0,0 +1,80 @@ +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 21:33:18 +0200 +Subject: radix-tree: Make RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable radix_tree_preload() on -RT. This functions returns with +preemption disabled which may cause high latencies and breaks if the +user tries to grab any locks after invoking it. + +Signed-off-by: Thomas Gleixner +--- + include/linux/radix-tree.h | 12 +++++++++++- + lib/radix-tree.c | 5 ++++- + 2 files changed, 15 insertions(+), 2 deletions(-) + +--- a/include/linux/radix-tree.h ++++ b/include/linux/radix-tree.h +@@ -289,9 +289,19 @@ unsigned int radix_tree_gang_lookup(stru + unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root, + void ***results, unsigned long *indices, + unsigned long first_index, unsigned int max_items); ++#ifdef CONFIG_PREEMPT_RT_FULL ++static inline int radix_tree_preload(gfp_t gm) { return 0; } ++static inline int radix_tree_maybe_preload(gfp_t gfp_mask) { return 0; } ++static inline int radix_tree_maybe_preload_order(gfp_t gfp_mask, int order) ++{ ++ return 0; ++}; ++ ++#else + int radix_tree_preload(gfp_t gfp_mask); + int radix_tree_maybe_preload(gfp_t gfp_mask); + int radix_tree_maybe_preload_order(gfp_t gfp_mask, int order); ++#endif + void radix_tree_init(void); + void *radix_tree_tag_set(struct radix_tree_root *root, + unsigned long index, unsigned int tag); +@@ -316,7 +326,7 @@ unsigned long radix_tree_locate_item(str + + static inline void radix_tree_preload_end(void) + { +- preempt_enable(); ++ preempt_enable_nort(); + } + + /** +--- a/lib/radix-tree.c ++++ b/lib/radix-tree.c +@@ -290,13 +290,14 @@ radix_tree_node_alloc(struct radix_tree_ + * succeed in getting a node here (and never reach + * kmem_cache_alloc) + */ +- rtp = this_cpu_ptr(&radix_tree_preloads); ++ rtp = &get_cpu_var(radix_tree_preloads); + if (rtp->nr) { + ret = rtp->nodes; + rtp->nodes = ret->private_data; + ret->private_data = NULL; + rtp->nr--; + } ++ put_cpu_var(radix_tree_preloads); + /* + * Update the allocation stack trace as this is more useful + * for debugging. +@@ -336,6 +337,7 @@ radix_tree_node_free(struct radix_tree_n + call_rcu(&node->rcu_head, radix_tree_node_rcu_free); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Load up this CPU's radix_tree_node buffer with sufficient objects to + * ensure that the addition of a single element in the tree cannot fail. On +@@ -455,6 +457,7 @@ int radix_tree_maybe_preload_order(gfp_t + + return __radix_tree_preload(gfp_mask, nr_nodes); + } ++#endif + + /* + * The maximum index which can be stored in a radix tree diff --git a/patches/features/all/rt/random-make-it-work-on-rt.patch b/patches/features/all/rt/random-make-it-work-on-rt.patch new file mode 100644 index 00000000000..94dec9ea434 --- /dev/null +++ b/patches/features/all/rt/random-make-it-work-on-rt.patch @@ -0,0 +1,133 @@ +Subject: random: Make it work on rt +From: Thomas Gleixner +Date: Tue, 21 Aug 2012 20:38:50 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Delegate the random insertion to the forced threaded interrupt +handler. Store the return IP of the hard interrupt handler in the irq +descriptor and feed it into the random generator as a source of +entropy. + +Signed-off-by: Thomas Gleixner + +--- + drivers/char/random.c | 11 +++++------ + drivers/hv/vmbus_drv.c | 4 +++- + include/linux/irqdesc.h | 1 + + include/linux/random.h | 2 +- + kernel/irq/handle.c | 8 +++++++- + kernel/irq/manage.c | 6 ++++++ + 6 files changed, 23 insertions(+), 9 deletions(-) + +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -1120,28 +1120,27 @@ static __u32 get_reg(struct fast_pool *f + return *(ptr + f->reg_idx++); + } + +-void add_interrupt_randomness(int irq, int irq_flags) ++void add_interrupt_randomness(int irq, int irq_flags, __u64 ip) + { + struct entropy_store *r; + struct fast_pool *fast_pool = this_cpu_ptr(&irq_randomness); +- struct pt_regs *regs = get_irq_regs(); + unsigned long now = jiffies; + cycles_t cycles = random_get_entropy(); + __u32 c_high, j_high; +- __u64 ip; + unsigned long seed; + int credit = 0; + + if (cycles == 0) +- cycles = get_reg(fast_pool, regs); ++ cycles = get_reg(fast_pool, NULL); + c_high = (sizeof(cycles) > 4) ? cycles >> 32 : 0; + j_high = (sizeof(now) > 4) ? now >> 32 : 0; + fast_pool->pool[0] ^= cycles ^ j_high ^ irq; + fast_pool->pool[1] ^= now ^ c_high; +- ip = regs ? instruction_pointer(regs) : _RET_IP_; ++ if (!ip) ++ ip = _RET_IP_; + fast_pool->pool[2] ^= ip; + fast_pool->pool[3] ^= (sizeof(ip) > 4) ? ip >> 32 : +- get_reg(fast_pool, regs); ++ get_reg(fast_pool, NULL); + + fast_mix(fast_pool); + add_interrupt_bench(cycles); +--- a/drivers/hv/vmbus_drv.c ++++ b/drivers/hv/vmbus_drv.c +@@ -761,6 +761,8 @@ static void vmbus_isr(void) + void *page_addr; + struct hv_message *msg; + union hv_synic_event_flags *event; ++ struct pt_regs *regs = get_irq_regs(); ++ u64 ip = regs ? instruction_pointer(regs) : 0; + bool handled = false; + + page_addr = hv_context.synic_event_page[cpu]; +@@ -808,7 +810,7 @@ static void vmbus_isr(void) + tasklet_schedule(hv_context.msg_dpc[cpu]); + } + +- add_interrupt_randomness(HYPERVISOR_CALLBACK_VECTOR, 0); ++ add_interrupt_randomness(HYPERVISOR_CALLBACK_VECTOR, 0, ip); + } + + +--- a/include/linux/irqdesc.h ++++ b/include/linux/irqdesc.h +@@ -66,6 +66,7 @@ struct irq_desc { + unsigned int irqs_unhandled; + atomic_t threads_handled; + int threads_handled_last; ++ u64 random_ip; + raw_spinlock_t lock; + struct cpumask *percpu_enabled; + const struct cpumask *percpu_affinity; +--- a/include/linux/random.h ++++ b/include/linux/random.h +@@ -31,7 +31,7 @@ static inline void add_latent_entropy(vo + + extern void add_input_randomness(unsigned int type, unsigned int code, + unsigned int value) __latent_entropy; +-extern void add_interrupt_randomness(int irq, int irq_flags) __latent_entropy; ++extern void add_interrupt_randomness(int irq, int irq_flags, __u64 ip) __latent_entropy; + + extern void get_random_bytes(void *buf, int nbytes); + extern int add_random_ready_callback(struct random_ready_callback *rdy); +--- a/kernel/irq/handle.c ++++ b/kernel/irq/handle.c +@@ -181,10 +181,16 @@ irqreturn_t handle_irq_event_percpu(stru + { + irqreturn_t retval; + unsigned int flags = 0; ++ struct pt_regs *regs = get_irq_regs(); ++ u64 ip = regs ? instruction_pointer(regs) : 0; + + retval = __handle_irq_event_percpu(desc, &flags); + +- add_interrupt_randomness(desc->irq_data.irq, flags); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ desc->random_ip = ip; ++#else ++ add_interrupt_randomness(desc->irq_data.irq, flags, ip); ++#endif + + if (!noirqdebug) + note_interrupt(desc, retval); +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -1023,6 +1023,12 @@ static int irq_thread(void *data) + if (action_ret == IRQ_WAKE_THREAD) + irq_wake_secondary(desc, action); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ migrate_disable(); ++ add_interrupt_randomness(action->irq, 0, ++ desc->random_ip ^ (unsigned long) action); ++ migrate_enable(); ++#endif + wake_threads_waitq(desc); + } + diff --git a/patches/features/all/rt/rbtree-include-rcu.h-because-we-use-it.patch b/patches/features/all/rt/rbtree-include-rcu.h-because-we-use-it.patch new file mode 100644 index 00000000000..89487ecab99 --- /dev/null +++ b/patches/features/all/rt/rbtree-include-rcu.h-because-we-use-it.patch @@ -0,0 +1,25 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 14 Sep 2016 11:52:17 +0200 +Subject: rbtree: include rcu.h because we use it +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Since commit c1adf20052d8 ("Introduce rb_replace_node_rcu()") +rbtree_augmented.h uses RCU related data structures but does not include +them. It works as long as gets somehow included before that and fails +otherwise. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/rbtree_augmented.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/linux/rbtree_augmented.h ++++ b/include/linux/rbtree_augmented.h +@@ -26,6 +26,7 @@ + + #include + #include ++#include + + /* + * Please note - only struct rb_augment_callbacks and the prototypes for diff --git a/patches/features/all/rt/rcu-Eliminate-softirq-processing-from-rcutree.patch b/patches/features/all/rt/rcu-Eliminate-softirq-processing-from-rcutree.patch new file mode 100644 index 00000000000..fe8c1e1646c --- /dev/null +++ b/patches/features/all/rt/rcu-Eliminate-softirq-processing-from-rcutree.patch @@ -0,0 +1,434 @@ +From: "Paul E. McKenney" +Date: Mon, 4 Nov 2013 13:21:10 -0800 +Subject: rcu: Eliminate softirq processing from rcutree +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Running RCU out of softirq is a problem for some workloads that would +like to manage RCU core processing independently of other softirq work, +for example, setting kthread priority. This commit therefore moves the +RCU core work from softirq to a per-CPU/per-flavor SCHED_OTHER kthread +named rcuc. The SCHED_OTHER approach avoids the scalability problems +that appeared with the earlier attempt to move RCU core processing to +from softirq to kthreads. That said, kernels built with RCU_BOOST=y +will run the rcuc kthreads at the RCU-boosting priority. + +Reported-by: Thomas Gleixner +Tested-by: Mike Galbraith +Signed-off-by: Paul E. McKenney +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/rcu/tree.c | 110 ++++++++++++++++++++++++++++++--- + kernel/rcu/tree.h | 5 - + kernel/rcu/tree_plugin.h | 153 ++++++----------------------------------------- + 3 files changed, 122 insertions(+), 146 deletions(-) + +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -55,6 +55,11 @@ + #include + #include + #include ++#include ++#include ++#include ++#include ++#include "../time/tick-internal.h" + + #include "tree.h" + #include "rcu.h" +@@ -3041,18 +3046,17 @@ static void + /* + * Do RCU core processing for the current CPU. + */ +-static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused) ++static __latent_entropy void rcu_process_callbacks(void) + { + struct rcu_state *rsp; + + if (cpu_is_offline(smp_processor_id())) + return; +- trace_rcu_utilization(TPS("Start RCU core")); + for_each_rcu_flavor(rsp) + __rcu_process_callbacks(rsp); +- trace_rcu_utilization(TPS("End RCU core")); + } + ++static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task); + /* + * Schedule RCU callback invocation. If the specified type of RCU + * does not support RCU priority boosting, just do a direct call, +@@ -3064,18 +3068,105 @@ static void invoke_rcu_callbacks(struct + { + if (unlikely(!READ_ONCE(rcu_scheduler_fully_active))) + return; +- if (likely(!rsp->boost)) { +- rcu_do_batch(rsp, rdp); ++ rcu_do_batch(rsp, rdp); ++} ++ ++static void rcu_wake_cond(struct task_struct *t, int status) ++{ ++ /* ++ * If the thread is yielding, only wake it when this ++ * is invoked from idle ++ */ ++ if (t && (status != RCU_KTHREAD_YIELDING || is_idle_task(current))) ++ wake_up_process(t); ++} ++ ++/* ++ * Wake up this CPU's rcuc kthread to do RCU core processing. ++ */ ++static void invoke_rcu_core(void) ++{ ++ unsigned long flags; ++ struct task_struct *t; ++ ++ if (!cpu_online(smp_processor_id())) + return; ++ local_irq_save(flags); ++ __this_cpu_write(rcu_cpu_has_work, 1); ++ t = __this_cpu_read(rcu_cpu_kthread_task); ++ if (t != NULL && current != t) ++ rcu_wake_cond(t, __this_cpu_read(rcu_cpu_kthread_status)); ++ local_irq_restore(flags); ++} ++ ++static void rcu_cpu_kthread_park(unsigned int cpu) ++{ ++ per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU; ++} ++ ++static int rcu_cpu_kthread_should_run(unsigned int cpu) ++{ ++ return __this_cpu_read(rcu_cpu_has_work); ++} ++ ++/* ++ * Per-CPU kernel thread that invokes RCU callbacks. This replaces the ++ * RCU softirq used in flavors and configurations of RCU that do not ++ * support RCU priority boosting. ++ */ ++static void rcu_cpu_kthread(unsigned int cpu) ++{ ++ unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status); ++ char work, *workp = this_cpu_ptr(&rcu_cpu_has_work); ++ int spincnt; ++ ++ for (spincnt = 0; spincnt < 10; spincnt++) { ++ trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait")); ++ local_bh_disable(); ++ *statusp = RCU_KTHREAD_RUNNING; ++ this_cpu_inc(rcu_cpu_kthread_loops); ++ local_irq_disable(); ++ work = *workp; ++ *workp = 0; ++ local_irq_enable(); ++ if (work) ++ rcu_process_callbacks(); ++ local_bh_enable(); ++ if (*workp == 0) { ++ trace_rcu_utilization(TPS("End CPU kthread@rcu_wait")); ++ *statusp = RCU_KTHREAD_WAITING; ++ return; ++ } + } +- invoke_rcu_callbacks_kthread(); ++ *statusp = RCU_KTHREAD_YIELDING; ++ trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield")); ++ schedule_timeout_interruptible(2); ++ trace_rcu_utilization(TPS("End CPU kthread@rcu_yield")); ++ *statusp = RCU_KTHREAD_WAITING; + } + +-static void invoke_rcu_core(void) ++static struct smp_hotplug_thread rcu_cpu_thread_spec = { ++ .store = &rcu_cpu_kthread_task, ++ .thread_should_run = rcu_cpu_kthread_should_run, ++ .thread_fn = rcu_cpu_kthread, ++ .thread_comm = "rcuc/%u", ++ .setup = rcu_cpu_kthread_setup, ++ .park = rcu_cpu_kthread_park, ++}; ++ ++/* ++ * Spawn per-CPU RCU core processing kthreads. ++ */ ++static int __init rcu_spawn_core_kthreads(void) + { +- if (cpu_online(smp_processor_id())) +- raise_softirq(RCU_SOFTIRQ); ++ int cpu; ++ ++ for_each_possible_cpu(cpu) ++ per_cpu(rcu_cpu_has_work, cpu) = 0; ++ BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec)); ++ return 0; + } ++early_initcall(rcu_spawn_core_kthreads); + + /* + * Handle any core-RCU processing required by a call_rcu() invocation. +@@ -4261,7 +4352,6 @@ void __init rcu_init(void) + if (dump_tree) + rcu_dump_rcu_node_tree(&rcu_sched_state); + __rcu_init_preempt(); +- open_softirq(RCU_SOFTIRQ, rcu_process_callbacks); + + /* + * We don't need protection against CPU-hotplug here because +--- a/kernel/rcu/tree.h ++++ b/kernel/rcu/tree.h +@@ -596,12 +596,10 @@ extern struct rcu_state rcu_bh_state; + extern struct rcu_state rcu_preempt_state; + #endif /* #ifdef CONFIG_PREEMPT_RCU */ + +-#ifdef CONFIG_RCU_BOOST + DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status); + DECLARE_PER_CPU(int, rcu_cpu_kthread_cpu); + DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_loops); + DECLARE_PER_CPU(char, rcu_cpu_has_work); +-#endif /* #ifdef CONFIG_RCU_BOOST */ + + #ifndef RCU_TREE_NONCORE + +@@ -621,10 +619,9 @@ void call_rcu(struct rcu_head *head, rcu + static void __init __rcu_init_preempt(void); + static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); + static void rcu_preempt_boost_start_gp(struct rcu_node *rnp); +-static void invoke_rcu_callbacks_kthread(void); + static bool rcu_is_callbacks_kthread(void); ++static void rcu_cpu_kthread_setup(unsigned int cpu); + #ifdef CONFIG_RCU_BOOST +-static void rcu_preempt_do_callbacks(void); + static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp, + struct rcu_node *rnp); + #endif /* #ifdef CONFIG_RCU_BOOST */ +--- a/kernel/rcu/tree_plugin.h ++++ b/kernel/rcu/tree_plugin.h +@@ -24,26 +24,10 @@ + * Paul E. McKenney + */ + +-#include +-#include +-#include +-#include +-#include +-#include "../time/tick-internal.h" +- + #ifdef CONFIG_RCU_BOOST + + #include "../locking/rtmutex_common.h" + +-/* +- * Control variables for per-CPU and per-rcu_node kthreads. These +- * handle all flavors of RCU. +- */ +-static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task); +-DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status); +-DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops); +-DEFINE_PER_CPU(char, rcu_cpu_has_work); +- + #else /* #ifdef CONFIG_RCU_BOOST */ + + /* +@@ -56,6 +40,14 @@ DEFINE_PER_CPU(char, rcu_cpu_has_work); + + #endif /* #else #ifdef CONFIG_RCU_BOOST */ + ++/* ++ * Control variables for per-CPU and per-rcu_node kthreads. These ++ * handle all flavors of RCU. ++ */ ++DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status); ++DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops); ++DEFINE_PER_CPU(char, rcu_cpu_has_work); ++ + #ifdef CONFIG_RCU_NOCB_CPU + static cpumask_var_t rcu_nocb_mask; /* CPUs to have callbacks offloaded. */ + static bool have_rcu_nocb_mask; /* Was rcu_nocb_mask allocated? */ +@@ -633,15 +625,6 @@ static void rcu_preempt_check_callbacks( + t->rcu_read_unlock_special.b.need_qs = true; + } + +-#ifdef CONFIG_RCU_BOOST +- +-static void rcu_preempt_do_callbacks(void) +-{ +- rcu_do_batch(rcu_state_p, this_cpu_ptr(rcu_data_p)); +-} +- +-#endif /* #ifdef CONFIG_RCU_BOOST */ +- + /* + * Queue a preemptible-RCU callback for invocation after a grace period. + */ +@@ -830,6 +813,19 @@ void exit_rcu(void) + + #endif /* #else #ifdef CONFIG_PREEMPT_RCU */ + ++/* ++ * If boosting, set rcuc kthreads to realtime priority. ++ */ ++static void rcu_cpu_kthread_setup(unsigned int cpu) ++{ ++#ifdef CONFIG_RCU_BOOST ++ struct sched_param sp; ++ ++ sp.sched_priority = kthread_prio; ++ sched_setscheduler_nocheck(current, SCHED_FIFO, &sp); ++#endif /* #ifdef CONFIG_RCU_BOOST */ ++} ++ + #ifdef CONFIG_RCU_BOOST + + #include "../locking/rtmutex_common.h" +@@ -861,16 +857,6 @@ static void rcu_initiate_boost_trace(str + + #endif /* #else #ifdef CONFIG_RCU_TRACE */ + +-static void rcu_wake_cond(struct task_struct *t, int status) +-{ +- /* +- * If the thread is yielding, only wake it when this +- * is invoked from idle +- */ +- if (status != RCU_KTHREAD_YIELDING || is_idle_task(current)) +- wake_up_process(t); +-} +- + /* + * Carry out RCU priority boosting on the task indicated by ->exp_tasks + * or ->boost_tasks, advancing the pointer to the next task in the +@@ -1014,23 +1000,6 @@ static void rcu_initiate_boost(struct rc + } + + /* +- * Wake up the per-CPU kthread to invoke RCU callbacks. +- */ +-static void invoke_rcu_callbacks_kthread(void) +-{ +- unsigned long flags; +- +- local_irq_save(flags); +- __this_cpu_write(rcu_cpu_has_work, 1); +- if (__this_cpu_read(rcu_cpu_kthread_task) != NULL && +- current != __this_cpu_read(rcu_cpu_kthread_task)) { +- rcu_wake_cond(__this_cpu_read(rcu_cpu_kthread_task), +- __this_cpu_read(rcu_cpu_kthread_status)); +- } +- local_irq_restore(flags); +-} +- +-/* + * Is the current CPU running the RCU-callbacks kthread? + * Caller must have preemption disabled. + */ +@@ -1084,67 +1053,6 @@ static int rcu_spawn_one_boost_kthread(s + return 0; + } + +-static void rcu_kthread_do_work(void) +-{ +- rcu_do_batch(&rcu_sched_state, this_cpu_ptr(&rcu_sched_data)); +- rcu_do_batch(&rcu_bh_state, this_cpu_ptr(&rcu_bh_data)); +- rcu_preempt_do_callbacks(); +-} +- +-static void rcu_cpu_kthread_setup(unsigned int cpu) +-{ +- struct sched_param sp; +- +- sp.sched_priority = kthread_prio; +- sched_setscheduler_nocheck(current, SCHED_FIFO, &sp); +-} +- +-static void rcu_cpu_kthread_park(unsigned int cpu) +-{ +- per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU; +-} +- +-static int rcu_cpu_kthread_should_run(unsigned int cpu) +-{ +- return __this_cpu_read(rcu_cpu_has_work); +-} +- +-/* +- * Per-CPU kernel thread that invokes RCU callbacks. This replaces the +- * RCU softirq used in flavors and configurations of RCU that do not +- * support RCU priority boosting. +- */ +-static void rcu_cpu_kthread(unsigned int cpu) +-{ +- unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status); +- char work, *workp = this_cpu_ptr(&rcu_cpu_has_work); +- int spincnt; +- +- for (spincnt = 0; spincnt < 10; spincnt++) { +- trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait")); +- local_bh_disable(); +- *statusp = RCU_KTHREAD_RUNNING; +- this_cpu_inc(rcu_cpu_kthread_loops); +- local_irq_disable(); +- work = *workp; +- *workp = 0; +- local_irq_enable(); +- if (work) +- rcu_kthread_do_work(); +- local_bh_enable(); +- if (*workp == 0) { +- trace_rcu_utilization(TPS("End CPU kthread@rcu_wait")); +- *statusp = RCU_KTHREAD_WAITING; +- return; +- } +- } +- *statusp = RCU_KTHREAD_YIELDING; +- trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield")); +- schedule_timeout_interruptible(2); +- trace_rcu_utilization(TPS("End CPU kthread@rcu_yield")); +- *statusp = RCU_KTHREAD_WAITING; +-} +- + /* + * Set the per-rcu_node kthread's affinity to cover all CPUs that are + * served by the rcu_node in question. The CPU hotplug lock is still +@@ -1175,26 +1083,12 @@ static void rcu_boost_kthread_setaffinit + free_cpumask_var(cm); + } + +-static struct smp_hotplug_thread rcu_cpu_thread_spec = { +- .store = &rcu_cpu_kthread_task, +- .thread_should_run = rcu_cpu_kthread_should_run, +- .thread_fn = rcu_cpu_kthread, +- .thread_comm = "rcuc/%u", +- .setup = rcu_cpu_kthread_setup, +- .park = rcu_cpu_kthread_park, +-}; +- + /* + * Spawn boost kthreads -- called as soon as the scheduler is running. + */ + static void __init rcu_spawn_boost_kthreads(void) + { + struct rcu_node *rnp; +- int cpu; +- +- for_each_possible_cpu(cpu) +- per_cpu(rcu_cpu_has_work, cpu) = 0; +- BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec)); + rcu_for_each_leaf_node(rcu_state_p, rnp) + (void)rcu_spawn_one_boost_kthread(rcu_state_p, rnp); + } +@@ -1217,11 +1111,6 @@ static void rcu_initiate_boost(struct rc + raw_spin_unlock_irqrestore_rcu_node(rnp, flags); + } + +-static void invoke_rcu_callbacks_kthread(void) +-{ +- WARN_ON_ONCE(1); +-} +- + static bool rcu_is_callbacks_kthread(void) + { + return false; diff --git a/patches/features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch b/patches/features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch new file mode 100644 index 00000000000..338dce6fde3 --- /dev/null +++ b/patches/features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch @@ -0,0 +1,25 @@ +Subject: rcu: Disable RCU_FAST_NO_HZ on RT +From: Thomas Gleixner +Date: Sun, 28 Oct 2012 13:26:09 +0000 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This uses a timer_list timer from the irq disabled guts of the idle +code. Disable it for now to prevent wreckage. + +Signed-off-by: Thomas Gleixner + +--- + init/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -623,7 +623,7 @@ config RCU_FANOUT_LEAF + + config RCU_FAST_NO_HZ + bool "Accelerate last non-dyntick-idle CPU's grace periods" +- depends on NO_HZ_COMMON && SMP && RCU_EXPERT ++ depends on NO_HZ_COMMON && SMP && RCU_EXPERT && !PREEMPT_RT_FULL + default n + help + This option permits CPUs to enter dynticks-idle state even if diff --git a/patches/features/all/rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/patches/features/all/rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch new file mode 100644 index 00000000000..7bdf664ec4f --- /dev/null +++ b/patches/features/all/rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch @@ -0,0 +1,30 @@ +From: Julia Cartwright +Date: Wed, 12 Oct 2016 11:21:14 -0500 +Subject: [PATCH] rcu: enable rcu_normal_after_boot by default for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The forcing of an expedited grace period is an expensive and very +RT-application unfriendly operation, as it forcibly preempts all running +tasks on CPUs which are preventing the gp from expiring. + +By default, as a policy decision, disable the expediting of grace +periods (after boot) on configurations which enable PREEMPT_RT_FULL. + +Suggested-by: Luiz Capitulino +Signed-off-by: Julia Cartwright +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/rcu/update.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/rcu/update.c ++++ b/kernel/rcu/update.c +@@ -62,7 +62,7 @@ + #ifndef CONFIG_TINY_RCU + module_param(rcu_expedited, int, 0); + module_param(rcu_normal, int, 0); +-static int rcu_normal_after_boot; ++static int rcu_normal_after_boot = IS_ENABLED(CONFIG_PREEMPT_RT_FULL); + module_param(rcu_normal_after_boot, int, 0); + #endif /* #ifndef CONFIG_TINY_RCU */ + diff --git a/patches/features/all/rt/rcu-make-RCU_BOOST-default-on-RT.patch b/patches/features/all/rt/rcu-make-RCU_BOOST-default-on-RT.patch new file mode 100644 index 00000000000..eb392567f6a --- /dev/null +++ b/patches/features/all/rt/rcu-make-RCU_BOOST-default-on-RT.patch @@ -0,0 +1,35 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 21 Mar 2014 20:19:05 +0100 +Subject: rcu: make RCU_BOOST default on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Since it is no longer invoked from the softirq people run into OOM more +often if the priority of the RCU thread is too low. Making boosting +default on RT should help in those case and it can be switched off if +someone knows better. + +Signed-off-by: Sebastian Andrzej Siewior +--- + init/Kconfig | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -506,7 +506,7 @@ config TINY_RCU + + config RCU_EXPERT + bool "Make expert-level adjustments to RCU configuration" +- default n ++ default y if PREEMPT_RT_FULL + help + This option needs to be enabled if you wish to make + expert-level adjustments to RCU configuration. By default, +@@ -650,7 +650,7 @@ config TREE_RCU_TRACE + config RCU_BOOST + bool "Enable RCU priority boosting" + depends on RT_MUTEXES && PREEMPT_RCU && RCU_EXPERT +- default n ++ default y if PREEMPT_RT_FULL + help + This option boosts the priority of preempted RCU readers that + block the current preemptible RCU grace period for too long. diff --git a/patches/features/all/rt/rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch b/patches/features/all/rt/rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch new file mode 100644 index 00000000000..2aea56baac2 --- /dev/null +++ b/patches/features/all/rt/rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch @@ -0,0 +1,366 @@ +Subject: rcu: Merge RCU-bh into RCU-preempt +Date: Wed, 5 Oct 2011 11:59:38 -0700 +From: Thomas Gleixner +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The Linux kernel has long RCU-bh read-side critical sections that +intolerably increase scheduling latency under mainline's RCU-bh rules, +which include RCU-bh read-side critical sections being non-preemptible. +This patch therefore arranges for RCU-bh to be implemented in terms of +RCU-preempt for CONFIG_PREEMPT_RT_FULL=y. + +This has the downside of defeating the purpose of RCU-bh, namely, +handling the case where the system is subjected to a network-based +denial-of-service attack that keeps at least one CPU doing full-time +softirq processing. This issue will be fixed by a later commit. + +The current commit will need some work to make it appropriate for +mainline use, for example, it needs to be extended to cover Tiny RCU. + +[ paulmck: Added a useful changelog ] + +Signed-off-by: Thomas Gleixner +Signed-off-by: Paul E. McKenney +Link: http://lkml.kernel.org/r/20111005185938.GA20403@linux.vnet.ibm.com +Signed-off-by: Thomas Gleixner + +--- + include/linux/rcupdate.h | 23 +++++++++++++++++++++++ + include/linux/rcutree.h | 21 ++++++++++++++++++--- + kernel/rcu/rcutorture.c | 7 +++++++ + kernel/rcu/tree.c | 24 ++++++++++++++++++++++++ + kernel/rcu/tree.h | 2 ++ + kernel/rcu/update.c | 2 ++ + 6 files changed, 76 insertions(+), 3 deletions(-) + +--- a/include/linux/rcupdate.h ++++ b/include/linux/rcupdate.h +@@ -179,6 +179,9 @@ void call_rcu(struct rcu_head *head, + + #endif /* #else #ifdef CONFIG_PREEMPT_RCU */ + ++#ifdef CONFIG_PREEMPT_RT_FULL ++#define call_rcu_bh call_rcu ++#else + /** + * call_rcu_bh() - Queue an RCU for invocation after a quicker grace period. + * @head: structure to be used for queueing the RCU updates. +@@ -202,6 +205,7 @@ void call_rcu(struct rcu_head *head, + */ + void call_rcu_bh(struct rcu_head *head, + rcu_callback_t func); ++#endif + + /** + * call_rcu_sched() - Queue an RCU for invocation after sched grace period. +@@ -339,7 +343,11 @@ static inline int rcu_preempt_depth(void + /* Internal to kernel */ + void rcu_init(void); + void rcu_sched_qs(void); ++#ifdef CONFIG_PREEMPT_RT_FULL ++static inline void rcu_bh_qs(void) { } ++#else + void rcu_bh_qs(void); ++#endif + void rcu_check_callbacks(int user); + void rcu_report_dead(unsigned int cpu); + void rcu_cpu_starting(unsigned int cpu); +@@ -509,7 +517,14 @@ extern struct lockdep_map rcu_callback_m + int debug_lockdep_rcu_enabled(void); + + int rcu_read_lock_held(void); ++#ifdef CONFIG_PREEMPT_RT_FULL ++static inline int rcu_read_lock_bh_held(void) ++{ ++ return rcu_read_lock_held(); ++} ++#else + int rcu_read_lock_bh_held(void); ++#endif + + /** + * rcu_read_lock_sched_held() - might we be in RCU-sched read-side critical section? +@@ -907,10 +922,14 @@ static inline void rcu_read_unlock(void) + static inline void rcu_read_lock_bh(void) + { + local_bh_disable(); ++#ifdef CONFIG_PREEMPT_RT_FULL ++ rcu_read_lock(); ++#else + __acquire(RCU_BH); + rcu_lock_acquire(&rcu_bh_lock_map); + RCU_LOCKDEP_WARN(!rcu_is_watching(), + "rcu_read_lock_bh() used illegally while idle"); ++#endif + } + + /* +@@ -920,10 +939,14 @@ static inline void rcu_read_lock_bh(void + */ + static inline void rcu_read_unlock_bh(void) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ rcu_read_unlock(); ++#else + RCU_LOCKDEP_WARN(!rcu_is_watching(), + "rcu_read_unlock_bh() used illegally while idle"); + rcu_lock_release(&rcu_bh_lock_map); + __release(RCU_BH); ++#endif + local_bh_enable(); + } + +--- a/include/linux/rcutree.h ++++ b/include/linux/rcutree.h +@@ -44,7 +44,11 @@ static inline void rcu_virt_note_context + rcu_note_context_switch(); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define synchronize_rcu_bh synchronize_rcu ++#else + void synchronize_rcu_bh(void); ++#endif + void synchronize_sched_expedited(void); + void synchronize_rcu_expedited(void); + +@@ -72,7 +76,11 @@ static inline void synchronize_rcu_bh_ex + } + + void rcu_barrier(void); ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define rcu_barrier_bh rcu_barrier ++#else + void rcu_barrier_bh(void); ++#endif + void rcu_barrier_sched(void); + unsigned long get_state_synchronize_rcu(void); + void cond_synchronize_rcu(unsigned long oldstate); +@@ -82,17 +90,14 @@ void cond_synchronize_sched(unsigned lon + extern unsigned long rcutorture_testseq; + extern unsigned long rcutorture_vernum; + unsigned long rcu_batches_started(void); +-unsigned long rcu_batches_started_bh(void); + unsigned long rcu_batches_started_sched(void); + unsigned long rcu_batches_completed(void); +-unsigned long rcu_batches_completed_bh(void); + unsigned long rcu_batches_completed_sched(void); + unsigned long rcu_exp_batches_completed(void); + unsigned long rcu_exp_batches_completed_sched(void); + void show_rcu_gp_kthreads(void); + + void rcu_force_quiescent_state(void); +-void rcu_bh_force_quiescent_state(void); + void rcu_sched_force_quiescent_state(void); + + void rcu_idle_enter(void); +@@ -109,6 +114,16 @@ extern int rcu_scheduler_active __read_m + + bool rcu_is_watching(void); + ++#ifndef CONFIG_PREEMPT_RT_FULL ++void rcu_bh_force_quiescent_state(void); ++unsigned long rcu_batches_started_bh(void); ++unsigned long rcu_batches_completed_bh(void); ++#else ++# define rcu_bh_force_quiescent_state rcu_force_quiescent_state ++# define rcu_batches_completed_bh rcu_batches_completed ++# define rcu_batches_started_bh rcu_batches_completed ++#endif ++ + void rcu_all_qs(void); + + /* RCUtree hotplug events */ +--- a/kernel/rcu/rcutorture.c ++++ b/kernel/rcu/rcutorture.c +@@ -404,6 +404,7 @@ static struct rcu_torture_ops rcu_ops = + .name = "rcu" + }; + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Definitions for rcu_bh torture testing. + */ +@@ -443,6 +444,12 @@ static struct rcu_torture_ops rcu_bh_ops + .name = "rcu_bh" + }; + ++#else ++static struct rcu_torture_ops rcu_bh_ops = { ++ .ttype = INVALID_RCU_FLAVOR, ++}; ++#endif ++ + /* + * Don't even think about trying any of these in real life!!! + * The names includes "busted", and they really means it! +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -257,6 +257,7 @@ void rcu_sched_qs(void) + this_cpu_ptr(&rcu_sched_data), true); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + void rcu_bh_qs(void) + { + if (__this_cpu_read(rcu_bh_data.cpu_no_qs.s)) { +@@ -266,6 +267,7 @@ void rcu_bh_qs(void) + __this_cpu_write(rcu_bh_data.cpu_no_qs.b.norm, false); + } + } ++#endif + + static DEFINE_PER_CPU(int, rcu_sched_qs_mask); + +@@ -446,11 +448,13 @@ EXPORT_SYMBOL_GPL(rcu_batches_started_sc + /* + * Return the number of RCU BH batches started thus far for debug & stats. + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + unsigned long rcu_batches_started_bh(void) + { + return rcu_bh_state.gpnum; + } + EXPORT_SYMBOL_GPL(rcu_batches_started_bh); ++#endif + + /* + * Return the number of RCU batches completed thus far for debug & stats. +@@ -470,6 +474,7 @@ unsigned long rcu_batches_completed_sche + } + EXPORT_SYMBOL_GPL(rcu_batches_completed_sched); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Return the number of RCU BH batches completed thus far for debug & stats. + */ +@@ -478,6 +483,7 @@ unsigned long rcu_batches_completed_bh(v + return rcu_bh_state.completed; + } + EXPORT_SYMBOL_GPL(rcu_batches_completed_bh); ++#endif + + /* + * Return the number of RCU expedited batches completed thus far for +@@ -501,6 +507,7 @@ unsigned long rcu_exp_batches_completed_ + } + EXPORT_SYMBOL_GPL(rcu_exp_batches_completed_sched); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Force a quiescent state. + */ +@@ -519,6 +526,13 @@ void rcu_bh_force_quiescent_state(void) + } + EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state); + ++#else ++void rcu_force_quiescent_state(void) ++{ ++} ++EXPORT_SYMBOL_GPL(rcu_force_quiescent_state); ++#endif ++ + /* + * Force a quiescent state for RCU-sched. + */ +@@ -569,9 +583,11 @@ void rcutorture_get_gp_data(enum rcutort + case RCU_FLAVOR: + rsp = rcu_state_p; + break; ++#ifndef CONFIG_PREEMPT_RT_FULL + case RCU_BH_FLAVOR: + rsp = &rcu_bh_state; + break; ++#endif + case RCU_SCHED_FLAVOR: + rsp = &rcu_sched_state; + break; +@@ -3192,6 +3208,7 @@ void call_rcu_sched(struct rcu_head *hea + } + EXPORT_SYMBOL_GPL(call_rcu_sched); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* + * Queue an RCU callback for invocation after a quicker grace period. + */ +@@ -3200,6 +3217,7 @@ void call_rcu_bh(struct rcu_head *head, + __call_rcu(head, func, &rcu_bh_state, -1, 0); + } + EXPORT_SYMBOL_GPL(call_rcu_bh); ++#endif + + /* + * Queue an RCU callback for lazy invocation after a grace period. +@@ -3291,6 +3309,7 @@ void synchronize_sched(void) + } + EXPORT_SYMBOL_GPL(synchronize_sched); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /** + * synchronize_rcu_bh - wait until an rcu_bh grace period has elapsed. + * +@@ -3317,6 +3336,7 @@ void synchronize_rcu_bh(void) + wait_rcu_gp(call_rcu_bh); + } + EXPORT_SYMBOL_GPL(synchronize_rcu_bh); ++#endif + + /** + * get_state_synchronize_rcu - Snapshot current RCU state +@@ -3695,6 +3715,7 @@ static void _rcu_barrier(struct rcu_stat + mutex_unlock(&rsp->barrier_mutex); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + /** + * rcu_barrier_bh - Wait until all in-flight call_rcu_bh() callbacks complete. + */ +@@ -3703,6 +3724,7 @@ void rcu_barrier_bh(void) + _rcu_barrier(&rcu_bh_state); + } + EXPORT_SYMBOL_GPL(rcu_barrier_bh); ++#endif + + /** + * rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks. +@@ -4220,7 +4242,9 @@ void __init rcu_init(void) + + rcu_bootup_announce(); + rcu_init_geometry(); ++#ifndef CONFIG_PREEMPT_RT_FULL + rcu_init_one(&rcu_bh_state); ++#endif + rcu_init_one(&rcu_sched_state); + if (dump_tree) + rcu_dump_rcu_node_tree(&rcu_sched_state); +--- a/kernel/rcu/tree.h ++++ b/kernel/rcu/tree.h +@@ -588,7 +588,9 @@ extern struct list_head rcu_struct_flavo + */ + extern struct rcu_state rcu_sched_state; + ++#ifndef CONFIG_PREEMPT_RT_FULL + extern struct rcu_state rcu_bh_state; ++#endif + + #ifdef CONFIG_PREEMPT_RCU + extern struct rcu_state rcu_preempt_state; +--- a/kernel/rcu/update.c ++++ b/kernel/rcu/update.c +@@ -292,6 +292,7 @@ int rcu_read_lock_held(void) + } + EXPORT_SYMBOL_GPL(rcu_read_lock_held); + ++#ifndef CONFIG_PREEMPT_RT_FULL + /** + * rcu_read_lock_bh_held() - might we be in RCU-bh read-side critical section? + * +@@ -318,6 +319,7 @@ int rcu_read_lock_bh_held(void) + return in_softirq() || irqs_disabled(); + } + EXPORT_SYMBOL_GPL(rcu_read_lock_bh_held); ++#endif + + #endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */ + diff --git a/patches/features/all/rt/rcu-update-make-RCU_EXPEDITE_BOOT-default.patch b/patches/features/all/rt/rcu-update-make-RCU_EXPEDITE_BOOT-default.patch new file mode 100644 index 00000000000..6af6490090a --- /dev/null +++ b/patches/features/all/rt/rcu-update-make-RCU_EXPEDITE_BOOT-default.patch @@ -0,0 +1,61 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 2 Nov 2016 16:45:58 +0100 +Subject: [PATCH] rcu: update: make RCU_EXPEDITE_BOOT default +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RCU_EXPEDITE_BOOT should speed up the boot process by enforcing +synchronize_rcu_expedited() instead of synchronize_rcu() during the boot +process. There should be no reason why one does not want this and there +is no need worry about real time latency at this point. +Therefore make it default. + +Signed-off-by: Sebastian Andrzej Siewior +--- + init/Kconfig | 13 ------------- + kernel/rcu/update.c | 6 ++---- + 2 files changed, 2 insertions(+), 17 deletions(-) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -781,19 +781,6 @@ config RCU_NOCB_CPU_ALL + + endchoice + +-config RCU_EXPEDITE_BOOT +- bool +- default n +- help +- This option enables expedited grace periods at boot time, +- as if rcu_expedite_gp() had been invoked early in boot. +- The corresponding rcu_unexpedite_gp() is invoked from +- rcu_end_inkernel_boot(), which is intended to be invoked +- at the end of the kernel-only boot sequence, just before +- init is exec'ed. +- +- Accept the default if unsure. +- + endmenu # "RCU Subsystem" + + config BUILD_BIN2C +--- a/kernel/rcu/update.c ++++ b/kernel/rcu/update.c +@@ -129,8 +129,7 @@ bool rcu_gp_is_normal(void) + } + EXPORT_SYMBOL_GPL(rcu_gp_is_normal); + +-static atomic_t rcu_expedited_nesting = +- ATOMIC_INIT(IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT) ? 1 : 0); ++static atomic_t rcu_expedited_nesting = ATOMIC_INIT(1); + + /* + * Should normal grace-period primitives be expedited? Intended for +@@ -178,8 +177,7 @@ EXPORT_SYMBOL_GPL(rcu_unexpedite_gp); + */ + void rcu_end_inkernel_boot(void) + { +- if (IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT)) +- rcu_unexpedite_gp(); ++ rcu_unexpedite_gp(); + if (rcu_normal_after_boot) + WRITE_ONCE(rcu_normal, 1); + } diff --git a/patches/features/all/rt/rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch b/patches/features/all/rt/rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch new file mode 100644 index 00000000000..7cd0d734be0 --- /dev/null +++ b/patches/features/all/rt/rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch @@ -0,0 +1,49 @@ +From: Tiejun Chen +Date: Wed, 18 Dec 2013 17:51:49 +0800 +Subject: rcutree/rcu_bh_qs: Disable irq while calling rcu_preempt_qs() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Any callers to the function rcu_preempt_qs() must disable irqs in +order to protect the assignment to ->rcu_read_unlock_special. In +RT case, rcu_bh_qs() as the wrapper of rcu_preempt_qs() is called +in some scenarios where irq is enabled, like this path, + +do_single_softirq() + | + + local_irq_enable(); + + handle_softirq() + | | + | + rcu_bh_qs() + | | + | + rcu_preempt_qs() + | + + local_irq_disable() + +So here we'd better disable irq directly inside of rcu_bh_qs() to +fix this, otherwise the kernel may be freezable sometimes as +observed. And especially this way is also kind and safe for the +potential rcu_bh_qs() usage elsewhere in the future. + + +Signed-off-by: Tiejun Chen +Signed-off-by: Bin Jiang +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/rcu/tree.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -262,7 +262,12 @@ static void rcu_preempt_qs(void); + + void rcu_bh_qs(void) + { ++ unsigned long flags; ++ ++ /* Callers to this function, rcu_preempt_qs(), must disable irqs. */ ++ local_irq_save(flags); + rcu_preempt_qs(); ++ local_irq_restore(flags); + } + #else + void rcu_bh_qs(void) diff --git a/patches/features/all/rt/re-migrate_disable-race-with-cpu-hotplug-3f.patch b/patches/features/all/rt/re-migrate_disable-race-with-cpu-hotplug-3f.patch new file mode 100644 index 00000000000..23b4ae0fc91 --- /dev/null +++ b/patches/features/all/rt/re-migrate_disable-race-with-cpu-hotplug-3f.patch @@ -0,0 +1,35 @@ +From: Yong Zhang +Date: Thu, 28 Jul 2011 11:16:00 +0800 +Subject: hotplug: Reread hotplug_pcp on pin_current_cpu() retry +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When retry happens, it's likely that the task has been migrated to +another cpu (except unplug failed), but it still derefernces the +original hotplug_pcp per cpu data. + +Update the pointer to hotplug_pcp in the retry path, so it points to +the current cpu. + +Signed-off-by: Yong Zhang +Cc: Peter Zijlstra +Link: http://lkml.kernel.org/r/20110728031600.GA338@windriver.com +Signed-off-by: Thomas Gleixner +--- + kernel/cpu.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -257,9 +257,11 @@ static DEFINE_PER_CPU(struct hotplug_pcp + */ + void pin_current_cpu(void) + { +- struct hotplug_pcp *hp = this_cpu_ptr(&hotplug_pcp); ++ struct hotplug_pcp *hp; + + retry: ++ hp = this_cpu_ptr(&hotplug_pcp); ++ + if (!hp->unplug || hp->refcount || preempt_count() > 1 || + hp->unplug == current) { + hp->refcount++; diff --git a/patches/features/all/rt/re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch b/patches/features/all/rt/re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch new file mode 100644 index 00000000000..e0e1f9926af --- /dev/null +++ b/patches/features/all/rt/re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch @@ -0,0 +1,69 @@ +Subject: ARM: Initialize split page table locks for vector page +From: Frank Rowand +Date: Sat, 1 Oct 2011 18:58:13 -0700 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if +PREEMPT_RT_FULL=y because vectors_user_mapping() creates a +VM_ALWAYSDUMP mapping of the vector page (address 0xffff0000), but no +ptl->lock has been allocated for the page. An attempt to coredump +that page will result in a kernel NULL pointer dereference when +follow_page() attempts to lock the page. + +The call tree to the NULL pointer dereference is: + + do_notify_resume() + get_signal_to_deliver() + do_coredump() + elf_core_dump() + get_dump_page() + __get_user_pages() + follow_page() + pte_offset_map_lock() <----- a #define + ... + rt_spin_lock() + +The underlying problem is exposed by mm-shrink-the-page-frame-to-rt-size.patch. + +Signed-off-by: Frank Rowand +Cc: Frank +Cc: Peter Zijlstra +Link: http://lkml.kernel.org/r/4E87C535.2030907@am.sony.com +Signed-off-by: Thomas Gleixner +--- + arch/arm/kernel/process.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -322,6 +322,30 @@ unsigned long arch_randomize_brk(struct + } + + #ifdef CONFIG_MMU ++/* ++ * CONFIG_SPLIT_PTLOCK_CPUS results in a page->ptl lock. If the lock is not ++ * initialized by pgtable_page_ctor() then a coredump of the vector page will ++ * fail. ++ */ ++static int __init vectors_user_mapping_init_page(void) ++{ ++ struct page *page; ++ unsigned long addr = 0xffff0000; ++ pgd_t *pgd; ++ pud_t *pud; ++ pmd_t *pmd; ++ ++ pgd = pgd_offset_k(addr); ++ pud = pud_offset(pgd, addr); ++ pmd = pmd_offset(pud, addr); ++ page = pmd_page(*(pmd)); ++ ++ pgtable_page_ctor(page); ++ ++ return 0; ++} ++late_initcall(vectors_user_mapping_init_page); ++ + #ifdef CONFIG_KUSER_HELPERS + /* + * The vectors page is always readable from user space for the diff --git a/patches/features/all/rt/rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch b/patches/features/all/rt/rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch new file mode 100644 index 00000000000..6aaa1441168 --- /dev/null +++ b/patches/features/all/rt/rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch @@ -0,0 +1,96 @@ +Subject: ARM: smp: Move clear_tasks_mm_cpumask() call to __cpu_die() +From: Grygorii Strashko +Date: Fri, 11 Sep 2015 21:21:23 +0300 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When running with the RT-kernel (4.1.5-rt5) on TI OMAP dra7-evm and trying +to do Suspend to RAM, the following backtrace occurs: + + Disabling non-boot CPUs ... + PM: noirq suspend of devices complete after 7.295 msecs + Disabling non-boot CPUs ... + BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 + in_atomic(): 1, irqs_disabled(): 128, pid: 18, name: migration/1 + INFO: lockdep is turned off. + irq event stamp: 122 + hardirqs last enabled at (121): [] _raw_spin_unlock_irqrestore+0x88/0x90 + hardirqs last disabled at (122): [] _raw_spin_lock_irq+0x28/0x5c + softirqs last enabled at (0): [] copy_process.part.52+0x410/0x19d8 + softirqs last disabled at (0): [< (null)>] (null) + Preemption disabled at:[< (null)>] (null) + CPU: 1 PID: 18 Comm: migration/1 Tainted: G W 4.1.4-rt3-01046-g96ac8da #204 + Hardware name: Generic DRA74X (Flattened Device Tree) + [] (unwind_backtrace) from [] (show_stack+0x20/0x24) + [] (show_stack) from [] (dump_stack+0x88/0xdc) + [] (dump_stack) from [] (___might_sleep+0x198/0x2a8) + [] (___might_sleep) from [] (rt_spin_lock+0x30/0x70) + [] (rt_spin_lock) from [] (find_lock_task_mm+0x9c/0x174) + [] (find_lock_task_mm) from [] (clear_tasks_mm_cpumask+0xb4/0x1ac) + [] (clear_tasks_mm_cpumask) from [] (__cpu_disable+0x98/0xbc) + [] (__cpu_disable) from [] (take_cpu_down+0x1c/0x50) + [] (take_cpu_down) from [] (multi_cpu_stop+0x11c/0x158) + [] (multi_cpu_stop) from [] (cpu_stopper_thread+0xc4/0x184) + [] (cpu_stopper_thread) from [] (smpboot_thread_fn+0x18c/0x324) + [] (smpboot_thread_fn) from [] (kthread+0xe8/0x104) + [] (kthread) from [] (ret_from_fork+0x14/0x3c) + CPU1: shutdown + PM: Calling sched_clock_suspend+0x0/0x40 + PM: Calling timekeeping_suspend+0x0/0x2e0 + PM: Calling irq_gc_suspend+0x0/0x68 + PM: Calling fw_suspend+0x0/0x2c + PM: Calling cpu_pm_suspend+0x0/0x28 + +Also, sometimes system stucks right after displaying "Disabling non-boot +CPUs ...". The root cause of above backtrace is task_lock() which takes +a sleeping lock on -RT. + +To fix the issue, move clear_tasks_mm_cpumask() call from __cpu_disable() +to __cpu_die() which is called on the thread which is asking for a target +CPU to be shutdown. In addition, this change restores CPUhotplug functionality +on TI OMAP dra7-evm and CPU1 can be unplugged/plugged many times. + +Signed-off-by: Grygorii Strashko +Cc: Steven Rostedt +Cc: +Cc: Sekhar Nori +Cc: Austin Schuh +Cc: +Cc: Russell King +Cc: +Cc: stable-rt@vger.kernel.org +Link: http://lkml.kernel.org/r/1441995683-30817-1-git-send-email-grygorii.strashko@ti.com +Signed-off-by: Thomas Gleixner +--- + +RFC: I'm not sure how safe this change is and will be appreciated for any comments. +Most of arches call clear_tasks_mm_cpumask() from __cpu_disable(), but *powerpc* +calls it from CPU_DEAD notifier. This patch follows powerpc's approach in +general. + +This issue was first reported in: + http://www.spinics.net/lists/linux-rt-users/msg13752.html + + arch/arm/kernel/smp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/arch/arm/kernel/smp.c ++++ b/arch/arm/kernel/smp.c +@@ -234,8 +234,6 @@ int __cpu_disable(void) + flush_cache_louis(); + local_flush_tlb_all(); + +- clear_tasks_mm_cpumask(cpu); +- + return 0; + } + +@@ -251,6 +249,9 @@ void __cpu_die(unsigned int cpu) + pr_err("CPU%u: cpu didn't die\n", cpu); + return; + } ++ ++ clear_tasks_mm_cpumask(cpu); ++ + pr_notice("CPU%u: shutdown\n", cpu); + + /* diff --git a/patches/features/all/rt/rt-add-rt-locks.patch b/patches/features/all/rt/rt-add-rt-locks.patch new file mode 100644 index 00000000000..448634796af --- /dev/null +++ b/patches/features/all/rt/rt-add-rt-locks.patch @@ -0,0 +1,2235 @@ +From: Thomas Gleixner +Date: Sun, 26 Jul 2009 19:39:56 +0200 +Subject: rt: Add the preempt-rt lock replacement APIs +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex +based locking functions for preempt-rt. +This also introduces RT's sleeping locks. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/kernel.h | 4 + include/linux/locallock.h | 6 + include/linux/mutex.h | 20 - + include/linux/mutex_rt.h | 84 ++++++ + include/linux/rtmutex.h | 29 +- + include/linux/rwlock_rt.h | 99 +++++++ + include/linux/rwlock_types_rt.h | 33 ++ + include/linux/rwsem.h | 6 + include/linux/rwsem_rt.h | 167 ++++++++++++ + include/linux/sched.h | 19 + + include/linux/spinlock.h | 12 + include/linux/spinlock_api_smp.h | 4 + include/linux/spinlock_rt.h | 162 ++++++++++++ + include/linux/spinlock_types.h | 11 + include/linux/spinlock_types_rt.h | 48 +++ + kernel/futex.c | 10 + kernel/locking/Makefile | 9 + kernel/locking/rt.c | 498 ++++++++++++++++++++++++++++++++++++++ + kernel/locking/rtmutex.c | 460 +++++++++++++++++++++++++++++++++-- + kernel/locking/rtmutex_common.h | 14 - + kernel/locking/spinlock.c | 7 + kernel/locking/spinlock_debug.c | 5 + kernel/sched/core.c | 7 + 23 files changed, 1658 insertions(+), 56 deletions(-) + +--- a/include/linux/kernel.h ++++ b/include/linux/kernel.h +@@ -194,6 +194,9 @@ extern int _cond_resched(void); + */ + # define might_sleep() \ + do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0) ++ ++# define might_sleep_no_state_check() \ ++ do { ___might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0) + # define sched_annotate_sleep() (current->task_state_change = 0) + #else + static inline void ___might_sleep(const char *file, int line, +@@ -201,6 +204,7 @@ extern int _cond_resched(void); + static inline void __might_sleep(const char *file, int line, + int preempt_offset) { } + # define might_sleep() do { might_resched(); } while (0) ++# define might_sleep_no_state_check() do { might_resched(); } while (0) + # define sched_annotate_sleep() do { } while (0) + #endif + +--- a/include/linux/locallock.h ++++ b/include/linux/locallock.h +@@ -42,9 +42,15 @@ struct local_irq_lock { + * already takes care of the migrate_disable/enable + * for CONFIG_PREEMPT_BASE map to the normal spin_* calls. + */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define spin_lock_local(lock) rt_spin_lock__no_mg(lock) ++# define spin_trylock_local(lock) rt_spin_trylock__no_mg(lock) ++# define spin_unlock_local(lock) rt_spin_unlock__no_mg(lock) ++#else + # define spin_lock_local(lock) spin_lock(lock) + # define spin_trylock_local(lock) spin_trylock(lock) + # define spin_unlock_local(lock) spin_unlock(lock) ++#endif + + static inline void __local_lock(struct local_irq_lock *lv) + { +--- a/include/linux/mutex.h ++++ b/include/linux/mutex.h +@@ -19,6 +19,17 @@ + #include + #include + ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \ ++ , .dep_map = { .name = #lockname } ++#else ++# define __DEP_MAP_MUTEX_INITIALIZER(lockname) ++#endif ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++# include ++#else ++ + /* + * Simple, straightforward mutexes with strict semantics: + * +@@ -99,13 +110,6 @@ do { \ + static inline void mutex_destroy(struct mutex *lock) {} + #endif + +-#ifdef CONFIG_DEBUG_LOCK_ALLOC +-# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \ +- , .dep_map = { .name = #lockname } +-#else +-# define __DEP_MAP_MUTEX_INITIALIZER(lockname) +-#endif +- + #define __MUTEX_INITIALIZER(lockname) \ + { .count = ATOMIC_INIT(1) \ + , .wait_lock = __SPIN_LOCK_UNLOCKED(lockname.wait_lock) \ +@@ -173,6 +177,8 @@ extern int __must_check mutex_lock_killa + extern int mutex_trylock(struct mutex *lock); + extern void mutex_unlock(struct mutex *lock); + ++#endif /* !PREEMPT_RT_FULL */ ++ + extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock); + + #endif /* __LINUX_MUTEX_H */ +--- /dev/null ++++ b/include/linux/mutex_rt.h +@@ -0,0 +1,84 @@ ++#ifndef __LINUX_MUTEX_RT_H ++#define __LINUX_MUTEX_RT_H ++ ++#ifndef __LINUX_MUTEX_H ++#error "Please include mutex.h" ++#endif ++ ++#include ++ ++/* FIXME: Just for __lockfunc */ ++#include ++ ++struct mutex { ++ struct rt_mutex lock; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++}; ++ ++#define __MUTEX_INITIALIZER(mutexname) \ ++ { \ ++ .lock = __RT_MUTEX_INITIALIZER(mutexname.lock) \ ++ __DEP_MAP_MUTEX_INITIALIZER(mutexname) \ ++ } ++ ++#define DEFINE_MUTEX(mutexname) \ ++ struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) ++ ++extern void __mutex_do_init(struct mutex *lock, const char *name, struct lock_class_key *key); ++extern void __lockfunc _mutex_lock(struct mutex *lock); ++extern int __lockfunc _mutex_lock_interruptible(struct mutex *lock); ++extern int __lockfunc _mutex_lock_killable(struct mutex *lock); ++extern void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass); ++extern void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest_lock); ++extern int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass); ++extern int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass); ++extern int __lockfunc _mutex_trylock(struct mutex *lock); ++extern void __lockfunc _mutex_unlock(struct mutex *lock); ++ ++#define mutex_is_locked(l) rt_mutex_is_locked(&(l)->lock) ++#define mutex_lock(l) _mutex_lock(l) ++#define mutex_lock_interruptible(l) _mutex_lock_interruptible(l) ++#define mutex_lock_killable(l) _mutex_lock_killable(l) ++#define mutex_trylock(l) _mutex_trylock(l) ++#define mutex_unlock(l) _mutex_unlock(l) ++#define mutex_destroy(l) rt_mutex_destroy(&(l)->lock) ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++# define mutex_lock_nested(l, s) _mutex_lock_nested(l, s) ++# define mutex_lock_interruptible_nested(l, s) \ ++ _mutex_lock_interruptible_nested(l, s) ++# define mutex_lock_killable_nested(l, s) \ ++ _mutex_lock_killable_nested(l, s) ++ ++# define mutex_lock_nest_lock(lock, nest_lock) \ ++do { \ ++ typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \ ++ _mutex_lock_nest_lock(lock, &(nest_lock)->dep_map); \ ++} while (0) ++ ++#else ++# define mutex_lock_nested(l, s) _mutex_lock(l) ++# define mutex_lock_interruptible_nested(l, s) \ ++ _mutex_lock_interruptible(l) ++# define mutex_lock_killable_nested(l, s) \ ++ _mutex_lock_killable(l) ++# define mutex_lock_nest_lock(lock, nest_lock) mutex_lock(lock) ++#endif ++ ++# define mutex_init(mutex) \ ++do { \ ++ static struct lock_class_key __key; \ ++ \ ++ rt_mutex_init(&(mutex)->lock); \ ++ __mutex_do_init((mutex), #mutex, &__key); \ ++} while (0) ++ ++# define __mutex_init(mutex, name, key) \ ++do { \ ++ rt_mutex_init(&(mutex)->lock); \ ++ __mutex_do_init((mutex), name, key); \ ++} while (0) ++ ++#endif +--- a/include/linux/rtmutex.h ++++ b/include/linux/rtmutex.h +@@ -13,11 +13,15 @@ + #define __LINUX_RT_MUTEX_H + + #include +-#include + #include ++#include + + extern int max_lock_depth; /* for sysctl */ + ++#ifdef CONFIG_DEBUG_MUTEXES ++#include ++#endif ++ + /** + * The rt_mutex structure + * +@@ -31,8 +35,8 @@ struct rt_mutex { + struct rb_root waiters; + struct rb_node *waiters_leftmost; + struct task_struct *owner; +-#ifdef CONFIG_DEBUG_RT_MUTEXES + int save_state; ++#ifdef CONFIG_DEBUG_RT_MUTEXES + const char *name, *file; + int line; + void *magic; +@@ -55,22 +59,33 @@ struct hrtimer_sleeper; + # define rt_mutex_debug_check_no_locks_held(task) do { } while (0) + #endif + ++# define rt_mutex_init(mutex) \ ++ do { \ ++ raw_spin_lock_init(&(mutex)->wait_lock); \ ++ __rt_mutex_init(mutex, #mutex); \ ++ } while (0) ++ + #ifdef CONFIG_DEBUG_RT_MUTEXES + # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ + , .name = #mutexname, .file = __FILE__, .line = __LINE__ +-# define rt_mutex_init(mutex) __rt_mutex_init(mutex, __func__) + extern void rt_mutex_debug_task_free(struct task_struct *tsk); + #else + # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) +-# define rt_mutex_init(mutex) __rt_mutex_init(mutex, NULL) + # define rt_mutex_debug_task_free(t) do { } while (0) + #endif + +-#define __RT_MUTEX_INITIALIZER(mutexname) \ +- { .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \ ++#define __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \ ++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \ + , .waiters = RB_ROOT \ + , .owner = NULL \ +- __DEBUG_RT_MUTEX_INITIALIZER(mutexname)} ++ __DEBUG_RT_MUTEX_INITIALIZER(mutexname) ++ ++#define __RT_MUTEX_INITIALIZER(mutexname) \ ++ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) } ++ ++#define __RT_MUTEX_INITIALIZER_SAVE_STATE(mutexname) \ ++ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \ ++ , .save_state = 1 } + + #define DEFINE_RT_MUTEX(mutexname) \ + struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname) +--- /dev/null ++++ b/include/linux/rwlock_rt.h +@@ -0,0 +1,99 @@ ++#ifndef __LINUX_RWLOCK_RT_H ++#define __LINUX_RWLOCK_RT_H ++ ++#ifndef __LINUX_SPINLOCK_H ++#error Do not include directly. Use spinlock.h ++#endif ++ ++#define rwlock_init(rwl) \ ++do { \ ++ static struct lock_class_key __key; \ ++ \ ++ rt_mutex_init(&(rwl)->lock); \ ++ __rt_rwlock_init(rwl, #rwl, &__key); \ ++} while (0) ++ ++extern void __lockfunc rt_write_lock(rwlock_t *rwlock); ++extern void __lockfunc rt_read_lock(rwlock_t *rwlock); ++extern int __lockfunc rt_write_trylock(rwlock_t *rwlock); ++extern int __lockfunc rt_write_trylock_irqsave(rwlock_t *trylock, unsigned long *flags); ++extern int __lockfunc rt_read_trylock(rwlock_t *rwlock); ++extern void __lockfunc rt_write_unlock(rwlock_t *rwlock); ++extern void __lockfunc rt_read_unlock(rwlock_t *rwlock); ++extern unsigned long __lockfunc rt_write_lock_irqsave(rwlock_t *rwlock); ++extern unsigned long __lockfunc rt_read_lock_irqsave(rwlock_t *rwlock); ++extern void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key); ++ ++#define read_trylock(lock) __cond_lock(lock, rt_read_trylock(lock)) ++#define write_trylock(lock) __cond_lock(lock, rt_write_trylock(lock)) ++ ++#define write_trylock_irqsave(lock, flags) \ ++ __cond_lock(lock, rt_write_trylock_irqsave(lock, &flags)) ++ ++#define read_lock_irqsave(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ flags = rt_read_lock_irqsave(lock); \ ++ } while (0) ++ ++#define write_lock_irqsave(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ flags = rt_write_lock_irqsave(lock); \ ++ } while (0) ++ ++#define read_lock(lock) rt_read_lock(lock) ++ ++#define read_lock_bh(lock) \ ++ do { \ ++ local_bh_disable(); \ ++ rt_read_lock(lock); \ ++ } while (0) ++ ++#define read_lock_irq(lock) read_lock(lock) ++ ++#define write_lock(lock) rt_write_lock(lock) ++ ++#define write_lock_bh(lock) \ ++ do { \ ++ local_bh_disable(); \ ++ rt_write_lock(lock); \ ++ } while (0) ++ ++#define write_lock_irq(lock) write_lock(lock) ++ ++#define read_unlock(lock) rt_read_unlock(lock) ++ ++#define read_unlock_bh(lock) \ ++ do { \ ++ rt_read_unlock(lock); \ ++ local_bh_enable(); \ ++ } while (0) ++ ++#define read_unlock_irq(lock) read_unlock(lock) ++ ++#define write_unlock(lock) rt_write_unlock(lock) ++ ++#define write_unlock_bh(lock) \ ++ do { \ ++ rt_write_unlock(lock); \ ++ local_bh_enable(); \ ++ } while (0) ++ ++#define write_unlock_irq(lock) write_unlock(lock) ++ ++#define read_unlock_irqrestore(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ (void) flags; \ ++ rt_read_unlock(lock); \ ++ } while (0) ++ ++#define write_unlock_irqrestore(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ (void) flags; \ ++ rt_write_unlock(lock); \ ++ } while (0) ++ ++#endif +--- /dev/null ++++ b/include/linux/rwlock_types_rt.h +@@ -0,0 +1,33 @@ ++#ifndef __LINUX_RWLOCK_TYPES_RT_H ++#define __LINUX_RWLOCK_TYPES_RT_H ++ ++#ifndef __LINUX_SPINLOCK_TYPES_H ++#error "Do not include directly. Include spinlock_types.h instead" ++#endif ++ ++/* ++ * rwlocks - rtmutex which allows single reader recursion ++ */ ++typedef struct { ++ struct rt_mutex lock; ++ int read_depth; ++ unsigned int break_lock; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++} rwlock_t; ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++# define RW_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname } ++#else ++# define RW_DEP_MAP_INIT(lockname) ++#endif ++ ++#define __RW_LOCK_UNLOCKED(name) \ ++ { .lock = __RT_MUTEX_INITIALIZER_SAVE_STATE(name.lock), \ ++ RW_DEP_MAP_INIT(name) } ++ ++#define DEFINE_RWLOCK(name) \ ++ rwlock_t name = __RW_LOCK_UNLOCKED(name) ++ ++#endif +--- a/include/linux/rwsem.h ++++ b/include/linux/rwsem.h +@@ -19,6 +19,10 @@ + #include + #endif + ++#ifdef CONFIG_PREEMPT_RT_FULL ++#include ++#else /* PREEMPT_RT_FULL */ ++ + struct rw_semaphore; + + #ifdef CONFIG_RWSEM_GENERIC_SPINLOCK +@@ -184,4 +188,6 @@ extern void up_read_non_owner(struct rw_ + # define up_read_non_owner(sem) up_read(sem) + #endif + ++#endif /* !PREEMPT_RT_FULL */ ++ + #endif /* _LINUX_RWSEM_H */ +--- /dev/null ++++ b/include/linux/rwsem_rt.h +@@ -0,0 +1,167 @@ ++#ifndef _LINUX_RWSEM_RT_H ++#define _LINUX_RWSEM_RT_H ++ ++#ifndef _LINUX_RWSEM_H ++#error "Include rwsem.h" ++#endif ++ ++/* ++ * RW-semaphores are a spinlock plus a reader-depth count. ++ * ++ * Note that the semantics are different from the usual ++ * Linux rw-sems, in PREEMPT_RT mode we do not allow ++ * multiple readers to hold the lock at once, we only allow ++ * a read-lock owner to read-lock recursively. This is ++ * better for latency, makes the implementation inherently ++ * fair and makes it simpler as well. ++ */ ++ ++#include ++ ++struct rw_semaphore { ++ struct rt_mutex lock; ++ int read_depth; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++}; ++ ++#define __RWSEM_INITIALIZER(name) \ ++ { .lock = __RT_MUTEX_INITIALIZER(name.lock), \ ++ RW_DEP_MAP_INIT(name) } ++ ++#define DECLARE_RWSEM(lockname) \ ++ struct rw_semaphore lockname = __RWSEM_INITIALIZER(lockname) ++ ++extern void __rt_rwsem_init(struct rw_semaphore *rwsem, const char *name, ++ struct lock_class_key *key); ++ ++#define __rt_init_rwsem(sem, name, key) \ ++ do { \ ++ rt_mutex_init(&(sem)->lock); \ ++ __rt_rwsem_init((sem), (name), (key));\ ++ } while (0) ++ ++#define __init_rwsem(sem, name, key) __rt_init_rwsem(sem, name, key) ++ ++# define rt_init_rwsem(sem) \ ++do { \ ++ static struct lock_class_key __key; \ ++ \ ++ __rt_init_rwsem((sem), #sem, &__key); \ ++} while (0) ++ ++extern void rt_down_write(struct rw_semaphore *rwsem); ++extern int rt_down_write_killable(struct rw_semaphore *rwsem); ++extern void rt_down_read_nested(struct rw_semaphore *rwsem, int subclass); ++extern void rt_down_write_nested(struct rw_semaphore *rwsem, int subclass); ++extern int rt_down_write_killable_nested(struct rw_semaphore *rwsem, ++ int subclass); ++extern void rt_down_write_nested_lock(struct rw_semaphore *rwsem, ++ struct lockdep_map *nest); ++extern void rt__down_read(struct rw_semaphore *rwsem); ++extern void rt_down_read(struct rw_semaphore *rwsem); ++extern int rt_down_write_trylock(struct rw_semaphore *rwsem); ++extern int rt__down_read_trylock(struct rw_semaphore *rwsem); ++extern int rt_down_read_trylock(struct rw_semaphore *rwsem); ++extern void __rt_up_read(struct rw_semaphore *rwsem); ++extern void rt_up_read(struct rw_semaphore *rwsem); ++extern void rt_up_write(struct rw_semaphore *rwsem); ++extern void rt_downgrade_write(struct rw_semaphore *rwsem); ++ ++#define init_rwsem(sem) rt_init_rwsem(sem) ++#define rwsem_is_locked(s) rt_mutex_is_locked(&(s)->lock) ++ ++static inline int rwsem_is_contended(struct rw_semaphore *sem) ++{ ++ /* rt_mutex_has_waiters() */ ++ return !RB_EMPTY_ROOT(&sem->lock.waiters); ++} ++ ++static inline void __down_read(struct rw_semaphore *sem) ++{ ++ rt__down_read(sem); ++} ++ ++static inline void down_read(struct rw_semaphore *sem) ++{ ++ rt_down_read(sem); ++} ++ ++static inline int __down_read_trylock(struct rw_semaphore *sem) ++{ ++ return rt__down_read_trylock(sem); ++} ++ ++static inline int down_read_trylock(struct rw_semaphore *sem) ++{ ++ return rt_down_read_trylock(sem); ++} ++ ++static inline void down_write(struct rw_semaphore *sem) ++{ ++ rt_down_write(sem); ++} ++ ++static inline int down_write_killable(struct rw_semaphore *sem) ++{ ++ return rt_down_write_killable(sem); ++} ++ ++static inline int down_write_trylock(struct rw_semaphore *sem) ++{ ++ return rt_down_write_trylock(sem); ++} ++ ++static inline void __up_read(struct rw_semaphore *sem) ++{ ++ __rt_up_read(sem); ++} ++ ++static inline void up_read(struct rw_semaphore *sem) ++{ ++ rt_up_read(sem); ++} ++ ++static inline void up_write(struct rw_semaphore *sem) ++{ ++ rt_up_write(sem); ++} ++ ++static inline void downgrade_write(struct rw_semaphore *sem) ++{ ++ rt_downgrade_write(sem); ++} ++ ++static inline void down_read_nested(struct rw_semaphore *sem, int subclass) ++{ ++ return rt_down_read_nested(sem, subclass); ++} ++ ++static inline void down_write_nested(struct rw_semaphore *sem, int subclass) ++{ ++ rt_down_write_nested(sem, subclass); ++} ++ ++static inline int down_write_killable_nested(struct rw_semaphore *sem, ++ int subclass) ++{ ++ return rt_down_write_killable_nested(sem, subclass); ++} ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++static inline void down_write_nest_lock(struct rw_semaphore *sem, ++ struct rw_semaphore *nest_lock) ++{ ++ rt_down_write_nested_lock(sem, &nest_lock->dep_map); ++} ++ ++#else ++ ++static inline void down_write_nest_lock(struct rw_semaphore *sem, ++ struct rw_semaphore *nest_lock) ++{ ++ rt_down_write_nested_lock(sem, NULL); ++} ++#endif ++#endif +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -312,6 +312,11 @@ extern char ___assert_task_state[1 - 2*! + + #endif + ++#define __set_current_state_no_track(state_value) \ ++ do { current->state = (state_value); } while (0) ++#define set_current_state_no_track(state_value) \ ++ set_mb(current->state, (state_value)) ++ + /* Task command name length */ + #define TASK_COMM_LEN 16 + +@@ -1013,8 +1018,18 @@ struct wake_q_head { + struct wake_q_head name = { WAKE_Q_TAIL, &name.first } + + extern void wake_q_add(struct wake_q_head *head, +- struct task_struct *task); +-extern void wake_up_q(struct wake_q_head *head); ++ struct task_struct *task); ++extern void __wake_up_q(struct wake_q_head *head, bool sleeper); ++ ++static inline void wake_up_q(struct wake_q_head *head) ++{ ++ __wake_up_q(head, false); ++} ++ ++static inline void wake_up_q_sleeper(struct wake_q_head *head) ++{ ++ __wake_up_q(head, true); ++} + + /* + * sched-domains (multiprocessor balancing) declarations: +--- a/include/linux/spinlock.h ++++ b/include/linux/spinlock.h +@@ -271,7 +271,11 @@ static inline void do_raw_spin_unlock(ra + #define raw_spin_can_lock(lock) (!raw_spin_is_locked(lock)) + + /* Include rwlock functions */ +-#include ++#ifdef CONFIG_PREEMPT_RT_FULL ++# include ++#else ++# include ++#endif + + /* + * Pull the _spin_*()/_read_*()/_write_*() functions/declarations: +@@ -282,6 +286,10 @@ static inline void do_raw_spin_unlock(ra + # include + #endif + ++#ifdef CONFIG_PREEMPT_RT_FULL ++# include ++#else /* PREEMPT_RT_FULL */ ++ + /* + * Map the spin_lock functions to the raw variants for PREEMPT_RT=n + */ +@@ -416,4 +424,6 @@ extern int _atomic_dec_and_lock(atomic_t + #define atomic_dec_and_lock(atomic, lock) \ + __cond_lock(lock, _atomic_dec_and_lock(atomic, lock)) + ++#endif /* !PREEMPT_RT_FULL */ ++ + #endif /* __LINUX_SPINLOCK_H */ +--- a/include/linux/spinlock_api_smp.h ++++ b/include/linux/spinlock_api_smp.h +@@ -189,6 +189,8 @@ static inline int __raw_spin_trylock_bh( + return 0; + } + +-#include ++#ifndef CONFIG_PREEMPT_RT_FULL ++# include ++#endif + + #endif /* __LINUX_SPINLOCK_API_SMP_H */ +--- /dev/null ++++ b/include/linux/spinlock_rt.h +@@ -0,0 +1,162 @@ ++#ifndef __LINUX_SPINLOCK_RT_H ++#define __LINUX_SPINLOCK_RT_H ++ ++#ifndef __LINUX_SPINLOCK_H ++#error Do not include directly. Use spinlock.h ++#endif ++ ++#include ++ ++extern void ++__rt_spin_lock_init(spinlock_t *lock, char *name, struct lock_class_key *key); ++ ++#define spin_lock_init(slock) \ ++do { \ ++ static struct lock_class_key __key; \ ++ \ ++ rt_mutex_init(&(slock)->lock); \ ++ __rt_spin_lock_init(slock, #slock, &__key); \ ++} while (0) ++ ++void __lockfunc rt_spin_lock__no_mg(spinlock_t *lock); ++void __lockfunc rt_spin_unlock__no_mg(spinlock_t *lock); ++int __lockfunc rt_spin_trylock__no_mg(spinlock_t *lock); ++ ++extern void __lockfunc rt_spin_lock(spinlock_t *lock); ++extern unsigned long __lockfunc rt_spin_lock_trace_flags(spinlock_t *lock); ++extern void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass); ++extern void __lockfunc rt_spin_unlock(spinlock_t *lock); ++extern void __lockfunc rt_spin_unlock_wait(spinlock_t *lock); ++extern int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags); ++extern int __lockfunc rt_spin_trylock_bh(spinlock_t *lock); ++extern int __lockfunc rt_spin_trylock(spinlock_t *lock); ++extern int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock); ++ ++/* ++ * lockdep-less calls, for derived types like rwlock: ++ * (for trylock they can use rt_mutex_trylock() directly. ++ */ ++extern void __lockfunc __rt_spin_lock__no_mg(struct rt_mutex *lock); ++extern void __lockfunc __rt_spin_lock(struct rt_mutex *lock); ++extern void __lockfunc __rt_spin_unlock(struct rt_mutex *lock); ++ ++#define spin_lock(lock) rt_spin_lock(lock) ++ ++#define spin_lock_bh(lock) \ ++ do { \ ++ local_bh_disable(); \ ++ rt_spin_lock(lock); \ ++ } while (0) ++ ++#define spin_lock_irq(lock) spin_lock(lock) ++ ++#define spin_do_trylock(lock) __cond_lock(lock, rt_spin_trylock(lock)) ++ ++#define spin_trylock(lock) \ ++({ \ ++ int __locked; \ ++ __locked = spin_do_trylock(lock); \ ++ __locked; \ ++}) ++ ++#ifdef CONFIG_LOCKDEP ++# define spin_lock_nested(lock, subclass) \ ++ do { \ ++ rt_spin_lock_nested(lock, subclass); \ ++ } while (0) ++ ++#define spin_lock_bh_nested(lock, subclass) \ ++ do { \ ++ local_bh_disable(); \ ++ rt_spin_lock_nested(lock, subclass); \ ++ } while (0) ++ ++# define spin_lock_irqsave_nested(lock, flags, subclass) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ flags = 0; \ ++ rt_spin_lock_nested(lock, subclass); \ ++ } while (0) ++#else ++# define spin_lock_nested(lock, subclass) spin_lock(lock) ++# define spin_lock_bh_nested(lock, subclass) spin_lock_bh(lock) ++ ++# define spin_lock_irqsave_nested(lock, flags, subclass) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ flags = 0; \ ++ spin_lock(lock); \ ++ } while (0) ++#endif ++ ++#define spin_lock_irqsave(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ flags = 0; \ ++ spin_lock(lock); \ ++ } while (0) ++ ++static inline unsigned long spin_lock_trace_flags(spinlock_t *lock) ++{ ++ unsigned long flags = 0; ++#ifdef CONFIG_TRACE_IRQFLAGS ++ flags = rt_spin_lock_trace_flags(lock); ++#else ++ spin_lock(lock); /* lock_local */ ++#endif ++ return flags; ++} ++ ++/* FIXME: we need rt_spin_lock_nest_lock */ ++#define spin_lock_nest_lock(lock, nest_lock) spin_lock_nested(lock, 0) ++ ++#define spin_unlock(lock) rt_spin_unlock(lock) ++ ++#define spin_unlock_bh(lock) \ ++ do { \ ++ rt_spin_unlock(lock); \ ++ local_bh_enable(); \ ++ } while (0) ++ ++#define spin_unlock_irq(lock) spin_unlock(lock) ++ ++#define spin_unlock_irqrestore(lock, flags) \ ++ do { \ ++ typecheck(unsigned long, flags); \ ++ (void) flags; \ ++ spin_unlock(lock); \ ++ } while (0) ++ ++#define spin_trylock_bh(lock) __cond_lock(lock, rt_spin_trylock_bh(lock)) ++#define spin_trylock_irq(lock) spin_trylock(lock) ++ ++#define spin_trylock_irqsave(lock, flags) \ ++ rt_spin_trylock_irqsave(lock, &(flags)) ++ ++#define spin_unlock_wait(lock) rt_spin_unlock_wait(lock) ++ ++#ifdef CONFIG_GENERIC_LOCKBREAK ++# define spin_is_contended(lock) ((lock)->break_lock) ++#else ++# define spin_is_contended(lock) (((void)(lock), 0)) ++#endif ++ ++static inline int spin_can_lock(spinlock_t *lock) ++{ ++ return !rt_mutex_is_locked(&lock->lock); ++} ++ ++static inline int spin_is_locked(spinlock_t *lock) ++{ ++ return rt_mutex_is_locked(&lock->lock); ++} ++ ++static inline void assert_spin_locked(spinlock_t *lock) ++{ ++ BUG_ON(!spin_is_locked(lock)); ++} ++ ++#define atomic_dec_and_lock(atomic, lock) \ ++ atomic_dec_and_spin_lock(atomic, lock) ++ ++#endif +--- a/include/linux/spinlock_types.h ++++ b/include/linux/spinlock_types.h +@@ -11,8 +11,13 @@ + + #include + +-#include +- +-#include ++#ifndef CONFIG_PREEMPT_RT_FULL ++# include ++# include ++#else ++# include ++# include ++# include ++#endif + + #endif /* __LINUX_SPINLOCK_TYPES_H */ +--- /dev/null ++++ b/include/linux/spinlock_types_rt.h +@@ -0,0 +1,48 @@ ++#ifndef __LINUX_SPINLOCK_TYPES_RT_H ++#define __LINUX_SPINLOCK_TYPES_RT_H ++ ++#ifndef __LINUX_SPINLOCK_TYPES_H ++#error "Do not include directly. Include spinlock_types.h instead" ++#endif ++ ++#include ++ ++/* ++ * PREEMPT_RT: spinlocks - an RT mutex plus lock-break field: ++ */ ++typedef struct spinlock { ++ struct rt_mutex lock; ++ unsigned int break_lock; ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++} spinlock_t; ++ ++#ifdef CONFIG_DEBUG_RT_MUTEXES ++# define __RT_SPIN_INITIALIZER(name) \ ++ { \ ++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \ ++ .save_state = 1, \ ++ .file = __FILE__, \ ++ .line = __LINE__ , \ ++ } ++#else ++# define __RT_SPIN_INITIALIZER(name) \ ++ { \ ++ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \ ++ .save_state = 1, \ ++ } ++#endif ++ ++/* ++.wait_list = PLIST_HEAD_INIT_RAW((name).lock.wait_list, (name).lock.wait_lock) ++*/ ++ ++#define __SPIN_LOCK_UNLOCKED(name) \ ++ { .lock = __RT_SPIN_INITIALIZER(name.lock), \ ++ SPIN_DEP_MAP_INIT(name) } ++ ++#define DEFINE_SPINLOCK(name) \ ++ spinlock_t name = __SPIN_LOCK_UNLOCKED(name) ++ ++#endif +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -1301,6 +1301,7 @@ static int wake_futex_pi(u32 __user *uad + struct futex_pi_state *pi_state = this->pi_state; + u32 uninitialized_var(curval), newval; + WAKE_Q(wake_q); ++ WAKE_Q(wake_sleeper_q); + bool deboost; + int ret = 0; + +@@ -1367,7 +1368,8 @@ static int wake_futex_pi(u32 __user *uad + + raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); + +- deboost = rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q); ++ deboost = rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q, ++ &wake_sleeper_q); + + /* + * First unlock HB so the waiter does not spin on it once he got woken +@@ -1377,6 +1379,7 @@ static int wake_futex_pi(u32 __user *uad + */ + spin_unlock(&hb->lock); + wake_up_q(&wake_q); ++ wake_up_q_sleeper(&wake_sleeper_q); + if (deboost) + rt_mutex_adjust_prio(current); + +@@ -2851,10 +2854,7 @@ static int futex_wait_requeue_pi(u32 __u + * The waiter is allocated on our stack, manipulated by the requeue + * code while we sleep on uaddr. + */ +- debug_rt_mutex_init_waiter(&rt_waiter); +- RB_CLEAR_NODE(&rt_waiter.pi_tree_entry); +- RB_CLEAR_NODE(&rt_waiter.tree_entry); +- rt_waiter.task = NULL; ++ rt_mutex_init_waiter(&rt_waiter, false); + + ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE); + if (unlikely(ret != 0)) +--- a/kernel/locking/Makefile ++++ b/kernel/locking/Makefile +@@ -2,7 +2,7 @@ + # and is generally not a function of system call inputs. + KCOV_INSTRUMENT := n + +-obj-y += mutex.o semaphore.o rwsem.o percpu-rwsem.o ++obj-y += semaphore.o percpu-rwsem.o + + ifdef CONFIG_FUNCTION_TRACER + CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE) +@@ -11,7 +11,11 @@ CFLAGS_REMOVE_mutex-debug.o = $(CC_FLAGS + CFLAGS_REMOVE_rtmutex-debug.o = $(CC_FLAGS_FTRACE) + endif + ++ifneq ($(CONFIG_PREEMPT_RT_FULL),y) ++obj-y += mutex.o + obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o ++obj-y += rwsem.o ++endif + obj-$(CONFIG_LOCKDEP) += lockdep.o + ifeq ($(CONFIG_PROC_FS),y) + obj-$(CONFIG_LOCKDEP) += lockdep_proc.o +@@ -24,7 +28,10 @@ obj-$(CONFIG_RT_MUTEXES) += rtmutex.o + obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o + obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o + obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o ++ifneq ($(CONFIG_PREEMPT_RT_FULL),y) + obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o + obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o ++endif ++obj-$(CONFIG_PREEMPT_RT_FULL) += rt.o + obj-$(CONFIG_QUEUED_RWLOCKS) += qrwlock.o + obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o +--- /dev/null ++++ b/kernel/locking/rt.c +@@ -0,0 +1,498 @@ ++/* ++ * kernel/rt.c ++ * ++ * Real-Time Preemption Support ++ * ++ * started by Ingo Molnar: ++ * ++ * Copyright (C) 2004-2006 Red Hat, Inc., Ingo Molnar ++ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner ++ * ++ * historic credit for proving that Linux spinlocks can be implemented via ++ * RT-aware mutexes goes to many people: The Pmutex project (Dirk Grambow ++ * and others) who prototyped it on 2.4 and did lots of comparative ++ * research and analysis; TimeSys, for proving that you can implement a ++ * fully preemptible kernel via the use of IRQ threading and mutexes; ++ * Bill Huey for persuasively arguing on lkml that the mutex model is the ++ * right one; and to MontaVista, who ported pmutexes to 2.6. ++ * ++ * This code is a from-scratch implementation and is not based on pmutexes, ++ * but the idea of converting spinlocks to mutexes is used here too. ++ * ++ * lock debugging, locking tree, deadlock detection: ++ * ++ * Copyright (C) 2004, LynuxWorks, Inc., Igor Manyilov, Bill Huey ++ * Released under the General Public License (GPL). ++ * ++ * Includes portions of the generic R/W semaphore implementation from: ++ * ++ * Copyright (c) 2001 David Howells (dhowells@redhat.com). ++ * - Derived partially from idea by Andrea Arcangeli ++ * - Derived also from comments by Linus ++ * ++ * Pending ownership of locks and ownership stealing: ++ * ++ * Copyright (C) 2005, Kihon Technologies Inc., Steven Rostedt ++ * ++ * (also by Steven Rostedt) ++ * - Converted single pi_lock to individual task locks. ++ * ++ * By Esben Nielsen: ++ * Doing priority inheritance with help of the scheduler. ++ * ++ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner ++ * - major rework based on Esben Nielsens initial patch ++ * - replaced thread_info references by task_struct refs ++ * - removed task->pending_owner dependency ++ * - BKL drop/reacquire for semaphore style locks to avoid deadlocks ++ * in the scheduler return path as discussed with Steven Rostedt ++ * ++ * Copyright (C) 2006, Kihon Technologies Inc. ++ * Steven Rostedt ++ * - debugged and patched Thomas Gleixner's rework. ++ * - added back the cmpxchg to the rework. ++ * - turned atomic require back on for SMP. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "rtmutex_common.h" ++ ++/* ++ * struct mutex functions ++ */ ++void __mutex_do_init(struct mutex *mutex, const char *name, ++ struct lock_class_key *key) ++{ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ /* ++ * Make sure we are not reinitializing a held lock: ++ */ ++ debug_check_no_locks_freed((void *)mutex, sizeof(*mutex)); ++ lockdep_init_map(&mutex->dep_map, name, key, 0); ++#endif ++ mutex->lock.save_state = 0; ++} ++EXPORT_SYMBOL(__mutex_do_init); ++ ++void __lockfunc _mutex_lock(struct mutex *lock) ++{ ++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); ++ rt_mutex_lock(&lock->lock); ++} ++EXPORT_SYMBOL(_mutex_lock); ++ ++int __lockfunc _mutex_lock_interruptible(struct mutex *lock) ++{ ++ int ret; ++ ++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); ++ ret = rt_mutex_lock_interruptible(&lock->lock); ++ if (ret) ++ mutex_release(&lock->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(_mutex_lock_interruptible); ++ ++int __lockfunc _mutex_lock_killable(struct mutex *lock) ++{ ++ int ret; ++ ++ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); ++ ret = rt_mutex_lock_killable(&lock->lock); ++ if (ret) ++ mutex_release(&lock->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(_mutex_lock_killable); ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass) ++{ ++ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_); ++ rt_mutex_lock(&lock->lock); ++} ++EXPORT_SYMBOL(_mutex_lock_nested); ++ ++void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest) ++{ ++ mutex_acquire_nest(&lock->dep_map, 0, 0, nest, _RET_IP_); ++ rt_mutex_lock(&lock->lock); ++} ++EXPORT_SYMBOL(_mutex_lock_nest_lock); ++ ++int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass) ++{ ++ int ret; ++ ++ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_); ++ ret = rt_mutex_lock_interruptible(&lock->lock); ++ if (ret) ++ mutex_release(&lock->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(_mutex_lock_interruptible_nested); ++ ++int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass) ++{ ++ int ret; ++ ++ mutex_acquire(&lock->dep_map, subclass, 0, _RET_IP_); ++ ret = rt_mutex_lock_killable(&lock->lock); ++ if (ret) ++ mutex_release(&lock->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(_mutex_lock_killable_nested); ++#endif ++ ++int __lockfunc _mutex_trylock(struct mutex *lock) ++{ ++ int ret = rt_mutex_trylock(&lock->lock); ++ ++ if (ret) ++ mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_); ++ ++ return ret; ++} ++EXPORT_SYMBOL(_mutex_trylock); ++ ++void __lockfunc _mutex_unlock(struct mutex *lock) ++{ ++ mutex_release(&lock->dep_map, 1, _RET_IP_); ++ rt_mutex_unlock(&lock->lock); ++} ++EXPORT_SYMBOL(_mutex_unlock); ++ ++/* ++ * rwlock_t functions ++ */ ++int __lockfunc rt_write_trylock(rwlock_t *rwlock) ++{ ++ int ret; ++ ++ migrate_disable(); ++ ret = rt_mutex_trylock(&rwlock->lock); ++ if (ret) ++ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_); ++ else ++ migrate_enable(); ++ ++ return ret; ++} ++EXPORT_SYMBOL(rt_write_trylock); ++ ++int __lockfunc rt_write_trylock_irqsave(rwlock_t *rwlock, unsigned long *flags) ++{ ++ int ret; ++ ++ *flags = 0; ++ ret = rt_write_trylock(rwlock); ++ return ret; ++} ++EXPORT_SYMBOL(rt_write_trylock_irqsave); ++ ++int __lockfunc rt_read_trylock(rwlock_t *rwlock) ++{ ++ struct rt_mutex *lock = &rwlock->lock; ++ int ret = 1; ++ ++ /* ++ * recursive read locks succeed when current owns the lock, ++ * but not when read_depth == 0 which means that the lock is ++ * write locked. ++ */ ++ if (rt_mutex_owner(lock) != current) { ++ migrate_disable(); ++ ret = rt_mutex_trylock(lock); ++ if (ret) ++ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_); ++ else ++ migrate_enable(); ++ ++ } else if (!rwlock->read_depth) { ++ ret = 0; ++ } ++ ++ if (ret) ++ rwlock->read_depth++; ++ ++ return ret; ++} ++EXPORT_SYMBOL(rt_read_trylock); ++ ++void __lockfunc rt_write_lock(rwlock_t *rwlock) ++{ ++ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_); ++ __rt_spin_lock(&rwlock->lock); ++} ++EXPORT_SYMBOL(rt_write_lock); ++ ++void __lockfunc rt_read_lock(rwlock_t *rwlock) ++{ ++ struct rt_mutex *lock = &rwlock->lock; ++ ++ ++ /* ++ * recursive read locks succeed when current owns the lock ++ */ ++ if (rt_mutex_owner(lock) != current) { ++ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_); ++ __rt_spin_lock(lock); ++ } ++ rwlock->read_depth++; ++} ++ ++EXPORT_SYMBOL(rt_read_lock); ++ ++void __lockfunc rt_write_unlock(rwlock_t *rwlock) ++{ ++ /* NOTE: we always pass in '1' for nested, for simplicity */ ++ rwlock_release(&rwlock->dep_map, 1, _RET_IP_); ++ __rt_spin_unlock(&rwlock->lock); ++ migrate_enable(); ++} ++EXPORT_SYMBOL(rt_write_unlock); ++ ++void __lockfunc rt_read_unlock(rwlock_t *rwlock) ++{ ++ /* Release the lock only when read_depth is down to 0 */ ++ if (--rwlock->read_depth == 0) { ++ rwlock_release(&rwlock->dep_map, 1, _RET_IP_); ++ __rt_spin_unlock(&rwlock->lock); ++ migrate_enable(); ++ } ++} ++EXPORT_SYMBOL(rt_read_unlock); ++ ++unsigned long __lockfunc rt_write_lock_irqsave(rwlock_t *rwlock) ++{ ++ rt_write_lock(rwlock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(rt_write_lock_irqsave); ++ ++unsigned long __lockfunc rt_read_lock_irqsave(rwlock_t *rwlock) ++{ ++ rt_read_lock(rwlock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(rt_read_lock_irqsave); ++ ++void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key) ++{ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ /* ++ * Make sure we are not reinitializing a held lock: ++ */ ++ debug_check_no_locks_freed((void *)rwlock, sizeof(*rwlock)); ++ lockdep_init_map(&rwlock->dep_map, name, key, 0); ++#endif ++ rwlock->lock.save_state = 1; ++ rwlock->read_depth = 0; ++} ++EXPORT_SYMBOL(__rt_rwlock_init); ++ ++/* ++ * rw_semaphores ++ */ ++ ++void rt_up_write(struct rw_semaphore *rwsem) ++{ ++ rwsem_release(&rwsem->dep_map, 1, _RET_IP_); ++ rt_mutex_unlock(&rwsem->lock); ++} ++EXPORT_SYMBOL(rt_up_write); ++ ++void __rt_up_read(struct rw_semaphore *rwsem) ++{ ++ if (--rwsem->read_depth == 0) ++ rt_mutex_unlock(&rwsem->lock); ++} ++ ++void rt_up_read(struct rw_semaphore *rwsem) ++{ ++ rwsem_release(&rwsem->dep_map, 1, _RET_IP_); ++ __rt_up_read(rwsem); ++} ++EXPORT_SYMBOL(rt_up_read); ++ ++/* ++ * downgrade a write lock into a read lock ++ * - just wake up any readers at the front of the queue ++ */ ++void rt_downgrade_write(struct rw_semaphore *rwsem) ++{ ++ BUG_ON(rt_mutex_owner(&rwsem->lock) != current); ++ rwsem->read_depth = 1; ++} ++EXPORT_SYMBOL(rt_downgrade_write); ++ ++int rt_down_write_trylock(struct rw_semaphore *rwsem) ++{ ++ int ret = rt_mutex_trylock(&rwsem->lock); ++ ++ if (ret) ++ rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(rt_down_write_trylock); ++ ++void rt_down_write(struct rw_semaphore *rwsem) ++{ ++ rwsem_acquire(&rwsem->dep_map, 0, 0, _RET_IP_); ++ rt_mutex_lock(&rwsem->lock); ++} ++EXPORT_SYMBOL(rt_down_write); ++ ++int rt_down_write_killable(struct rw_semaphore *rwsem) ++{ ++ int ret; ++ ++ rwsem_acquire(&rwsem->dep_map, 0, 0, _RET_IP_); ++ ret = rt_mutex_lock_killable(&rwsem->lock); ++ if (ret) ++ rwsem_release(&rwsem->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(rt_down_write_killable); ++ ++int rt_down_write_killable_nested(struct rw_semaphore *rwsem, int subclass) ++{ ++ int ret; ++ ++ rwsem_acquire(&rwsem->dep_map, subclass, 0, _RET_IP_); ++ ret = rt_mutex_lock_killable(&rwsem->lock); ++ if (ret) ++ rwsem_release(&rwsem->dep_map, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(rt_down_write_killable_nested); ++ ++void rt_down_write_nested(struct rw_semaphore *rwsem, int subclass) ++{ ++ rwsem_acquire(&rwsem->dep_map, subclass, 0, _RET_IP_); ++ rt_mutex_lock(&rwsem->lock); ++} ++EXPORT_SYMBOL(rt_down_write_nested); ++ ++void rt_down_write_nested_lock(struct rw_semaphore *rwsem, ++ struct lockdep_map *nest) ++{ ++ rwsem_acquire_nest(&rwsem->dep_map, 0, 0, nest, _RET_IP_); ++ rt_mutex_lock(&rwsem->lock); ++} ++EXPORT_SYMBOL(rt_down_write_nested_lock); ++ ++int rt__down_read_trylock(struct rw_semaphore *rwsem) ++{ ++ struct rt_mutex *lock = &rwsem->lock; ++ int ret = 1; ++ ++ /* ++ * recursive read locks succeed when current owns the rwsem, ++ * but not when read_depth == 0 which means that the rwsem is ++ * write locked. ++ */ ++ if (rt_mutex_owner(lock) != current) ++ ret = rt_mutex_trylock(&rwsem->lock); ++ else if (!rwsem->read_depth) ++ ret = 0; ++ ++ if (ret) ++ rwsem->read_depth++; ++ return ret; ++ ++} ++ ++int rt_down_read_trylock(struct rw_semaphore *rwsem) ++{ ++ int ret; ++ ++ ret = rt__down_read_trylock(rwsem); ++ if (ret) ++ rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_); ++ ++ return ret; ++} ++EXPORT_SYMBOL(rt_down_read_trylock); ++ ++void rt__down_read(struct rw_semaphore *rwsem) ++{ ++ struct rt_mutex *lock = &rwsem->lock; ++ ++ if (rt_mutex_owner(lock) != current) ++ rt_mutex_lock(&rwsem->lock); ++ rwsem->read_depth++; ++} ++EXPORT_SYMBOL(rt__down_read); ++ ++static void __rt_down_read(struct rw_semaphore *rwsem, int subclass) ++{ ++ rwsem_acquire_read(&rwsem->dep_map, subclass, 0, _RET_IP_); ++ rt__down_read(rwsem); ++} ++ ++void rt_down_read(struct rw_semaphore *rwsem) ++{ ++ __rt_down_read(rwsem, 0); ++} ++EXPORT_SYMBOL(rt_down_read); ++ ++void rt_down_read_nested(struct rw_semaphore *rwsem, int subclass) ++{ ++ __rt_down_read(rwsem, subclass); ++} ++EXPORT_SYMBOL(rt_down_read_nested); ++ ++void __rt_rwsem_init(struct rw_semaphore *rwsem, const char *name, ++ struct lock_class_key *key) ++{ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ /* ++ * Make sure we are not reinitializing a held lock: ++ */ ++ debug_check_no_locks_freed((void *)rwsem, sizeof(*rwsem)); ++ lockdep_init_map(&rwsem->dep_map, name, key, 0); ++#endif ++ rwsem->read_depth = 0; ++ rwsem->lock.save_state = 0; ++} ++EXPORT_SYMBOL(__rt_rwsem_init); ++ ++/** ++ * atomic_dec_and_mutex_lock - return holding mutex if we dec to 0 ++ * @cnt: the atomic which we are to dec ++ * @lock: the mutex to return holding if we dec to 0 ++ * ++ * return true and hold lock if we dec to 0, return false otherwise ++ */ ++int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock) ++{ ++ /* dec if we can't possibly hit 0 */ ++ if (atomic_add_unless(cnt, -1, 1)) ++ return 0; ++ /* we might hit 0, so take the lock */ ++ mutex_lock(lock); ++ if (!atomic_dec_and_test(cnt)) { ++ /* when we actually did the dec, we didn't hit 0 */ ++ mutex_unlock(lock); ++ return 0; ++ } ++ /* we hit 0, and we hold the lock */ ++ return 1; ++} ++EXPORT_SYMBOL(atomic_dec_and_mutex_lock); +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -7,6 +7,11 @@ + * Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner + * Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt + * Copyright (C) 2006 Esben Nielsen ++ * Adaptive Spinlocks: ++ * Copyright (C) 2008 Novell, Inc., Gregory Haskins, Sven Dietrich, ++ * and Peter Morreale, ++ * Adaptive Spinlocks simplification: ++ * Copyright (C) 2008 Red Hat, Inc., Steven Rostedt + * + * See Documentation/locking/rt-mutex-design.txt for details. + */ +@@ -420,6 +425,14 @@ static bool rt_mutex_cond_detect_deadloc + return debug_rt_mutex_detect_deadlock(waiter, chwalk); + } + ++static void rt_mutex_wake_waiter(struct rt_mutex_waiter *waiter) ++{ ++ if (waiter->savestate) ++ wake_up_lock_sleeper(waiter->task); ++ else ++ wake_up_process(waiter->task); ++} ++ + /* + * Max number of times we'll walk the boosting chain: + */ +@@ -726,13 +739,16 @@ static int rt_mutex_adjust_prio_chain(st + * follow here. This is the end of the chain we are walking. + */ + if (!rt_mutex_owner(lock)) { ++ struct rt_mutex_waiter *lock_top_waiter; ++ + /* + * If the requeue [7] above changed the top waiter, + * then we need to wake the new top waiter up to try + * to get the lock. + */ +- if (prerequeue_top_waiter != rt_mutex_top_waiter(lock)) +- wake_up_process(rt_mutex_top_waiter(lock)->task); ++ lock_top_waiter = rt_mutex_top_waiter(lock); ++ if (prerequeue_top_waiter != lock_top_waiter) ++ rt_mutex_wake_waiter(lock_top_waiter); + raw_spin_unlock_irq(&lock->wait_lock); + return 0; + } +@@ -825,6 +841,25 @@ static int rt_mutex_adjust_prio_chain(st + return ret; + } + ++ ++#define STEAL_NORMAL 0 ++#define STEAL_LATERAL 1 ++ ++/* ++ * Note that RT tasks are excluded from lateral-steals to prevent the ++ * introduction of an unbounded latency ++ */ ++static inline int lock_is_stealable(struct task_struct *task, ++ struct task_struct *pendowner, int mode) ++{ ++ if (mode == STEAL_NORMAL || rt_task(task)) { ++ if (task->prio >= pendowner->prio) ++ return 0; ++ } else if (task->prio > pendowner->prio) ++ return 0; ++ return 1; ++} ++ + /* + * Try to take an rt-mutex + * +@@ -835,8 +870,9 @@ static int rt_mutex_adjust_prio_chain(st + * @waiter: The waiter that is queued to the lock's wait tree if the + * callsite called task_blocked_on_lock(), otherwise NULL + */ +-static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task, +- struct rt_mutex_waiter *waiter) ++static int __try_to_take_rt_mutex(struct rt_mutex *lock, ++ struct task_struct *task, ++ struct rt_mutex_waiter *waiter, int mode) + { + /* + * Before testing whether we can acquire @lock, we set the +@@ -873,8 +909,10 @@ static int try_to_take_rt_mutex(struct r + * If waiter is not the highest priority waiter of + * @lock, give up. + */ +- if (waiter != rt_mutex_top_waiter(lock)) ++ if (waiter != rt_mutex_top_waiter(lock)) { ++ /* XXX lock_is_stealable() ? */ + return 0; ++ } + + /* + * We can acquire the lock. Remove the waiter from the +@@ -892,14 +930,10 @@ static int try_to_take_rt_mutex(struct r + * not need to be dequeued. + */ + if (rt_mutex_has_waiters(lock)) { +- /* +- * If @task->prio is greater than or equal to +- * the top waiter priority (kernel view), +- * @task lost. +- */ +- if (task->prio >= rt_mutex_top_waiter(lock)->prio) +- return 0; ++ struct task_struct *pown = rt_mutex_top_waiter(lock)->task; + ++ if (task != pown && !lock_is_stealable(task, pown, mode)) ++ return 0; + /* + * The current top waiter stays enqueued. We + * don't have to change anything in the lock +@@ -948,6 +982,352 @@ static int try_to_take_rt_mutex(struct r + return 1; + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++/* ++ * preemptible spin_lock functions: ++ */ ++static inline void rt_spin_lock_fastlock(struct rt_mutex *lock, ++ void (*slowfn)(struct rt_mutex *lock)) ++{ ++ might_sleep_no_state_check(); ++ ++ if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) ++ rt_mutex_deadlock_account_lock(lock, current); ++ else ++ slowfn(lock); ++} ++ ++static inline void rt_spin_lock_fastunlock(struct rt_mutex *lock, ++ void (*slowfn)(struct rt_mutex *lock)) ++{ ++ if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) ++ rt_mutex_deadlock_account_unlock(current); ++ else ++ slowfn(lock); ++} ++#ifdef CONFIG_SMP ++/* ++ * Note that owner is a speculative pointer and dereferencing relies ++ * on rcu_read_lock() and the check against the lock owner. ++ */ ++static int adaptive_wait(struct rt_mutex *lock, ++ struct task_struct *owner) ++{ ++ int res = 0; ++ ++ rcu_read_lock(); ++ for (;;) { ++ if (owner != rt_mutex_owner(lock)) ++ break; ++ /* ++ * Ensure that owner->on_cpu is dereferenced _after_ ++ * checking the above to be valid. ++ */ ++ barrier(); ++ if (!owner->on_cpu) { ++ res = 1; ++ break; ++ } ++ cpu_relax(); ++ } ++ rcu_read_unlock(); ++ return res; ++} ++#else ++static int adaptive_wait(struct rt_mutex *lock, ++ struct task_struct *orig_owner) ++{ ++ return 1; ++} ++#endif ++ ++static int task_blocks_on_rt_mutex(struct rt_mutex *lock, ++ struct rt_mutex_waiter *waiter, ++ struct task_struct *task, ++ enum rtmutex_chainwalk chwalk); ++/* ++ * Slow path lock function spin_lock style: this variant is very ++ * careful not to miss any non-lock wakeups. ++ * ++ * We store the current state under p->pi_lock in p->saved_state and ++ * the try_to_wake_up() code handles this accordingly. ++ */ ++static void noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock) ++{ ++ struct task_struct *lock_owner, *self = current; ++ struct rt_mutex_waiter waiter, *top_waiter; ++ unsigned long flags; ++ int ret; ++ ++ rt_mutex_init_waiter(&waiter, true); ++ ++ raw_spin_lock_irqsave(&lock->wait_lock, flags); ++ ++ if (__try_to_take_rt_mutex(lock, self, NULL, STEAL_LATERAL)) { ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ return; ++ } ++ ++ BUG_ON(rt_mutex_owner(lock) == self); ++ ++ /* ++ * We save whatever state the task is in and we'll restore it ++ * after acquiring the lock taking real wakeups into account ++ * as well. We are serialized via pi_lock against wakeups. See ++ * try_to_wake_up(). ++ */ ++ raw_spin_lock(&self->pi_lock); ++ self->saved_state = self->state; ++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE); ++ raw_spin_unlock(&self->pi_lock); ++ ++ ret = task_blocks_on_rt_mutex(lock, &waiter, self, RT_MUTEX_MIN_CHAINWALK); ++ BUG_ON(ret); ++ ++ for (;;) { ++ /* Try to acquire the lock again. */ ++ if (__try_to_take_rt_mutex(lock, self, &waiter, STEAL_LATERAL)) ++ break; ++ ++ top_waiter = rt_mutex_top_waiter(lock); ++ lock_owner = rt_mutex_owner(lock); ++ ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ ++ debug_rt_mutex_print_deadlock(&waiter); ++ ++ if (top_waiter != &waiter || adaptive_wait(lock, lock_owner)) ++ schedule(); ++ ++ raw_spin_lock_irqsave(&lock->wait_lock, flags); ++ ++ raw_spin_lock(&self->pi_lock); ++ __set_current_state_no_track(TASK_UNINTERRUPTIBLE); ++ raw_spin_unlock(&self->pi_lock); ++ } ++ ++ /* ++ * Restore the task state to current->saved_state. We set it ++ * to the original state above and the try_to_wake_up() code ++ * has possibly updated it when a real (non-rtmutex) wakeup ++ * happened while we were blocked. Clear saved_state so ++ * try_to_wakeup() does not get confused. ++ */ ++ raw_spin_lock(&self->pi_lock); ++ __set_current_state_no_track(self->saved_state); ++ self->saved_state = TASK_RUNNING; ++ raw_spin_unlock(&self->pi_lock); ++ ++ /* ++ * try_to_take_rt_mutex() sets the waiter bit ++ * unconditionally. We might have to fix that up: ++ */ ++ fixup_rt_mutex_waiters(lock); ++ ++ BUG_ON(rt_mutex_has_waiters(lock) && &waiter == rt_mutex_top_waiter(lock)); ++ BUG_ON(!RB_EMPTY_NODE(&waiter.tree_entry)); ++ ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ ++ debug_rt_mutex_free_waiter(&waiter); ++} ++ ++static void mark_wakeup_next_waiter(struct wake_q_head *wake_q, ++ struct wake_q_head *wake_sleeper_q, ++ struct rt_mutex *lock); ++/* ++ * Slow path to release a rt_mutex spin_lock style ++ */ ++static void noinline __sched rt_spin_lock_slowunlock(struct rt_mutex *lock) ++{ ++ unsigned long flags; ++ WAKE_Q(wake_q); ++ WAKE_Q(wake_sleeper_q); ++ ++ raw_spin_lock_irqsave(&lock->wait_lock, flags); ++ ++ debug_rt_mutex_unlock(lock); ++ ++ rt_mutex_deadlock_account_unlock(current); ++ ++ if (!rt_mutex_has_waiters(lock)) { ++ lock->owner = NULL; ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ return; ++ } ++ ++ mark_wakeup_next_waiter(&wake_q, &wake_sleeper_q, lock); ++ ++ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); ++ wake_up_q(&wake_q); ++ wake_up_q_sleeper(&wake_sleeper_q); ++ ++ /* Undo pi boosting.when necessary */ ++ rt_mutex_adjust_prio(current); ++} ++ ++void __lockfunc rt_spin_lock__no_mg(spinlock_t *lock) ++{ ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); ++ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); ++} ++EXPORT_SYMBOL(rt_spin_lock__no_mg); ++ ++void __lockfunc rt_spin_lock(spinlock_t *lock) ++{ ++ migrate_disable(); ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); ++ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); ++} ++EXPORT_SYMBOL(rt_spin_lock); ++ ++void __lockfunc __rt_spin_lock(struct rt_mutex *lock) ++{ ++ migrate_disable(); ++ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock); ++} ++EXPORT_SYMBOL(__rt_spin_lock); ++ ++void __lockfunc __rt_spin_lock__no_mg(struct rt_mutex *lock) ++{ ++ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock); ++} ++EXPORT_SYMBOL(__rt_spin_lock__no_mg); ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass) ++{ ++ migrate_disable(); ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); ++ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); ++} ++EXPORT_SYMBOL(rt_spin_lock_nested); ++#endif ++ ++void __lockfunc rt_spin_unlock__no_mg(spinlock_t *lock) ++{ ++ /* NOTE: we always pass in '1' for nested, for simplicity */ ++ spin_release(&lock->dep_map, 1, _RET_IP_); ++ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock); ++} ++EXPORT_SYMBOL(rt_spin_unlock__no_mg); ++ ++void __lockfunc rt_spin_unlock(spinlock_t *lock) ++{ ++ /* NOTE: we always pass in '1' for nested, for simplicity */ ++ spin_release(&lock->dep_map, 1, _RET_IP_); ++ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock); ++ migrate_enable(); ++} ++EXPORT_SYMBOL(rt_spin_unlock); ++ ++void __lockfunc __rt_spin_unlock(struct rt_mutex *lock) ++{ ++ rt_spin_lock_fastunlock(lock, rt_spin_lock_slowunlock); ++} ++EXPORT_SYMBOL(__rt_spin_unlock); ++ ++/* ++ * Wait for the lock to get unlocked: instead of polling for an unlock ++ * (like raw spinlocks do), we lock and unlock, to force the kernel to ++ * schedule if there's contention: ++ */ ++void __lockfunc rt_spin_unlock_wait(spinlock_t *lock) ++{ ++ spin_lock(lock); ++ spin_unlock(lock); ++} ++EXPORT_SYMBOL(rt_spin_unlock_wait); ++ ++int __lockfunc rt_spin_trylock__no_mg(spinlock_t *lock) ++{ ++ int ret; ++ ++ ret = rt_mutex_trylock(&lock->lock); ++ if (ret) ++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); ++ return ret; ++} ++EXPORT_SYMBOL(rt_spin_trylock__no_mg); ++ ++int __lockfunc rt_spin_trylock(spinlock_t *lock) ++{ ++ int ret; ++ ++ migrate_disable(); ++ ret = rt_mutex_trylock(&lock->lock); ++ if (ret) ++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); ++ else ++ migrate_enable(); ++ return ret; ++} ++EXPORT_SYMBOL(rt_spin_trylock); ++ ++int __lockfunc rt_spin_trylock_bh(spinlock_t *lock) ++{ ++ int ret; ++ ++ local_bh_disable(); ++ ret = rt_mutex_trylock(&lock->lock); ++ if (ret) { ++ migrate_disable(); ++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); ++ } else ++ local_bh_enable(); ++ return ret; ++} ++EXPORT_SYMBOL(rt_spin_trylock_bh); ++ ++int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags) ++{ ++ int ret; ++ ++ *flags = 0; ++ ret = rt_mutex_trylock(&lock->lock); ++ if (ret) { ++ migrate_disable(); ++ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); ++ } ++ return ret; ++} ++EXPORT_SYMBOL(rt_spin_trylock_irqsave); ++ ++int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock) ++{ ++ /* Subtract 1 from counter unless that drops it to 0 (ie. it was 1) */ ++ if (atomic_add_unless(atomic, -1, 1)) ++ return 0; ++ rt_spin_lock(lock); ++ if (atomic_dec_and_test(atomic)) ++ return 1; ++ rt_spin_unlock(lock); ++ return 0; ++} ++EXPORT_SYMBOL(atomic_dec_and_spin_lock); ++ ++ void ++__rt_spin_lock_init(spinlock_t *lock, char *name, struct lock_class_key *key) ++{ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ /* ++ * Make sure we are not reinitializing a held lock: ++ */ ++ debug_check_no_locks_freed((void *)lock, sizeof(*lock)); ++ lockdep_init_map(&lock->dep_map, name, key, 0); ++#endif ++} ++EXPORT_SYMBOL(__rt_spin_lock_init); ++ ++#endif /* PREEMPT_RT_FULL */ ++ ++static inline int ++try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task, ++ struct rt_mutex_waiter *waiter) ++{ ++ return __try_to_take_rt_mutex(lock, task, waiter, STEAL_NORMAL); ++} ++ + /* + * Task blocks on lock. + * +@@ -1060,6 +1440,7 @@ static int task_blocks_on_rt_mutex(struc + * Called with lock->wait_lock held and interrupts disabled. + */ + static void mark_wakeup_next_waiter(struct wake_q_head *wake_q, ++ struct wake_q_head *wake_sleeper_q, + struct rt_mutex *lock) + { + struct rt_mutex_waiter *waiter; +@@ -1088,7 +1469,10 @@ static void mark_wakeup_next_waiter(stru + + raw_spin_unlock(¤t->pi_lock); + +- wake_q_add(wake_q, waiter->task); ++ if (waiter->savestate) ++ wake_q_add(wake_sleeper_q, waiter->task); ++ else ++ wake_q_add(wake_q, waiter->task); + } + + /* +@@ -1169,11 +1553,11 @@ void rt_mutex_adjust_pi(struct task_stru + return; + } + next_lock = waiter->lock; +- raw_spin_unlock_irqrestore(&task->pi_lock, flags); + + /* gets dropped in rt_mutex_adjust_prio_chain()! */ + get_task_struct(task); + ++ raw_spin_unlock_irqrestore(&task->pi_lock, flags); + rt_mutex_adjust_prio_chain(task, RT_MUTEX_MIN_CHAINWALK, NULL, + next_lock, NULL, task); + } +@@ -1260,9 +1644,7 @@ rt_mutex_slowlock(struct rt_mutex *lock, + unsigned long flags; + int ret = 0; + +- debug_rt_mutex_init_waiter(&waiter); +- RB_CLEAR_NODE(&waiter.pi_tree_entry); +- RB_CLEAR_NODE(&waiter.tree_entry); ++ rt_mutex_init_waiter(&waiter, false); + + /* + * Technically we could use raw_spin_[un]lock_irq() here, but this can +@@ -1356,7 +1738,8 @@ static inline int rt_mutex_slowtrylock(s + * Return whether the current task needs to undo a potential priority boosting. + */ + static bool __sched rt_mutex_slowunlock(struct rt_mutex *lock, +- struct wake_q_head *wake_q) ++ struct wake_q_head *wake_q, ++ struct wake_q_head *wake_sleeper_q) + { + unsigned long flags; + +@@ -1412,7 +1795,7 @@ static bool __sched rt_mutex_slowunlock( + * + * Queue the next waiter for wakeup once we release the wait_lock. + */ +- mark_wakeup_next_waiter(wake_q, lock); ++ mark_wakeup_next_waiter(wake_q, wake_sleeper_q, lock); + + raw_spin_unlock_irqrestore(&lock->wait_lock, flags); + +@@ -1469,17 +1852,20 @@ rt_mutex_fasttrylock(struct rt_mutex *lo + static inline void + rt_mutex_fastunlock(struct rt_mutex *lock, + bool (*slowfn)(struct rt_mutex *lock, +- struct wake_q_head *wqh)) ++ struct wake_q_head *wqh, ++ struct wake_q_head *wq_sleeper)) + { + WAKE_Q(wake_q); ++ WAKE_Q(wake_sleeper_q); + + if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) { + rt_mutex_deadlock_account_unlock(current); + + } else { +- bool deboost = slowfn(lock, &wake_q); ++ bool deboost = slowfn(lock, &wake_q, &wake_sleeper_q); + + wake_up_q(&wake_q); ++ wake_up_q_sleeper(&wake_sleeper_q); + + /* Undo pi boosting if necessary: */ + if (deboost) +@@ -1616,13 +2002,14 @@ EXPORT_SYMBOL_GPL(rt_mutex_unlock); + * required or not. + */ + bool __sched rt_mutex_futex_unlock(struct rt_mutex *lock, +- struct wake_q_head *wqh) ++ struct wake_q_head *wqh, ++ struct wake_q_head *wq_sleeper) + { + if (likely(rt_mutex_cmpxchg_release(lock, current, NULL))) { + rt_mutex_deadlock_account_unlock(current); + return false; + } +- return rt_mutex_slowunlock(lock, wqh); ++ return rt_mutex_slowunlock(lock, wqh, wq_sleeper); + } + + /** +@@ -1655,13 +2042,12 @@ EXPORT_SYMBOL_GPL(rt_mutex_destroy); + void __rt_mutex_init(struct rt_mutex *lock, const char *name) + { + lock->owner = NULL; +- raw_spin_lock_init(&lock->wait_lock); + lock->waiters = RB_ROOT; + lock->waiters_leftmost = NULL; + + debug_rt_mutex_init(lock, name); + } +-EXPORT_SYMBOL_GPL(__rt_mutex_init); ++EXPORT_SYMBOL(__rt_mutex_init); + + /** + * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a +@@ -1676,7 +2062,7 @@ EXPORT_SYMBOL_GPL(__rt_mutex_init); + void rt_mutex_init_proxy_locked(struct rt_mutex *lock, + struct task_struct *proxy_owner) + { +- __rt_mutex_init(lock, NULL); ++ rt_mutex_init(lock); + debug_rt_mutex_proxy_lock(lock, proxy_owner); + rt_mutex_set_owner(lock, proxy_owner); + rt_mutex_deadlock_account_lock(lock, proxy_owner); +@@ -1838,3 +2224,25 @@ int rt_mutex_finish_proxy_lock(struct rt + + return ret; + } ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++struct ww_mutex { ++}; ++struct ww_acquire_ctx { ++}; ++int __ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) ++{ ++ BUG(); ++} ++EXPORT_SYMBOL_GPL(__ww_mutex_lock); ++int __ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) ++{ ++ BUG(); ++} ++EXPORT_SYMBOL_GPL(__ww_mutex_lock_interruptible); ++void __sched ww_mutex_unlock(struct ww_mutex *lock) ++{ ++ BUG(); ++} ++EXPORT_SYMBOL_GPL(ww_mutex_unlock); ++#endif +--- a/kernel/locking/rtmutex_common.h ++++ b/kernel/locking/rtmutex_common.h +@@ -27,6 +27,7 @@ struct rt_mutex_waiter { + struct rb_node pi_tree_entry; + struct task_struct *task; + struct rt_mutex *lock; ++ bool savestate; + #ifdef CONFIG_DEBUG_RT_MUTEXES + unsigned long ip; + struct pid *deadlock_task_pid; +@@ -114,7 +115,8 @@ extern int rt_mutex_finish_proxy_lock(st + struct rt_mutex_waiter *waiter); + extern int rt_mutex_timed_futex_lock(struct rt_mutex *l, struct hrtimer_sleeper *to); + extern bool rt_mutex_futex_unlock(struct rt_mutex *lock, +- struct wake_q_head *wqh); ++ struct wake_q_head *wqh, ++ struct wake_q_head *wq_sleeper); + extern void rt_mutex_adjust_prio(struct task_struct *task); + + #ifdef CONFIG_DEBUG_RT_MUTEXES +@@ -123,4 +125,14 @@ extern void rt_mutex_adjust_prio(struct + # include "rtmutex.h" + #endif + ++static inline void ++rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savestate) ++{ ++ debug_rt_mutex_init_waiter(waiter); ++ waiter->task = NULL; ++ waiter->savestate = savestate; ++ RB_CLEAR_NODE(&waiter->pi_tree_entry); ++ RB_CLEAR_NODE(&waiter->tree_entry); ++} ++ + #endif +--- a/kernel/locking/spinlock.c ++++ b/kernel/locking/spinlock.c +@@ -124,8 +124,11 @@ void __lockfunc __raw_##op##_lock_bh(loc + * __[spin|read|write]_lock_bh() + */ + BUILD_LOCK_OPS(spin, raw_spinlock); ++ ++#ifndef CONFIG_PREEMPT_RT_FULL + BUILD_LOCK_OPS(read, rwlock); + BUILD_LOCK_OPS(write, rwlock); ++#endif + + #endif + +@@ -209,6 +212,8 @@ void __lockfunc _raw_spin_unlock_bh(raw_ + EXPORT_SYMBOL(_raw_spin_unlock_bh); + #endif + ++#ifndef CONFIG_PREEMPT_RT_FULL ++ + #ifndef CONFIG_INLINE_READ_TRYLOCK + int __lockfunc _raw_read_trylock(rwlock_t *lock) + { +@@ -353,6 +358,8 @@ void __lockfunc _raw_write_unlock_bh(rwl + EXPORT_SYMBOL(_raw_write_unlock_bh); + #endif + ++#endif /* !PREEMPT_RT_FULL */ ++ + #ifdef CONFIG_DEBUG_LOCK_ALLOC + + void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) +--- a/kernel/locking/spinlock_debug.c ++++ b/kernel/locking/spinlock_debug.c +@@ -31,6 +31,7 @@ void __raw_spin_lock_init(raw_spinlock_t + + EXPORT_SYMBOL(__raw_spin_lock_init); + ++#ifndef CONFIG_PREEMPT_RT_FULL + void __rwlock_init(rwlock_t *lock, const char *name, + struct lock_class_key *key) + { +@@ -48,6 +49,7 @@ void __rwlock_init(rwlock_t *lock, const + } + + EXPORT_SYMBOL(__rwlock_init); ++#endif + + static void spin_dump(raw_spinlock_t *lock, const char *msg) + { +@@ -159,6 +161,7 @@ void do_raw_spin_unlock(raw_spinlock_t * + arch_spin_unlock(&lock->raw_lock); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + static void rwlock_bug(rwlock_t *lock, const char *msg) + { + if (!debug_locks_off()) +@@ -300,3 +303,5 @@ void do_raw_write_unlock(rwlock_t *lock) + debug_write_unlock(lock); + arch_write_unlock(&lock->raw_lock); + } ++ ++#endif +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -454,7 +454,7 @@ void wake_q_add(struct wake_q_head *head + head->lastp = &node->next; + } + +-void wake_up_q(struct wake_q_head *head) ++void __wake_up_q(struct wake_q_head *head, bool sleeper) + { + struct wake_q_node *node = head->first; + +@@ -471,7 +471,10 @@ void wake_up_q(struct wake_q_head *head) + * wake_up_process() implies a wmb() to pair with the queueing + * in wake_q_add() so as not to miss wakeups. + */ +- wake_up_process(task); ++ if (sleeper) ++ wake_up_lock_sleeper(task); ++ else ++ wake_up_process(task); + put_task_struct(task); + } + } diff --git a/patches/features/all/rt/rt-introduce-cpu-chill.patch b/patches/features/all/rt/rt-introduce-cpu-chill.patch new file mode 100644 index 00000000000..5cc05146d0b --- /dev/null +++ b/patches/features/all/rt/rt-introduce-cpu-chill.patch @@ -0,0 +1,129 @@ +Subject: rt: Introduce cpu_chill() +From: Thomas Gleixner +Date: Wed, 07 Mar 2012 20:51:03 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Retry loops on RT might loop forever when the modifying side was +preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() +defaults to cpu_relax() for non RT. On RT it puts the looping task to +sleep for a tick so the preempted task can make progress. + +Steven Rostedt changed it to use a hrtimer instead of msleep(): +| +|Ulrich Obergfell pointed out that cpu_chill() calls msleep() which is woken +|up by the ksoftirqd running the TIMER softirq. But as the cpu_chill() is +|called from softirq context, it may block the ksoftirqd() from running, in +|which case, it may never wake up the msleep() causing the deadlock. +| +|I checked the vmcore, and irq/74-qla2xxx is stuck in the msleep() call, +|running on CPU 8. The one ksoftirqd that is stuck, happens to be the one that +|runs on CPU 8, and it is blocked on a lock held by irq/74-qla2xxx. As that +|ksoftirqd is the one that will wake up irq/74-qla2xxx, and it happens to be +|blocked on a lock that irq/74-qla2xxx holds, we have our deadlock. +| +|The solution is not to convert the cpu_chill() back to a cpu_relax() as that +|will re-create a possible live lock that the cpu_chill() fixed earlier, and may +|also leave this bug open on other softirqs. The fix is to remove the +|dependency on ksoftirqd from cpu_chill(). That is, instead of calling +|msleep() that requires ksoftirqd to wake it up, use the +|hrtimer_nanosleep() code that does the wakeup from hard irq context. +| +||Looks to be the lock of the block softirq. I don't have the core dump +||anymore, but from what I could tell the ksoftirqd was blocked on the +||block softirq lock, where the block softirq handler did a msleep +||(called by the qla2xxx interrupt handler). +|| +||Looking at trigger_softirq() in block/blk-softirq.c, it can do a +||smp_callfunction() to another cpu to run the block softirq. If that +||happens to be the cpu where the qla2xx irq handler is doing the block +||softirq and is in a middle of a msleep(), I believe the ksoftirqd will +||try to run the softirq. If it does that, then BOOM, it's deadlocked +||because the ksoftirqd will never run the timer softirq either. +| +||I should have also stated that it was only one lock that was involved. +||But the lock owner was doing a msleep() that requires a wakeup by +||ksoftirqd to continue. If ksoftirqd happens to be blocked on a lock +||held by the msleep() caller, then you have your deadlock. +|| +||It's best not to have any softirqs going to sleep requiring another +||softirq to wake it up. Note, if we ever require a timer softirq to do a +||cpu_chill() it will most definitely hit this deadlock. + ++ bigeasy: add PF_NOFREEZE: +| [....] Waiting for /dev to be fully populated... +| ===================================== +| [ BUG: udevd/229 still has locks held! ] +| 3.12.11-rt17 #23 Not tainted +| ------------------------------------- +| 1 lock held by udevd/229: +| #0: (&type->i_mutex_dir_key#2){+.+.+.}, at: lookup_slow+0x28/0x98 +| +| stack backtrace: +| CPU: 0 PID: 229 Comm: udevd Not tainted 3.12.11-rt17 #23 +| (unwind_backtrace+0x0/0xf8) from (show_stack+0x10/0x14) +| (show_stack+0x10/0x14) from (dump_stack+0x74/0xbc) +| (dump_stack+0x74/0xbc) from (do_nanosleep+0x120/0x160) +| (do_nanosleep+0x120/0x160) from (hrtimer_nanosleep+0x90/0x110) +| (hrtimer_nanosleep+0x90/0x110) from (cpu_chill+0x30/0x38) +| (cpu_chill+0x30/0x38) from (dentry_kill+0x158/0x1ec) +| (dentry_kill+0x158/0x1ec) from (dput+0x74/0x15c) +| (dput+0x74/0x15c) from (lookup_real+0x4c/0x50) +| (lookup_real+0x4c/0x50) from (__lookup_hash+0x34/0x44) +| (__lookup_hash+0x34/0x44) from (lookup_slow+0x38/0x98) +| (lookup_slow+0x38/0x98) from (path_lookupat+0x208/0x7fc) +| (path_lookupat+0x208/0x7fc) from (filename_lookup+0x20/0x60) +| (filename_lookup+0x20/0x60) from (user_path_at_empty+0x50/0x7c) +| (user_path_at_empty+0x50/0x7c) from (user_path_at+0x14/0x1c) +| (user_path_at+0x14/0x1c) from (vfs_fstatat+0x48/0x94) +| (vfs_fstatat+0x48/0x94) from (SyS_stat64+0x14/0x30) +| (SyS_stat64+0x14/0x30) from (ret_fast_syscall+0x0/0x48) + +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/delay.h | 6 ++++++ + kernel/time/hrtimer.c | 19 +++++++++++++++++++ + 2 files changed, 25 insertions(+) + +--- a/include/linux/delay.h ++++ b/include/linux/delay.h +@@ -52,4 +52,10 @@ static inline void ssleep(unsigned int s + msleep(seconds * 1000); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++extern void cpu_chill(void); ++#else ++# define cpu_chill() cpu_relax() ++#endif ++ + #endif /* defined(_LINUX_DELAY_H) */ +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -1768,6 +1768,25 @@ SYSCALL_DEFINE2(nanosleep, struct timesp + return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++/* ++ * Sleep for 1 ms in hope whoever holds what we want will let it go. ++ */ ++void cpu_chill(void) ++{ ++ struct timespec tu = { ++ .tv_nsec = NSEC_PER_MSEC, ++ }; ++ unsigned int freeze_flag = current->flags & PF_NOFREEZE; ++ ++ current->flags |= PF_NOFREEZE; ++ hrtimer_nanosleep(&tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC); ++ if (!freeze_flag) ++ current->flags &= ~PF_NOFREEZE; ++} ++EXPORT_SYMBOL(cpu_chill); ++#endif ++ + /* + * Functions related to boot-time initialization: + */ diff --git a/patches/features/all/rt/rt-local-irq-lock.patch b/patches/features/all/rt/rt-local-irq-lock.patch new file mode 100644 index 00000000000..d7c43bf8f95 --- /dev/null +++ b/patches/features/all/rt/rt-local-irq-lock.patch @@ -0,0 +1,326 @@ +Subject: rt: Add local irq locks +From: Thomas Gleixner +Date: Mon, 20 Jun 2011 09:03:47 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Introduce locallock. For !RT this maps to preempt_disable()/ +local_irq_disable() so there is not much that changes. For RT this will +map to a spinlock. This makes preemption possible and locked "ressource" +gets the lockdep anotation it wouldn't have otherwise. The locks are +recursive for owner == current. Also, all locks user migrate_disable() +which ensures that the task is not migrated to another CPU while the lock +is held and the owner is preempted. + +Signed-off-by: Thomas Gleixner +--- + include/linux/locallock.h | 266 ++++++++++++++++++++++++++++++++++++++++++++++ + include/linux/percpu.h | 29 +++++ + 2 files changed, 295 insertions(+) + +--- /dev/null ++++ b/include/linux/locallock.h +@@ -0,0 +1,266 @@ ++#ifndef _LINUX_LOCALLOCK_H ++#define _LINUX_LOCALLOCK_H ++ ++#include ++#include ++ ++#ifdef CONFIG_PREEMPT_RT_BASE ++ ++#ifdef CONFIG_DEBUG_SPINLOCK ++# define LL_WARN(cond) WARN_ON(cond) ++#else ++# define LL_WARN(cond) do { } while (0) ++#endif ++ ++/* ++ * per cpu lock based substitute for local_irq_*() ++ */ ++struct local_irq_lock { ++ spinlock_t lock; ++ struct task_struct *owner; ++ int nestcnt; ++ unsigned long flags; ++}; ++ ++#define DEFINE_LOCAL_IRQ_LOCK(lvar) \ ++ DEFINE_PER_CPU(struct local_irq_lock, lvar) = { \ ++ .lock = __SPIN_LOCK_UNLOCKED((lvar).lock) } ++ ++#define DECLARE_LOCAL_IRQ_LOCK(lvar) \ ++ DECLARE_PER_CPU(struct local_irq_lock, lvar) ++ ++#define local_irq_lock_init(lvar) \ ++ do { \ ++ int __cpu; \ ++ for_each_possible_cpu(__cpu) \ ++ spin_lock_init(&per_cpu(lvar, __cpu).lock); \ ++ } while (0) ++ ++/* ++ * spin_lock|trylock|unlock_local flavour that does not migrate disable ++ * used for __local_lock|trylock|unlock where get_local_var/put_local_var ++ * already takes care of the migrate_disable/enable ++ * for CONFIG_PREEMPT_BASE map to the normal spin_* calls. ++ */ ++# define spin_lock_local(lock) spin_lock(lock) ++# define spin_trylock_local(lock) spin_trylock(lock) ++# define spin_unlock_local(lock) spin_unlock(lock) ++ ++static inline void __local_lock(struct local_irq_lock *lv) ++{ ++ if (lv->owner != current) { ++ spin_lock_local(&lv->lock); ++ LL_WARN(lv->owner); ++ LL_WARN(lv->nestcnt); ++ lv->owner = current; ++ } ++ lv->nestcnt++; ++} ++ ++#define local_lock(lvar) \ ++ do { __local_lock(&get_local_var(lvar)); } while (0) ++ ++static inline int __local_trylock(struct local_irq_lock *lv) ++{ ++ if (lv->owner != current && spin_trylock_local(&lv->lock)) { ++ LL_WARN(lv->owner); ++ LL_WARN(lv->nestcnt); ++ lv->owner = current; ++ lv->nestcnt = 1; ++ return 1; ++ } ++ return 0; ++} ++ ++#define local_trylock(lvar) \ ++ ({ \ ++ int __locked; \ ++ __locked = __local_trylock(&get_local_var(lvar)); \ ++ if (!__locked) \ ++ put_local_var(lvar); \ ++ __locked; \ ++ }) ++ ++static inline void __local_unlock(struct local_irq_lock *lv) ++{ ++ LL_WARN(lv->nestcnt == 0); ++ LL_WARN(lv->owner != current); ++ if (--lv->nestcnt) ++ return; ++ ++ lv->owner = NULL; ++ spin_unlock_local(&lv->lock); ++} ++ ++#define local_unlock(lvar) \ ++ do { \ ++ __local_unlock(this_cpu_ptr(&lvar)); \ ++ put_local_var(lvar); \ ++ } while (0) ++ ++static inline void __local_lock_irq(struct local_irq_lock *lv) ++{ ++ spin_lock_irqsave(&lv->lock, lv->flags); ++ LL_WARN(lv->owner); ++ LL_WARN(lv->nestcnt); ++ lv->owner = current; ++ lv->nestcnt = 1; ++} ++ ++#define local_lock_irq(lvar) \ ++ do { __local_lock_irq(&get_local_var(lvar)); } while (0) ++ ++#define local_lock_irq_on(lvar, cpu) \ ++ do { __local_lock_irq(&per_cpu(lvar, cpu)); } while (0) ++ ++static inline void __local_unlock_irq(struct local_irq_lock *lv) ++{ ++ LL_WARN(!lv->nestcnt); ++ LL_WARN(lv->owner != current); ++ lv->owner = NULL; ++ lv->nestcnt = 0; ++ spin_unlock_irq(&lv->lock); ++} ++ ++#define local_unlock_irq(lvar) \ ++ do { \ ++ __local_unlock_irq(this_cpu_ptr(&lvar)); \ ++ put_local_var(lvar); \ ++ } while (0) ++ ++#define local_unlock_irq_on(lvar, cpu) \ ++ do { \ ++ __local_unlock_irq(&per_cpu(lvar, cpu)); \ ++ } while (0) ++ ++static inline int __local_lock_irqsave(struct local_irq_lock *lv) ++{ ++ if (lv->owner != current) { ++ __local_lock_irq(lv); ++ return 0; ++ } else { ++ lv->nestcnt++; ++ return 1; ++ } ++} ++ ++#define local_lock_irqsave(lvar, _flags) \ ++ do { \ ++ if (__local_lock_irqsave(&get_local_var(lvar))) \ ++ put_local_var(lvar); \ ++ _flags = __this_cpu_read(lvar.flags); \ ++ } while (0) ++ ++#define local_lock_irqsave_on(lvar, _flags, cpu) \ ++ do { \ ++ __local_lock_irqsave(&per_cpu(lvar, cpu)); \ ++ _flags = per_cpu(lvar, cpu).flags; \ ++ } while (0) ++ ++static inline int __local_unlock_irqrestore(struct local_irq_lock *lv, ++ unsigned long flags) ++{ ++ LL_WARN(!lv->nestcnt); ++ LL_WARN(lv->owner != current); ++ if (--lv->nestcnt) ++ return 0; ++ ++ lv->owner = NULL; ++ spin_unlock_irqrestore(&lv->lock, lv->flags); ++ return 1; ++} ++ ++#define local_unlock_irqrestore(lvar, flags) \ ++ do { \ ++ if (__local_unlock_irqrestore(this_cpu_ptr(&lvar), flags)) \ ++ put_local_var(lvar); \ ++ } while (0) ++ ++#define local_unlock_irqrestore_on(lvar, flags, cpu) \ ++ do { \ ++ __local_unlock_irqrestore(&per_cpu(lvar, cpu), flags); \ ++ } while (0) ++ ++#define local_spin_trylock_irq(lvar, lock) \ ++ ({ \ ++ int __locked; \ ++ local_lock_irq(lvar); \ ++ __locked = spin_trylock(lock); \ ++ if (!__locked) \ ++ local_unlock_irq(lvar); \ ++ __locked; \ ++ }) ++ ++#define local_spin_lock_irq(lvar, lock) \ ++ do { \ ++ local_lock_irq(lvar); \ ++ spin_lock(lock); \ ++ } while (0) ++ ++#define local_spin_unlock_irq(lvar, lock) \ ++ do { \ ++ spin_unlock(lock); \ ++ local_unlock_irq(lvar); \ ++ } while (0) ++ ++#define local_spin_lock_irqsave(lvar, lock, flags) \ ++ do { \ ++ local_lock_irqsave(lvar, flags); \ ++ spin_lock(lock); \ ++ } while (0) ++ ++#define local_spin_unlock_irqrestore(lvar, lock, flags) \ ++ do { \ ++ spin_unlock(lock); \ ++ local_unlock_irqrestore(lvar, flags); \ ++ } while (0) ++ ++#define get_locked_var(lvar, var) \ ++ (*({ \ ++ local_lock(lvar); \ ++ this_cpu_ptr(&var); \ ++ })) ++ ++#define put_locked_var(lvar, var) local_unlock(lvar); ++ ++#define local_lock_cpu(lvar) \ ++ ({ \ ++ local_lock(lvar); \ ++ smp_processor_id(); \ ++ }) ++ ++#define local_unlock_cpu(lvar) local_unlock(lvar) ++ ++#else /* PREEMPT_RT_BASE */ ++ ++#define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar ++#define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar ++ ++static inline void local_irq_lock_init(int lvar) { } ++ ++#define local_lock(lvar) preempt_disable() ++#define local_unlock(lvar) preempt_enable() ++#define local_lock_irq(lvar) local_irq_disable() ++#define local_lock_irq_on(lvar, cpu) local_irq_disable() ++#define local_unlock_irq(lvar) local_irq_enable() ++#define local_unlock_irq_on(lvar, cpu) local_irq_enable() ++#define local_lock_irqsave(lvar, flags) local_irq_save(flags) ++#define local_unlock_irqrestore(lvar, flags) local_irq_restore(flags) ++ ++#define local_spin_trylock_irq(lvar, lock) spin_trylock_irq(lock) ++#define local_spin_lock_irq(lvar, lock) spin_lock_irq(lock) ++#define local_spin_unlock_irq(lvar, lock) spin_unlock_irq(lock) ++#define local_spin_lock_irqsave(lvar, lock, flags) \ ++ spin_lock_irqsave(lock, flags) ++#define local_spin_unlock_irqrestore(lvar, lock, flags) \ ++ spin_unlock_irqrestore(lock, flags) ++ ++#define get_locked_var(lvar, var) get_cpu_var(var) ++#define put_locked_var(lvar, var) put_cpu_var(var) ++ ++#define local_lock_cpu(lvar) get_cpu() ++#define local_unlock_cpu(lvar) put_cpu() ++ ++#endif ++ ++#endif +--- a/include/linux/percpu.h ++++ b/include/linux/percpu.h +@@ -18,6 +18,35 @@ + #define PERCPU_MODULE_RESERVE 0 + #endif + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++#define get_local_var(var) (*({ \ ++ migrate_disable(); \ ++ this_cpu_ptr(&var); })) ++ ++#define put_local_var(var) do { \ ++ (void)&(var); \ ++ migrate_enable(); \ ++} while (0) ++ ++# define get_local_ptr(var) ({ \ ++ migrate_disable(); \ ++ this_cpu_ptr(var); }) ++ ++# define put_local_ptr(var) do { \ ++ (void)(var); \ ++ migrate_enable(); \ ++} while (0) ++ ++#else ++ ++#define get_local_var(var) get_cpu_var(var) ++#define put_local_var(var) put_cpu_var(var) ++#define get_local_ptr(var) get_cpu_ptr(var) ++#define put_local_ptr(var) put_cpu_ptr(var) ++ ++#endif ++ + /* minimum unit size, also is the maximum supported allocation size */ + #define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10) + diff --git a/patches/features/all/rt/rt-locking-Reenable-migration-accross-schedule.patch b/patches/features/all/rt/rt-locking-Reenable-migration-accross-schedule.patch new file mode 100644 index 00000000000..b22752c598c --- /dev/null +++ b/patches/features/all/rt/rt-locking-Reenable-migration-accross-schedule.patch @@ -0,0 +1,112 @@ +From: Thomas Gleixner +Date: Mon, 8 Feb 2016 16:15:28 +0100 +Subject: rt/locking: Reenable migration accross schedule +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We currently disable migration across lock acquisition. That includes the part +where we block on the lock and schedule out. We cannot disable migration after +taking the lock as that would cause a possible lock inversion. + +But we can be smart and enable migration when we block and schedule out. That +allows the scheduler to place the task freely at least if this is the first +migrate disable level. For nested locking this does not help at all. + +Signed-off-by: Thomas Gleixner +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/locking/rtmutex.c | 32 ++++++++++++++++++++------------ + 1 file changed, 20 insertions(+), 12 deletions(-) + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -988,14 +988,19 @@ static int __try_to_take_rt_mutex(struct + * preemptible spin_lock functions: + */ + static inline void rt_spin_lock_fastlock(struct rt_mutex *lock, +- void (*slowfn)(struct rt_mutex *lock)) ++ void (*slowfn)(struct rt_mutex *lock, ++ bool mg_off), ++ bool do_mig_dis) + { + might_sleep_no_state_check(); + ++ if (do_mig_dis) ++ migrate_disable(); ++ + if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) + rt_mutex_deadlock_account_lock(lock, current); + else +- slowfn(lock); ++ slowfn(lock, do_mig_dis); + } + + static inline int rt_spin_lock_fastunlock(struct rt_mutex *lock, +@@ -1054,7 +1059,8 @@ static int task_blocks_on_rt_mutex(struc + * We store the current state under p->pi_lock in p->saved_state and + * the try_to_wake_up() code handles this accordingly. + */ +-static void noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock) ++static void noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock, ++ bool mg_off) + { + struct task_struct *lock_owner, *self = current; + struct rt_mutex_waiter waiter, *top_waiter; +@@ -1098,8 +1104,13 @@ static void noinline __sched rt_spin_lo + + debug_rt_mutex_print_deadlock(&waiter); + +- if (top_waiter != &waiter || adaptive_wait(lock, lock_owner)) ++ if (top_waiter != &waiter || adaptive_wait(lock, lock_owner)) { ++ if (mg_off) ++ migrate_enable(); + schedule(); ++ if (mg_off) ++ migrate_disable(); ++ } + + raw_spin_lock_irqsave(&lock->wait_lock, flags); + +@@ -1197,38 +1208,35 @@ static int noinline __sched rt_spin_lock + + void __lockfunc rt_spin_lock__no_mg(spinlock_t *lock) + { +- rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock, false); + spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); + } + EXPORT_SYMBOL(rt_spin_lock__no_mg); + + void __lockfunc rt_spin_lock(spinlock_t *lock) + { +- migrate_disable(); +- rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock, true); + spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); + } + EXPORT_SYMBOL(rt_spin_lock); + + void __lockfunc __rt_spin_lock(struct rt_mutex *lock) + { +- migrate_disable(); +- rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock); ++ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock, true); + } + EXPORT_SYMBOL(__rt_spin_lock); + + void __lockfunc __rt_spin_lock__no_mg(struct rt_mutex *lock) + { +- rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock); ++ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock, false); + } + EXPORT_SYMBOL(__rt_spin_lock__no_mg); + + #ifdef CONFIG_DEBUG_LOCK_ALLOC + void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass) + { +- migrate_disable(); +- rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); + spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); ++ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock, true); + } + EXPORT_SYMBOL(rt_spin_lock_nested); + #endif diff --git a/patches/features/all/rt/rt-preempt-base-config.patch b/patches/features/all/rt/rt-preempt-base-config.patch new file mode 100644 index 00000000000..768d7ee7e31 --- /dev/null +++ b/patches/features/all/rt/rt-preempt-base-config.patch @@ -0,0 +1,54 @@ +Subject: rt: Provide PREEMPT_RT_BASE config switch +From: Thomas Gleixner +Date: Fri, 17 Jun 2011 12:39:57 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Introduce PREEMPT_RT_BASE which enables parts of +PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT +substitutions for testing. + +Signed-off-by: Thomas Gleixner +--- + kernel/Kconfig.preempt | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +--- a/kernel/Kconfig.preempt ++++ b/kernel/Kconfig.preempt +@@ -1,3 +1,10 @@ ++config PREEMPT ++ bool ++ select PREEMPT_COUNT ++ ++config PREEMPT_RT_BASE ++ bool ++ select PREEMPT + + choice + prompt "Preemption Model" +@@ -33,9 +40,9 @@ config PREEMPT_VOLUNTARY + + Select this if you are building a kernel for a desktop system. + +-config PREEMPT ++config PREEMPT__LL + bool "Preemptible Kernel (Low-Latency Desktop)" +- select PREEMPT_COUNT ++ select PREEMPT + select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK + help + This option reduces the latency of the kernel by making +@@ -52,6 +59,14 @@ config PREEMPT + embedded system with latency requirements in the milliseconds + range. + ++config PREEMPT_RTB ++ bool "Preemptible Kernel (Basic RT)" ++ select PREEMPT_RT_BASE ++ help ++ This option is basically the same as (Low-Latency Desktop) but ++ enables changes which are preliminary for the full preemptible ++ RT kernel. ++ + endchoice + + config PREEMPT_COUNT diff --git a/patches/features/all/rt/rt-serial-warn-fix.patch b/patches/features/all/rt/rt-serial-warn-fix.patch new file mode 100644 index 00000000000..eed663a1521 --- /dev/null +++ b/patches/features/all/rt/rt-serial-warn-fix.patch @@ -0,0 +1,38 @@ +Subject: rt: Improve the serial console PASS_LIMIT +From: Ingo Molnar +Date: Wed Dec 14 13:05:54 CET 2011 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Beyond the warning: + + drivers/tty/serial/8250/8250.c:1613:6: warning: unused variable ‘pass_counter’ [-Wunused-variable] + +the solution of just looping infinitely was ugly - up it to 1 million to +give it a chance to continue in some really ugly situation. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner +--- + drivers/tty/serial/8250/8250_core.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/drivers/tty/serial/8250/8250_core.c ++++ b/drivers/tty/serial/8250/8250_core.c +@@ -58,7 +58,16 @@ static struct uart_driver serial8250_reg + + static unsigned int skip_txen_test; /* force skip of txen test at init time */ + +-#define PASS_LIMIT 512 ++/* ++ * On -rt we can have a more delays, and legitimately ++ * so - so don't drop work spuriously and spam the ++ * syslog: ++ */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++# define PASS_LIMIT 1000000 ++#else ++# define PASS_LIMIT 512 ++#endif + + #include + /* diff --git a/patches/features/all/rt/rtmutex--Handle-non-enqueued-waiters-gracefully.patch b/patches/features/all/rt/rtmutex--Handle-non-enqueued-waiters-gracefully.patch new file mode 100644 index 00000000000..2a62e8a7c77 --- /dev/null +++ b/patches/features/all/rt/rtmutex--Handle-non-enqueued-waiters-gracefully.patch @@ -0,0 +1,33 @@ +Subject: rtmutex: Handle non enqueued waiters gracefully +From: Thomas Gleixner +Date: Fri, 06 Nov 2015 18:51:03 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Yimin debugged that in case of a PI wakeup in progress when +rt_mutex_start_proxy_lock() calls task_blocks_on_rt_mutex() the latter +returns -EAGAIN and in consequence the remove_waiter() call runs into +a BUG_ON() because there is nothing to remove. + +Guard it with rt_mutex_has_waiters(). This is a quick fix which is +easy to backport. The proper fix is to have a central check in +remove_waiter() so we can call it unconditionally. + +Reported-and-debugged-by: Yimin Deng +Signed-off-by: Thomas Gleixner +Cc: stable-rt@vger.kernel.org + +--- + kernel/locking/rtmutex.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -1690,7 +1690,7 @@ int rt_mutex_start_proxy_lock(struct rt_ + ret = 0; + } + +- if (unlikely(ret)) ++ if (ret && rt_mutex_has_waiters(lock)) + remove_waiter(lock, waiter); + + raw_spin_unlock_irq(&lock->wait_lock); diff --git a/patches/features/all/rt/rtmutex-add-a-first-shot-of-ww_mutex.patch b/patches/features/all/rt/rtmutex-add-a-first-shot-of-ww_mutex.patch new file mode 100644 index 00000000000..a3364224f97 --- /dev/null +++ b/patches/features/all/rt/rtmutex-add-a-first-shot-of-ww_mutex.patch @@ -0,0 +1,424 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 28 Oct 2013 09:36:37 +0100 +Subject: rtmutex: Add RT aware ww locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +lockdep says: +| -------------------------------------------------------------------------- +| | Wound/wait tests | +| --------------------- +| ww api failures: ok | ok | ok | +| ww contexts mixing: ok | ok | +| finishing ww context: ok | ok | ok | ok | +| locking mismatches: ok | ok | ok | +| EDEADLK handling: ok | ok | ok | ok | ok | ok | ok | ok | ok | ok | +| spinlock nest unlocked: ok | +| ----------------------------------------------------- +| |block | try |context| +| ----------------------------------------------------- +| context: ok | ok | ok | +| try: ok | ok | ok | +| block: ok | ok | ok | +| spinlock: ok | ok | ok | + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/locking/rtmutex.c | 251 ++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 226 insertions(+), 25 deletions(-) + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include "rtmutex_common.h" + +@@ -1360,6 +1361,40 @@ EXPORT_SYMBOL(__rt_spin_lock_init); + + #endif /* PREEMPT_RT_FULL */ + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ static inline int __sched ++__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx) ++{ ++ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock); ++ struct ww_acquire_ctx *hold_ctx = ACCESS_ONCE(ww->ctx); ++ ++ if (!hold_ctx) ++ return 0; ++ ++ if (unlikely(ctx == hold_ctx)) ++ return -EALREADY; ++ ++ if (ctx->stamp - hold_ctx->stamp <= LONG_MAX && ++ (ctx->stamp != hold_ctx->stamp || ctx > hold_ctx)) { ++#ifdef CONFIG_DEBUG_MUTEXES ++ DEBUG_LOCKS_WARN_ON(ctx->contending_lock); ++ ctx->contending_lock = ww; ++#endif ++ return -EDEADLK; ++ } ++ ++ return 0; ++} ++#else ++ static inline int __sched ++__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx) ++{ ++ BUG(); ++ return 0; ++} ++ ++#endif ++ + static inline int + try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task, + struct rt_mutex_waiter *waiter) +@@ -1614,7 +1649,8 @@ void rt_mutex_adjust_pi(struct task_stru + static int __sched + __rt_mutex_slowlock(struct rt_mutex *lock, int state, + struct hrtimer_sleeper *timeout, +- struct rt_mutex_waiter *waiter) ++ struct rt_mutex_waiter *waiter, ++ struct ww_acquire_ctx *ww_ctx) + { + int ret = 0; + +@@ -1637,6 +1673,12 @@ static int __sched + break; + } + ++ if (ww_ctx && ww_ctx->acquired > 0) { ++ ret = __mutex_lock_check_stamp(lock, ww_ctx); ++ if (ret) ++ break; ++ } ++ + raw_spin_unlock_irq(&lock->wait_lock); + + debug_rt_mutex_print_deadlock(waiter); +@@ -1671,13 +1713,90 @@ static void rt_mutex_handle_deadlock(int + } + } + ++static __always_inline void ww_mutex_lock_acquired(struct ww_mutex *ww, ++ struct ww_acquire_ctx *ww_ctx) ++{ ++#ifdef CONFIG_DEBUG_MUTEXES ++ /* ++ * If this WARN_ON triggers, you used ww_mutex_lock to acquire, ++ * but released with a normal mutex_unlock in this call. ++ * ++ * This should never happen, always use ww_mutex_unlock. ++ */ ++ DEBUG_LOCKS_WARN_ON(ww->ctx); ++ ++ /* ++ * Not quite done after calling ww_acquire_done() ? ++ */ ++ DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire); ++ ++ if (ww_ctx->contending_lock) { ++ /* ++ * After -EDEADLK you tried to ++ * acquire a different ww_mutex? Bad! ++ */ ++ DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww); ++ ++ /* ++ * You called ww_mutex_lock after receiving -EDEADLK, ++ * but 'forgot' to unlock everything else first? ++ */ ++ DEBUG_LOCKS_WARN_ON(ww_ctx->acquired > 0); ++ ww_ctx->contending_lock = NULL; ++ } ++ ++ /* ++ * Naughty, using a different class will lead to undefined behavior! ++ */ ++ DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class); ++#endif ++ ww_ctx->acquired++; ++} ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++static void ww_mutex_account_lock(struct rt_mutex *lock, ++ struct ww_acquire_ctx *ww_ctx) ++{ ++ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock); ++ struct rt_mutex_waiter *waiter, *n; ++ ++ /* ++ * This branch gets optimized out for the common case, ++ * and is only important for ww_mutex_lock. ++ */ ++ ww_mutex_lock_acquired(ww, ww_ctx); ++ ww->ctx = ww_ctx; ++ ++ /* ++ * Give any possible sleeping processes the chance to wake up, ++ * so they can recheck if they have to back off. ++ */ ++ rbtree_postorder_for_each_entry_safe(waiter, n, &lock->waiters, ++ tree_entry) { ++ /* XXX debug rt mutex waiter wakeup */ ++ ++ BUG_ON(waiter->lock != lock); ++ rt_mutex_wake_waiter(waiter); ++ } ++} ++ ++#else ++ ++static void ww_mutex_account_lock(struct rt_mutex *lock, ++ struct ww_acquire_ctx *ww_ctx) ++{ ++ BUG(); ++} ++#endif ++ + /* + * Slow path lock function: + */ + static int __sched + rt_mutex_slowlock(struct rt_mutex *lock, int state, + struct hrtimer_sleeper *timeout, +- enum rtmutex_chainwalk chwalk) ++ enum rtmutex_chainwalk chwalk, ++ struct ww_acquire_ctx *ww_ctx) + { + struct rt_mutex_waiter waiter; + unsigned long flags; +@@ -1697,6 +1816,8 @@ rt_mutex_slowlock(struct rt_mutex *lock, + + /* Try to acquire the lock again: */ + if (try_to_take_rt_mutex(lock, current, NULL)) { ++ if (ww_ctx) ++ ww_mutex_account_lock(lock, ww_ctx); + raw_spin_unlock_irqrestore(&lock->wait_lock, flags); + return 0; + } +@@ -1711,13 +1832,23 @@ rt_mutex_slowlock(struct rt_mutex *lock, + + if (likely(!ret)) + /* sleep on the mutex */ +- ret = __rt_mutex_slowlock(lock, state, timeout, &waiter); ++ ret = __rt_mutex_slowlock(lock, state, timeout, &waiter, ++ ww_ctx); ++ else if (ww_ctx) { ++ /* ww_mutex received EDEADLK, let it become EALREADY */ ++ ret = __mutex_lock_check_stamp(lock, ww_ctx); ++ BUG_ON(!ret); ++ } + + if (unlikely(ret)) { + __set_current_state(TASK_RUNNING); + if (rt_mutex_has_waiters(lock)) + remove_waiter(lock, &waiter); +- rt_mutex_handle_deadlock(ret, chwalk, &waiter); ++ /* ww_mutex want to report EDEADLK/EALREADY, let them */ ++ if (!ww_ctx) ++ rt_mutex_handle_deadlock(ret, chwalk, &waiter); ++ } else if (ww_ctx) { ++ ww_mutex_account_lock(lock, ww_ctx); + } + + /* +@@ -1850,31 +1981,36 @@ static bool __sched rt_mutex_slowunlock( + */ + static inline int + rt_mutex_fastlock(struct rt_mutex *lock, int state, ++ struct ww_acquire_ctx *ww_ctx, + int (*slowfn)(struct rt_mutex *lock, int state, + struct hrtimer_sleeper *timeout, +- enum rtmutex_chainwalk chwalk)) ++ enum rtmutex_chainwalk chwalk, ++ struct ww_acquire_ctx *ww_ctx)) + { + if (likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) { + rt_mutex_deadlock_account_lock(lock, current); + return 0; + } else +- return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK); ++ return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK, ++ ww_ctx); + } + + static inline int + rt_mutex_timed_fastlock(struct rt_mutex *lock, int state, + struct hrtimer_sleeper *timeout, + enum rtmutex_chainwalk chwalk, ++ struct ww_acquire_ctx *ww_ctx, + int (*slowfn)(struct rt_mutex *lock, int state, + struct hrtimer_sleeper *timeout, +- enum rtmutex_chainwalk chwalk)) ++ enum rtmutex_chainwalk chwalk, ++ struct ww_acquire_ctx *ww_ctx)) + { + if (chwalk == RT_MUTEX_MIN_CHAINWALK && + likely(rt_mutex_cmpxchg_acquire(lock, NULL, current))) { + rt_mutex_deadlock_account_lock(lock, current); + return 0; + } else +- return slowfn(lock, state, timeout, chwalk); ++ return slowfn(lock, state, timeout, chwalk, ww_ctx); + } + + static inline int +@@ -1921,7 +2057,7 @@ void __sched rt_mutex_lock(struct rt_mut + { + might_sleep(); + +- rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, rt_mutex_slowlock); ++ rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, NULL, rt_mutex_slowlock); + } + EXPORT_SYMBOL_GPL(rt_mutex_lock); + +@@ -1938,7 +2074,7 @@ int __sched rt_mutex_lock_interruptible( + { + might_sleep(); + +- return rt_mutex_fastlock(lock, TASK_INTERRUPTIBLE, rt_mutex_slowlock); ++ return rt_mutex_fastlock(lock, TASK_INTERRUPTIBLE, NULL, rt_mutex_slowlock); + } + EXPORT_SYMBOL_GPL(rt_mutex_lock_interruptible); + +@@ -1951,7 +2087,7 @@ int rt_mutex_timed_futex_lock(struct rt_ + might_sleep(); + + return rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout, +- RT_MUTEX_FULL_CHAINWALK, ++ RT_MUTEX_FULL_CHAINWALK, NULL, + rt_mutex_slowlock); + } + +@@ -1970,7 +2106,7 @@ int __sched rt_mutex_lock_killable(struc + { + might_sleep(); + +- return rt_mutex_fastlock(lock, TASK_KILLABLE, rt_mutex_slowlock); ++ return rt_mutex_fastlock(lock, TASK_KILLABLE, NULL, rt_mutex_slowlock); + } + EXPORT_SYMBOL_GPL(rt_mutex_lock_killable); + +@@ -1994,6 +2130,7 @@ rt_mutex_timed_lock(struct rt_mutex *loc + + return rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout, + RT_MUTEX_MIN_CHAINWALK, ++ NULL, + rt_mutex_slowlock); + } + EXPORT_SYMBOL_GPL(rt_mutex_timed_lock); +@@ -2248,7 +2385,7 @@ int rt_mutex_finish_proxy_lock(struct rt + set_current_state(TASK_INTERRUPTIBLE); + + /* sleep on the mutex */ +- ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter); ++ ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter, NULL); + + if (unlikely(ret)) + remove_waiter(lock, waiter); +@@ -2264,24 +2401,88 @@ int rt_mutex_finish_proxy_lock(struct rt + return ret; + } + +-#ifdef CONFIG_PREEMPT_RT_FULL +-struct ww_mutex { +-}; +-struct ww_acquire_ctx { +-}; +-int __ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) ++static inline int ++ww_mutex_deadlock_injection(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) + { +- BUG(); ++#ifdef CONFIG_DEBUG_WW_MUTEX_SLOWPATH ++ unsigned tmp; ++ ++ if (ctx->deadlock_inject_countdown-- == 0) { ++ tmp = ctx->deadlock_inject_interval; ++ if (tmp > UINT_MAX/4) ++ tmp = UINT_MAX; ++ else ++ tmp = tmp*2 + tmp + tmp/2; ++ ++ ctx->deadlock_inject_interval = tmp; ++ ctx->deadlock_inject_countdown = tmp; ++ ctx->contending_lock = lock; ++ ++ ww_mutex_unlock(lock); ++ ++ return -EDEADLK; ++ } ++#endif ++ ++ return 0; + } +-EXPORT_SYMBOL_GPL(__ww_mutex_lock); +-int __ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++int __sched ++__ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) + { +- BUG(); ++ int ret; ++ ++ might_sleep(); ++ ++ mutex_acquire_nest(&lock->base.dep_map, 0, 0, &ww_ctx->dep_map, _RET_IP_); ++ ret = rt_mutex_slowlock(&lock->base.lock, TASK_INTERRUPTIBLE, NULL, 0, ww_ctx); ++ if (ret) ++ mutex_release(&lock->base.dep_map, 1, _RET_IP_); ++ else if (!ret && ww_ctx->acquired > 1) ++ return ww_mutex_deadlock_injection(lock, ww_ctx); ++ ++ return ret; + } + EXPORT_SYMBOL_GPL(__ww_mutex_lock_interruptible); ++ ++int __sched ++__ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx) ++{ ++ int ret; ++ ++ might_sleep(); ++ ++ mutex_acquire_nest(&lock->base.dep_map, 0, 0, &ww_ctx->dep_map, _RET_IP_); ++ ret = rt_mutex_slowlock(&lock->base.lock, TASK_UNINTERRUPTIBLE, NULL, 0, ww_ctx); ++ if (ret) ++ mutex_release(&lock->base.dep_map, 1, _RET_IP_); ++ else if (!ret && ww_ctx->acquired > 1) ++ return ww_mutex_deadlock_injection(lock, ww_ctx); ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(__ww_mutex_lock); ++ + void __sched ww_mutex_unlock(struct ww_mutex *lock) + { +- BUG(); ++ int nest = !!lock->ctx; ++ ++ /* ++ * The unlocking fastpath is the 0->1 transition from 'locked' ++ * into 'unlocked' state: ++ */ ++ if (nest) { ++#ifdef CONFIG_DEBUG_MUTEXES ++ DEBUG_LOCKS_WARN_ON(!lock->ctx->acquired); ++#endif ++ if (lock->ctx->acquired > 0) ++ lock->ctx->acquired--; ++ lock->ctx = NULL; ++ } ++ ++ mutex_release(&lock->base.dep_map, nest, _RET_IP_); ++ rt_mutex_unlock(&lock->base.lock); + } +-EXPORT_SYMBOL_GPL(ww_mutex_unlock); ++EXPORT_SYMBOL(ww_mutex_unlock); + #endif diff --git a/patches/features/all/rt/rtmutex-avoid-include-hell.patch b/patches/features/all/rt/rtmutex-avoid-include-hell.patch new file mode 100644 index 00000000000..4a8107d11d0 --- /dev/null +++ b/patches/features/all/rt/rtmutex-avoid-include-hell.patch @@ -0,0 +1,24 @@ +Subject: rtmutex: Avoid include hell +From: Thomas Gleixner +Date: Wed, 29 Jun 2011 20:06:39 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Include only the required raw types. This avoids pulling in the +complete spinlock header which in turn requires rtmutex.h at some point. + +Signed-off-by: Thomas Gleixner +--- + include/linux/rtmutex.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/rtmutex.h ++++ b/include/linux/rtmutex.h +@@ -14,7 +14,7 @@ + + #include + #include +-#include ++#include + + extern int max_lock_depth; /* for sysctl */ + diff --git a/patches/features/all/rt/rtmutex-futex-prepare-rt.patch b/patches/features/all/rt/rtmutex-futex-prepare-rt.patch new file mode 100644 index 00000000000..4bd06189df7 --- /dev/null +++ b/patches/features/all/rt/rtmutex-futex-prepare-rt.patch @@ -0,0 +1,244 @@ +Subject: rtmutex: Handle the various new futex race conditions +From: Thomas Gleixner +Date: Fri, 10 Jun 2011 11:04:15 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT opens a few new interesting race conditions in the rtmutex/futex +combo due to futex hash bucket lock being a 'sleeping' spinlock and +therefor not disabling preemption. + +Signed-off-by: Thomas Gleixner +--- + kernel/futex.c | 77 ++++++++++++++++++++++++++++++++-------- + kernel/locking/rtmutex.c | 36 +++++++++++++++--- + kernel/locking/rtmutex_common.h | 2 + + 3 files changed, 94 insertions(+), 21 deletions(-) + +--- a/kernel/futex.c ++++ b/kernel/futex.c +@@ -1924,6 +1924,16 @@ static int futex_requeue(u32 __user *uad + requeue_pi_wake_futex(this, &key2, hb2); + drop_count++; + continue; ++ } else if (ret == -EAGAIN) { ++ /* ++ * Waiter was woken by timeout or ++ * signal and has set pi_blocked_on to ++ * PI_WAKEUP_INPROGRESS before we ++ * tried to enqueue it on the rtmutex. ++ */ ++ this->pi_state = NULL; ++ put_pi_state(pi_state); ++ continue; + } else if (ret) { + /* + * rt_mutex_start_proxy_lock() detected a +@@ -2814,7 +2824,7 @@ static int futex_wait_requeue_pi(u32 __u + struct hrtimer_sleeper timeout, *to = NULL; + struct rt_mutex_waiter rt_waiter; + struct rt_mutex *pi_mutex = NULL; +- struct futex_hash_bucket *hb; ++ struct futex_hash_bucket *hb, *hb2; + union futex_key key2 = FUTEX_KEY_INIT; + struct futex_q q = futex_q_init; + int res, ret; +@@ -2873,20 +2883,55 @@ static int futex_wait_requeue_pi(u32 __u + /* Queue the futex_q, drop the hb lock, wait for wakeup. */ + futex_wait_queue_me(hb, &q, to); + +- spin_lock(&hb->lock); +- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to); +- spin_unlock(&hb->lock); +- if (ret) +- goto out_put_keys; ++ /* ++ * On RT we must avoid races with requeue and trying to block ++ * on two mutexes (hb->lock and uaddr2's rtmutex) by ++ * serializing access to pi_blocked_on with pi_lock. ++ */ ++ raw_spin_lock_irq(¤t->pi_lock); ++ if (current->pi_blocked_on) { ++ /* ++ * We have been requeued or are in the process of ++ * being requeued. ++ */ ++ raw_spin_unlock_irq(¤t->pi_lock); ++ } else { ++ /* ++ * Setting pi_blocked_on to PI_WAKEUP_INPROGRESS ++ * prevents a concurrent requeue from moving us to the ++ * uaddr2 rtmutex. After that we can safely acquire ++ * (and possibly block on) hb->lock. ++ */ ++ current->pi_blocked_on = PI_WAKEUP_INPROGRESS; ++ raw_spin_unlock_irq(¤t->pi_lock); ++ ++ spin_lock(&hb->lock); ++ ++ /* ++ * Clean up pi_blocked_on. We might leak it otherwise ++ * when we succeeded with the hb->lock in the fast ++ * path. ++ */ ++ raw_spin_lock_irq(¤t->pi_lock); ++ current->pi_blocked_on = NULL; ++ raw_spin_unlock_irq(¤t->pi_lock); ++ ++ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to); ++ spin_unlock(&hb->lock); ++ if (ret) ++ goto out_put_keys; ++ } + + /* +- * In order for us to be here, we know our q.key == key2, and since +- * we took the hb->lock above, we also know that futex_requeue() has +- * completed and we no longer have to concern ourselves with a wakeup +- * race with the atomic proxy lock acquisition by the requeue code. The +- * futex_requeue dropped our key1 reference and incremented our key2 +- * reference count. ++ * In order to be here, we have either been requeued, are in ++ * the process of being requeued, or requeue successfully ++ * acquired uaddr2 on our behalf. If pi_blocked_on was ++ * non-null above, we may be racing with a requeue. Do not ++ * rely on q->lock_ptr to be hb2->lock until after blocking on ++ * hb->lock or hb2->lock. The futex_requeue dropped our key1 ++ * reference and incremented our key2 reference count. + */ ++ hb2 = hash_futex(&key2); + + /* Check if the requeue code acquired the second futex for us. */ + if (!q.rt_waiter) { +@@ -2895,14 +2940,15 @@ static int futex_wait_requeue_pi(u32 __u + * did a lock-steal - fix up the PI-state in that case. + */ + if (q.pi_state && (q.pi_state->owner != current)) { +- spin_lock(q.lock_ptr); ++ spin_lock(&hb2->lock); ++ BUG_ON(&hb2->lock != q.lock_ptr); + ret = fixup_pi_state_owner(uaddr2, &q, current); + /* + * Drop the reference to the pi state which + * the requeue_pi() code acquired for us. + */ + put_pi_state(q.pi_state); +- spin_unlock(q.lock_ptr); ++ spin_unlock(&hb2->lock); + } + } else { + /* +@@ -2915,7 +2961,8 @@ static int futex_wait_requeue_pi(u32 __u + ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter); + debug_rt_mutex_free_waiter(&rt_waiter); + +- spin_lock(q.lock_ptr); ++ spin_lock(&hb2->lock); ++ BUG_ON(&hb2->lock != q.lock_ptr); + /* + * Fixup the pi_state owner and possibly acquire the lock if we + * haven't already. +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -133,6 +133,11 @@ static void fixup_rt_mutex_waiters(struc + WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS); + } + ++static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter) ++{ ++ return waiter && waiter != PI_WAKEUP_INPROGRESS; ++} ++ + /* + * We can speed up the acquire/release, if there's no debugging state to be + * set up. +@@ -421,7 +426,8 @@ int max_lock_depth = 1024; + + static inline struct rt_mutex *task_blocked_on_lock(struct task_struct *p) + { +- return p->pi_blocked_on ? p->pi_blocked_on->lock : NULL; ++ return rt_mutex_real_waiter(p->pi_blocked_on) ? ++ p->pi_blocked_on->lock : NULL; + } + + /* +@@ -557,7 +563,7 @@ static int rt_mutex_adjust_prio_chain(st + * reached or the state of the chain has changed while we + * dropped the locks. + */ +- if (!waiter) ++ if (!rt_mutex_real_waiter(waiter)) + goto out_unlock_pi; + + /* +@@ -971,6 +977,23 @@ static int task_blocks_on_rt_mutex(struc + return -EDEADLK; + + raw_spin_lock(&task->pi_lock); ++ ++ /* ++ * In the case of futex requeue PI, this will be a proxy ++ * lock. The task will wake unaware that it is enqueueed on ++ * this lock. Avoid blocking on two locks and corrupting ++ * pi_blocked_on via the PI_WAKEUP_INPROGRESS ++ * flag. futex_wait_requeue_pi() sets this when it wakes up ++ * before requeue (due to a signal or timeout). Do not enqueue ++ * the task if PI_WAKEUP_INPROGRESS is set. ++ */ ++ if (task != current && task->pi_blocked_on == PI_WAKEUP_INPROGRESS) { ++ raw_spin_unlock(&task->pi_lock); ++ return -EAGAIN; ++ } ++ ++ BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on)); ++ + __rt_mutex_adjust_prio(task); + waiter->task = task; + waiter->lock = lock; +@@ -994,7 +1017,7 @@ static int task_blocks_on_rt_mutex(struc + rt_mutex_enqueue_pi(owner, waiter); + + __rt_mutex_adjust_prio(owner); +- if (owner->pi_blocked_on) ++ if (rt_mutex_real_waiter(owner->pi_blocked_on)) + chain_walk = 1; + } else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) { + chain_walk = 1; +@@ -1078,7 +1101,7 @@ static void remove_waiter(struct rt_mute + { + bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock)); + struct task_struct *owner = rt_mutex_owner(lock); +- struct rt_mutex *next_lock; ++ struct rt_mutex *next_lock = NULL; + + raw_spin_lock(¤t->pi_lock); + rt_mutex_dequeue(lock, waiter); +@@ -1102,7 +1125,8 @@ static void remove_waiter(struct rt_mute + __rt_mutex_adjust_prio(owner); + + /* Store the lock on which owner is blocked or NULL */ +- next_lock = task_blocked_on_lock(owner); ++ if (rt_mutex_real_waiter(owner->pi_blocked_on)) ++ next_lock = task_blocked_on_lock(owner); + + raw_spin_unlock(&owner->pi_lock); + +@@ -1138,7 +1162,7 @@ void rt_mutex_adjust_pi(struct task_stru + raw_spin_lock_irqsave(&task->pi_lock, flags); + + waiter = task->pi_blocked_on; +- if (!waiter || (waiter->prio == task->prio && ++ if (!rt_mutex_real_waiter(waiter) || (waiter->prio == task->prio && + !dl_prio(task->prio))) { + raw_spin_unlock_irqrestore(&task->pi_lock, flags); + return; +--- a/kernel/locking/rtmutex_common.h ++++ b/kernel/locking/rtmutex_common.h +@@ -98,6 +98,8 @@ enum rtmutex_chainwalk { + /* + * PI-futex support (proxy locking functions, etc.): + */ ++#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1) ++ + extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock); + extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, + struct task_struct *proxy_owner); diff --git a/patches/features/all/rt/rtmutex-lock-killable.patch b/patches/features/all/rt/rtmutex-lock-killable.patch new file mode 100644 index 00000000000..344fe770ad0 --- /dev/null +++ b/patches/features/all/rt/rtmutex-lock-killable.patch @@ -0,0 +1,52 @@ +Subject: rtmutex: Add rtmutex_lock_killable() +From: Thomas Gleixner +Date: Thu, 09 Jun 2011 11:43:52 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Add "killable" type to rtmutex. We need this since rtmutex are used as +"normal" mutexes which do use this type. + +Signed-off-by: Thomas Gleixner +--- + include/linux/rtmutex.h | 1 + + kernel/locking/rtmutex.c | 19 +++++++++++++++++++ + 2 files changed, 20 insertions(+) + +--- a/include/linux/rtmutex.h ++++ b/include/linux/rtmutex.h +@@ -91,6 +91,7 @@ extern void rt_mutex_destroy(struct rt_m + + extern void rt_mutex_lock(struct rt_mutex *lock); + extern int rt_mutex_lock_interruptible(struct rt_mutex *lock); ++extern int rt_mutex_lock_killable(struct rt_mutex *lock); + extern int rt_mutex_timed_lock(struct rt_mutex *lock, + struct hrtimer_sleeper *timeout); + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -1531,6 +1531,25 @@ int rt_mutex_timed_futex_lock(struct rt_ + } + + /** ++ * rt_mutex_lock_killable - lock a rt_mutex killable ++ * ++ * @lock: the rt_mutex to be locked ++ * @detect_deadlock: deadlock detection on/off ++ * ++ * Returns: ++ * 0 on success ++ * -EINTR when interrupted by a signal ++ * -EDEADLK when the lock would deadlock (when deadlock detection is on) ++ */ ++int __sched rt_mutex_lock_killable(struct rt_mutex *lock) ++{ ++ might_sleep(); ++ ++ return rt_mutex_fastlock(lock, TASK_KILLABLE, rt_mutex_slowlock); ++} ++EXPORT_SYMBOL_GPL(rt_mutex_lock_killable); ++ ++/** + * rt_mutex_timed_lock - lock a rt_mutex interruptible + * the timeout structure is provided + * by the caller diff --git a/patches/features/all/rt/rtmutex-trylock-is-okay-on-RT.patch b/patches/features/all/rt/rtmutex-trylock-is-okay-on-RT.patch new file mode 100644 index 00000000000..3a84bb049d0 --- /dev/null +++ b/patches/features/all/rt/rtmutex-trylock-is-okay-on-RT.patch @@ -0,0 +1,28 @@ +From: Sebastian Andrzej Siewior +Date: Wed 02 Dec 2015 11:34:07 +0100 +Subject: rtmutex: trylock is okay on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On +-RT we don't run softirqs in IRQ context but in thread context so it is +not a issue here. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/locking/rtmutex.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -1542,7 +1542,11 @@ EXPORT_SYMBOL_GPL(rt_mutex_timed_lock); + */ + int __sched rt_mutex_trylock(struct rt_mutex *lock) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (WARN_ON_ONCE(in_irq() || in_nmi())) ++#else + if (WARN_ON_ONCE(in_irq() || in_nmi() || in_serving_softirq())) ++#endif + return 0; + + return rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock); diff --git a/patches/features/all/rt/rtmutex_dont_include_rcu.patch b/patches/features/all/rt/rtmutex_dont_include_rcu.patch new file mode 100644 index 00000000000..fe597cb6c44 --- /dev/null +++ b/patches/features/all/rt/rtmutex_dont_include_rcu.patch @@ -0,0 +1,159 @@ +From: Sebastian Andrzej Siewior +Subject: rbtree: don't include the rcu header +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The RCU header pulls in spinlock.h and fails due not yet defined types: + +|In file included from include/linux/spinlock.h:275:0, +| from include/linux/rcupdate.h:38, +| from include/linux/rbtree.h:34, +| from include/linux/rtmutex.h:17, +| from include/linux/spinlock_types.h:18, +| from kernel/bounds.c:13: +|include/linux/rwlock_rt.h:16:38: error: unknown type name ‘rwlock_t’ +| extern void __lockfunc rt_write_lock(rwlock_t *rwlock); +| ^ + +This patch moves the required RCU function from the rcupdate.h header file into +a new header file which can be included by both users. + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/rbtree.h | 2 - + include/linux/rcu_assign_pointer.h | 54 +++++++++++++++++++++++++++++++++++++ + include/linux/rcupdate.h | 49 --------------------------------- + 3 files changed, 56 insertions(+), 49 deletions(-) + +--- a/include/linux/rbtree.h ++++ b/include/linux/rbtree.h +@@ -31,7 +31,7 @@ + + #include + #include +-#include ++#include + + struct rb_node { + unsigned long __rb_parent_color; +--- /dev/null ++++ b/include/linux/rcu_assign_pointer.h +@@ -0,0 +1,54 @@ ++#ifndef __LINUX_RCU_ASSIGN_POINTER_H__ ++#define __LINUX_RCU_ASSIGN_POINTER_H__ ++#include ++#include ++ ++/** ++ * RCU_INITIALIZER() - statically initialize an RCU-protected global variable ++ * @v: The value to statically initialize with. ++ */ ++#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v) ++ ++/** ++ * rcu_assign_pointer() - assign to RCU-protected pointer ++ * @p: pointer to assign to ++ * @v: value to assign (publish) ++ * ++ * Assigns the specified value to the specified RCU-protected ++ * pointer, ensuring that any concurrent RCU readers will see ++ * any prior initialization. ++ * ++ * Inserts memory barriers on architectures that require them ++ * (which is most of them), and also prevents the compiler from ++ * reordering the code that initializes the structure after the pointer ++ * assignment. More importantly, this call documents which pointers ++ * will be dereferenced by RCU read-side code. ++ * ++ * In some special cases, you may use RCU_INIT_POINTER() instead ++ * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due ++ * to the fact that it does not constrain either the CPU or the compiler. ++ * That said, using RCU_INIT_POINTER() when you should have used ++ * rcu_assign_pointer() is a very bad thing that results in ++ * impossible-to-diagnose memory corruption. So please be careful. ++ * See the RCU_INIT_POINTER() comment header for details. ++ * ++ * Note that rcu_assign_pointer() evaluates each of its arguments only ++ * once, appearances notwithstanding. One of the "extra" evaluations ++ * is in typeof() and the other visible only to sparse (__CHECKER__), ++ * neither of which actually execute the argument. As with most cpp ++ * macros, this execute-arguments-only-once property is important, so ++ * please be careful when making changes to rcu_assign_pointer() and the ++ * other macros that it invokes. ++ */ ++#define rcu_assign_pointer(p, v) \ ++({ \ ++ uintptr_t _r_a_p__v = (uintptr_t)(v); \ ++ \ ++ if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \ ++ WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \ ++ else \ ++ smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \ ++ _r_a_p__v; \ ++}) ++ ++#endif +--- a/include/linux/rcupdate.h ++++ b/include/linux/rcupdate.h +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + +@@ -629,54 +630,6 @@ static inline void rcu_preempt_sleep_che + }) + + /** +- * RCU_INITIALIZER() - statically initialize an RCU-protected global variable +- * @v: The value to statically initialize with. +- */ +-#define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v) +- +-/** +- * rcu_assign_pointer() - assign to RCU-protected pointer +- * @p: pointer to assign to +- * @v: value to assign (publish) +- * +- * Assigns the specified value to the specified RCU-protected +- * pointer, ensuring that any concurrent RCU readers will see +- * any prior initialization. +- * +- * Inserts memory barriers on architectures that require them +- * (which is most of them), and also prevents the compiler from +- * reordering the code that initializes the structure after the pointer +- * assignment. More importantly, this call documents which pointers +- * will be dereferenced by RCU read-side code. +- * +- * In some special cases, you may use RCU_INIT_POINTER() instead +- * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due +- * to the fact that it does not constrain either the CPU or the compiler. +- * That said, using RCU_INIT_POINTER() when you should have used +- * rcu_assign_pointer() is a very bad thing that results in +- * impossible-to-diagnose memory corruption. So please be careful. +- * See the RCU_INIT_POINTER() comment header for details. +- * +- * Note that rcu_assign_pointer() evaluates each of its arguments only +- * once, appearances notwithstanding. One of the "extra" evaluations +- * is in typeof() and the other visible only to sparse (__CHECKER__), +- * neither of which actually execute the argument. As with most cpp +- * macros, this execute-arguments-only-once property is important, so +- * please be careful when making changes to rcu_assign_pointer() and the +- * other macros that it invokes. +- */ +-#define rcu_assign_pointer(p, v) \ +-({ \ +- uintptr_t _r_a_p__v = (uintptr_t)(v); \ +- \ +- if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \ +- WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \ +- else \ +- smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \ +- _r_a_p__v; \ +-}) +- +-/** + * rcu_access_pointer() - fetch RCU pointer with no dereferencing + * @p: The pointer to read + * diff --git a/patches/features/all/rt/rxrpc-remove-unused-static-variables.patch b/patches/features/all/rt/rxrpc-remove-unused-static-variables.patch new file mode 100644 index 00000000000..f0e04f3b457 --- /dev/null +++ b/patches/features/all/rt/rxrpc-remove-unused-static-variables.patch @@ -0,0 +1,28 @@ +From f9cf73e8bad7daa90318edfd933f8676cd1e5cd4 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 21 Oct 2016 10:54:50 +0200 +Subject: [PATCH] rxrpc: remove unused static variables +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The rxrpc_security_methods and rxrpc_security_sem user has been removed +in 648af7fca159 ("rxrpc: Absorb the rxkad security module"). This was +noticed by kbuild test robot for the -RT tree but is also true for !RT. + +Reported-by: kbuild test robot +Signed-off-by: Sebastian Andrzej Siewior +--- + net/rxrpc/security.c | 3 --- + 1 file changed, 3 deletions(-) + +--- a/net/rxrpc/security.c ++++ b/net/rxrpc/security.c +@@ -19,9 +19,6 @@ + #include + #include "ar-internal.h" + +-static LIST_HEAD(rxrpc_security_methods); +-static DECLARE_RWSEM(rxrpc_security_sem); +- + static const struct rxrpc_security *rxrpc_security_types[] = { + [RXRPC_SECURITY_NONE] = &rxrpc_no_security, + #ifdef CONFIG_RXKAD diff --git a/patches/features/all/rt/sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch b/patches/features/all/rt/sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch new file mode 100644 index 00000000000..191ec5f9368 --- /dev/null +++ b/patches/features/all/rt/sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch @@ -0,0 +1,79 @@ +From: Paul Gortmaker +Date: Sat, 14 Feb 2015 11:01:16 -0500 +Subject: sas-ata/isci: dont't disable interrupts in qc_issue handler +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On 3.14-rt we see the following trace on Canoe Pass for +SCSI_ISCI "Intel(R) C600 Series Chipset SAS Controller" +when the sas qc_issue handler is run: + + BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:905 + in_atomic(): 0, irqs_disabled(): 1, pid: 432, name: udevd + CPU: 11 PID: 432 Comm: udevd Not tainted 3.14.28-rt22 #2 + Hardware name: Intel Corporation S2600CP/S2600CP, BIOS SE5C600.86B.02.01.0002.082220131453 08/22/2013 + ffff880fab500000 ffff880fa9f239c0 ffffffff81a2d273 0000000000000000 + ffff880fa9f239d8 ffffffff8107f023 ffff880faac23dc0 ffff880fa9f239f0 + ffffffff81a33cc0 ffff880faaeb1400 ffff880fa9f23a40 ffffffff815de891 + Call Trace: + [] dump_stack+0x4e/0x7a + [] __might_sleep+0xe3/0x160 + [] rt_spin_lock+0x20/0x50 + [] isci_task_execute_task+0x171/0x2f0 <----- + [] sas_ata_qc_issue+0x25b/0x2a0 + [] ata_qc_issue+0x1f3/0x370 + [] ? ata_scsi_invalid_field+0x40/0x40 + [] ata_scsi_translate+0xa5/0x1b0 + [] ata_sas_queuecmd+0x86/0x280 + [] sas_queuecommand+0x196/0x230 + [] ? get_parent_ip+0xd/0x50 + [] scsi_dispatch_cmd+0xb4/0x210 + [] scsi_request_fn+0x314/0x530 + +and gdb shows: + +(gdb) list * isci_task_execute_task+0x171 +0xffffffff815ddfb1 is in isci_task_execute_task (drivers/scsi/isci/task.c:138). +133 dev_dbg(&ihost->pdev->dev, "%s: num=%d\n", __func__, num); +134 +135 for_each_sas_task(num, task) { +136 enum sci_status status = SCI_FAILURE; +137 +138 spin_lock_irqsave(&ihost->scic_lock, flags); <----- +139 idev = isci_lookup_device(task->dev); +140 io_ready = isci_device_io_ready(idev, task); +141 tag = isci_alloc_tag(ihost); +142 spin_unlock_irqrestore(&ihost->scic_lock, flags); +(gdb) + +In addition to the scic_lock, the function also contains locking of +the task_state_lock -- which is clearly not a candidate for raw lock +conversion. As can be seen by the comment nearby, we really should +be running the qc_issue code with interrupts enabled anyway. + + +Signed-off-by: Paul Gortmaker +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/scsi/libsas/sas_ata.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/scsi/libsas/sas_ata.c ++++ b/drivers/scsi/libsas/sas_ata.c +@@ -190,7 +190,7 @@ static unsigned int sas_ata_qc_issue(str + /* TODO: audit callers to ensure they are ready for qc_issue to + * unconditionally re-enable interrupts + */ +- local_irq_save(flags); ++ local_irq_save_nort(flags); + spin_unlock(ap->lock); + + /* If the device fell off, no sense in issuing commands */ +@@ -252,7 +252,7 @@ static unsigned int sas_ata_qc_issue(str + + out: + spin_lock(ap->lock); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + return ret; + } + diff --git a/patches/features/all/rt/sched-deadline-dl_task_timer-has-to-be-irqsafe.patch b/patches/features/all/rt/sched-deadline-dl_task_timer-has-to-be-irqsafe.patch new file mode 100644 index 00000000000..abcd3c9dfba --- /dev/null +++ b/patches/features/all/rt/sched-deadline-dl_task_timer-has-to-be-irqsafe.patch @@ -0,0 +1,23 @@ +From: Juri Lelli +Date: Tue, 13 May 2014 15:30:20 +0200 +Subject: sched/deadline: dl_task_timer has to be irqsafe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +As for rt_period_timer, dl_task_timer has to be irqsafe. + +Signed-off-by: Juri Lelli +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/sched/deadline.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/kernel/sched/deadline.c ++++ b/kernel/sched/deadline.c +@@ -687,6 +687,7 @@ void init_dl_task_timer(struct sched_dl_ + + hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + timer->function = dl_task_timer; ++ timer->irqsafe = 1; + } + + static diff --git a/patches/features/all/rt/sched-delay-put-task.patch b/patches/features/all/rt/sched-delay-put-task.patch new file mode 100644 index 00000000000..0a64db3487c --- /dev/null +++ b/patches/features/all/rt/sched-delay-put-task.patch @@ -0,0 +1,82 @@ +Subject: sched: Move task_struct cleanup to RCU +From: Thomas Gleixner +Date: Tue, 31 May 2011 16:59:16 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +__put_task_struct() does quite some expensive work. We don't want to +burden random tasks with that. + +Signed-off-by: Thomas Gleixner +--- + include/linux/sched.h | 13 +++++++++++++ + kernel/fork.c | 15 ++++++++++++++- + 2 files changed, 27 insertions(+), 1 deletion(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1961,6 +1961,9 @@ struct task_struct { + unsigned int sequential_io; + unsigned int sequential_io_avg; + #endif ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct rcu_head put_rcu; ++#endif + #ifdef CONFIG_DEBUG_ATOMIC_SLEEP + unsigned long task_state_change; + #endif +@@ -2218,6 +2221,15 @@ extern struct pid *cad_pid; + extern void free_task(struct task_struct *tsk); + #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0) + ++#ifdef CONFIG_PREEMPT_RT_BASE ++extern void __put_task_struct_cb(struct rcu_head *rhp); ++ ++static inline void put_task_struct(struct task_struct *t) ++{ ++ if (atomic_dec_and_test(&t->usage)) ++ call_rcu(&t->put_rcu, __put_task_struct_cb); ++} ++#else + extern void __put_task_struct(struct task_struct *t); + + static inline void put_task_struct(struct task_struct *t) +@@ -2225,6 +2237,7 @@ static inline void put_task_struct(struc + if (atomic_dec_and_test(&t->usage)) + __put_task_struct(t); + } ++#endif + + struct task_struct *task_rcu_dereference(struct task_struct **ptask); + struct task_struct *try_get_task_struct(struct task_struct **ptask); +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -376,7 +376,9 @@ static inline void put_signal_struct(str + if (atomic_dec_and_test(&sig->sigcnt)) + free_signal_struct(sig); + } +- ++#ifdef CONFIG_PREEMPT_RT_BASE ++static ++#endif + void __put_task_struct(struct task_struct *tsk) + { + WARN_ON(!tsk->exit_state); +@@ -393,7 +395,18 @@ void __put_task_struct(struct task_struc + if (!profile_handoff_task(tsk)) + free_task(tsk); + } ++#ifndef CONFIG_PREEMPT_RT_BASE + EXPORT_SYMBOL_GPL(__put_task_struct); ++#else ++void __put_task_struct_cb(struct rcu_head *rhp) ++{ ++ struct task_struct *tsk = container_of(rhp, struct task_struct, put_rcu); ++ ++ __put_task_struct(tsk); ++ ++} ++EXPORT_SYMBOL_GPL(__put_task_struct_cb); ++#endif + + void __init __weak arch_task_cache_init(void) { } + diff --git a/patches/features/all/rt/sched-disable-rt-group-sched-on-rt.patch b/patches/features/all/rt/sched-disable-rt-group-sched-on-rt.patch new file mode 100644 index 00000000000..e916980cfab --- /dev/null +++ b/patches/features/all/rt/sched-disable-rt-group-sched-on-rt.patch @@ -0,0 +1,29 @@ +Subject: sched: Disable CONFIG_RT_GROUP_SCHED on RT +From: Thomas Gleixner +Date: Mon, 18 Jul 2011 17:03:52 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Carsten reported problems when running: + + taskset 01 chrt -f 1 sleep 1 + +from within rc.local on a F15 machine. The task stays running and +never gets on the run queue because some of the run queues have +rt_throttled=1 which does not go away. Works nice from a ssh login +shell. Disabling CONFIG_RT_GROUP_SCHED solves that as well. + +Signed-off-by: Thomas Gleixner +--- + init/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1051,6 +1051,7 @@ config CFS_BANDWIDTH + config RT_GROUP_SCHED + bool "Group scheduling for SCHED_RR/FIFO" + depends on CGROUP_SCHED ++ depends on !PREEMPT_RT_FULL + default n + help + This feature lets you explicitly allocate real CPU bandwidth diff --git a/patches/features/all/rt/sched-disable-ttwu-queue.patch b/patches/features/all/rt/sched-disable-ttwu-queue.patch new file mode 100644 index 00000000000..2f0930d4b54 --- /dev/null +++ b/patches/features/all/rt/sched-disable-ttwu-queue.patch @@ -0,0 +1,32 @@ +Subject: sched: Disable TTWU_QUEUE on RT +From: Thomas Gleixner +Date: Tue, 13 Sep 2011 16:42:35 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The queued remote wakeup mechanism can introduce rather large +latencies if the number of migrated tasks is high. Disable it for RT. + +Signed-off-by: Thomas Gleixner +--- + kernel/sched/features.h | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/kernel/sched/features.h ++++ b/kernel/sched/features.h +@@ -45,11 +45,16 @@ SCHED_FEAT(LB_BIAS, true) + */ + SCHED_FEAT(NONTASK_CAPACITY, true) + ++#ifdef CONFIG_PREEMPT_RT_FULL ++SCHED_FEAT(TTWU_QUEUE, false) ++#else ++ + /* + * Queue remote wakeups on the target CPU and process them + * using the scheduler IPI. Reduces rq->lock contention/bounces. + */ + SCHED_FEAT(TTWU_QUEUE, true) ++#endif + + #ifdef HAVE_RT_PUSH_IPI + /* diff --git a/patches/features/all/rt/sched-limit-nr-migrate.patch b/patches/features/all/rt/sched-limit-nr-migrate.patch new file mode 100644 index 00000000000..58bc677bd30 --- /dev/null +++ b/patches/features/all/rt/sched-limit-nr-migrate.patch @@ -0,0 +1,27 @@ +Subject: sched: Limit the number of task migrations per batch +From: Thomas Gleixner +Date: Mon, 06 Jun 2011 12:12:51 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Put an upper limit on the number of tasks which are migrated per batch +to avoid large latencies. + +Signed-off-by: Thomas Gleixner +--- + kernel/sched/core.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -129,7 +129,11 @@ const_debug unsigned int sysctl_sched_fe + * Number of tasks to iterate in a single balance run. + * Limited because this is done with IRQs disabled. + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + const_debug unsigned int sysctl_sched_nr_migrate = 32; ++#else ++const_debug unsigned int sysctl_sched_nr_migrate = 8; ++#endif + + /* + * period over which we average the RT time consumption, measured diff --git a/patches/features/all/rt/sched-might-sleep-do-not-account-rcu-depth.patch b/patches/features/all/rt/sched-might-sleep-do-not-account-rcu-depth.patch new file mode 100644 index 00000000000..031dc9b3e1d --- /dev/null +++ b/patches/features/all/rt/sched-might-sleep-do-not-account-rcu-depth.patch @@ -0,0 +1,48 @@ +Subject: sched: Do not account rcu_preempt_depth on RT in might_sleep() +From: Thomas Gleixner +Date: Tue, 07 Jun 2011 09:19:06 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT changes the rcu_preempt_depth semantics, so we cannot check for it +in might_sleep(). + +Signed-off-by: Thomas Gleixner +--- + include/linux/rcupdate.h | 7 +++++++ + kernel/sched/core.c | 2 +- + 2 files changed, 8 insertions(+), 1 deletion(-) + +--- a/include/linux/rcupdate.h ++++ b/include/linux/rcupdate.h +@@ -301,6 +301,11 @@ void synchronize_rcu(void); + * types of kernel builds, the rcu_read_lock() nesting depth is unknowable. + */ + #define rcu_preempt_depth() (current->rcu_read_lock_nesting) ++#ifndef CONFIG_PREEMPT_RT_FULL ++#define sched_rcu_preempt_depth() rcu_preempt_depth() ++#else ++static inline int sched_rcu_preempt_depth(void) { return 0; } ++#endif + + #else /* #ifdef CONFIG_PREEMPT_RCU */ + +@@ -326,6 +331,8 @@ static inline int rcu_preempt_depth(void + return 0; + } + ++#define sched_rcu_preempt_depth() rcu_preempt_depth() ++ + #endif /* #else #ifdef CONFIG_PREEMPT_RCU */ + + /* Internal to kernel */ +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -7820,7 +7820,7 @@ void __init sched_init(void) + #ifdef CONFIG_DEBUG_ATOMIC_SLEEP + static inline int preempt_count_equals(int preempt_offset) + { +- int nested = preempt_count() + rcu_preempt_depth(); ++ int nested = preempt_count() + sched_rcu_preempt_depth(); + + return (nested == preempt_offset); + } diff --git a/patches/features/all/rt/sched-mmdrop-delayed.patch b/patches/features/all/rt/sched-mmdrop-delayed.patch new file mode 100644 index 00000000000..3ba394dff81 --- /dev/null +++ b/patches/features/all/rt/sched-mmdrop-delayed.patch @@ -0,0 +1,128 @@ +Subject: sched: Move mmdrop to RCU on RT +From: Thomas Gleixner +Date: Mon, 06 Jun 2011 12:20:33 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Takes sleeping locks and calls into the memory allocator, so nothing +we want to do in task switch and oder atomic contexts. + +Signed-off-by: Thomas Gleixner +--- + include/linux/mm_types.h | 4 ++++ + include/linux/sched.h | 11 +++++++++++ + kernel/fork.c | 13 +++++++++++++ + kernel/sched/core.c | 19 +++++++++++++++++-- + 4 files changed, 45 insertions(+), 2 deletions(-) + +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -508,6 +509,9 @@ struct mm_struct { + bool tlb_flush_pending; + #endif + struct uprobes_state uprobes_state; ++#ifdef CONFIG_PREEMPT_RT_BASE ++ struct rcu_head delayed_drop; ++#endif + #ifdef CONFIG_X86_INTEL_MPX + /* address of the bounds directory */ + void __user *bd_addr; +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -2905,6 +2905,17 @@ static inline void mmdrop(struct mm_stru + __mmdrop(mm); + } + ++#ifdef CONFIG_PREEMPT_RT_BASE ++extern void __mmdrop_delayed(struct rcu_head *rhp); ++static inline void mmdrop_delayed(struct mm_struct *mm) ++{ ++ if (atomic_dec_and_test(&mm->mm_count)) ++ call_rcu(&mm->delayed_drop, __mmdrop_delayed); ++} ++#else ++# define mmdrop_delayed(mm) mmdrop(mm) ++#endif ++ + static inline void mmdrop_async_fn(struct work_struct *work) + { + struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work); +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -862,6 +862,19 @@ void __mmdrop(struct mm_struct *mm) + } + EXPORT_SYMBOL_GPL(__mmdrop); + ++#ifdef CONFIG_PREEMPT_RT_BASE ++/* ++ * RCU callback for delayed mm drop. Not strictly rcu, but we don't ++ * want another facility to make this work. ++ */ ++void __mmdrop_delayed(struct rcu_head *rhp) ++{ ++ struct mm_struct *mm = container_of(rhp, struct mm_struct, delayed_drop); ++ ++ __mmdrop(mm); ++} ++#endif ++ + static inline void __mmput(struct mm_struct *mm) + { + VM_BUG_ON(atomic_read(&mm->mm_users)); +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -2785,8 +2785,12 @@ static struct rq *finish_task_switch(str + finish_arch_post_lock_switch(); + + fire_sched_in_preempt_notifiers(current); ++ /* ++ * We use mmdrop_delayed() here so we don't have to do the ++ * full __mmdrop() when we are the last user. ++ */ + if (mm) +- mmdrop(mm); ++ mmdrop_delayed(mm); + if (unlikely(prev_state == TASK_DEAD)) { + if (prev->sched_class->task_dead) + prev->sched_class->task_dead(prev); +@@ -5545,6 +5549,8 @@ void sched_setnuma(struct task_struct *p + #endif /* CONFIG_NUMA_BALANCING */ + + #ifdef CONFIG_HOTPLUG_CPU ++static DEFINE_PER_CPU(struct mm_struct *, idle_last_mm); ++ + /* + * Ensures that the idle task is using init_mm right before its cpu goes + * offline. +@@ -5559,7 +5565,12 @@ void idle_task_exit(void) + switch_mm_irqs_off(mm, &init_mm, current); + finish_arch_post_lock_switch(); + } +- mmdrop(mm); ++ /* ++ * Defer the cleanup to an alive cpu. On RT we can neither ++ * call mmdrop() nor mmdrop_delayed() from here. ++ */ ++ per_cpu(idle_last_mm, smp_processor_id()) = mm; ++ + } + + /* +@@ -7505,6 +7516,10 @@ int sched_cpu_dying(unsigned int cpu) + update_max_interval(); + nohz_balance_exit_idle(cpu); + hrtick_clear(rq); ++ if (per_cpu(idle_last_mm, cpu)) { ++ mmdrop_delayed(per_cpu(idle_last_mm, cpu)); ++ per_cpu(idle_last_mm, cpu) = NULL; ++ } + return 0; + } + #endif diff --git a/patches/features/all/rt/sched-rt-mutex-wakeup.patch b/patches/features/all/rt/sched-rt-mutex-wakeup.patch new file mode 100644 index 00000000000..1895e727434 --- /dev/null +++ b/patches/features/all/rt/sched-rt-mutex-wakeup.patch @@ -0,0 +1,94 @@ +Subject: sched: Add saved_state for tasks blocked on sleeping locks +From: Thomas Gleixner +Date: Sat, 25 Jun 2011 09:21:04 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Spinlocks are state preserving in !RT. RT changes the state when a +task gets blocked on a lock. So we need to remember the state before +the lock contention. If a regular wakeup (not a RTmutex related +wakeup) happens, the saved_state is updated to running. When the lock +sleep is done, the saved state is restored. + +Signed-off-by: Thomas Gleixner +--- + include/linux/sched.h | 2 ++ + kernel/sched/core.c | 31 ++++++++++++++++++++++++++++++- + kernel/sched/sched.h | 1 + + 3 files changed, 33 insertions(+), 1 deletion(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1481,6 +1481,7 @@ struct task_struct { + struct thread_info thread_info; + #endif + volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ ++ volatile long saved_state; /* saved state for "spinlock sleepers" */ + void *stack; + atomic_t usage; + unsigned int flags; /* per process flags, defined below */ +@@ -2697,6 +2698,7 @@ extern void xtime_update(unsigned long t + + extern int wake_up_state(struct task_struct *tsk, unsigned int state); + extern int wake_up_process(struct task_struct *tsk); ++extern int wake_up_lock_sleeper(struct task_struct * tsk); + extern void wake_up_new_task(struct task_struct *tsk); + #ifdef CONFIG_SMP + extern void kick_process(struct task_struct *tsk); +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -2033,8 +2033,25 @@ try_to_wake_up(struct task_struct *p, un + */ + smp_mb__before_spinlock(); + raw_spin_lock_irqsave(&p->pi_lock, flags); +- if (!(p->state & state)) ++ if (!(p->state & state)) { ++ /* ++ * The task might be running due to a spinlock sleeper ++ * wakeup. Check the saved state and set it to running ++ * if the wakeup condition is true. ++ */ ++ if (!(wake_flags & WF_LOCK_SLEEPER)) { ++ if (p->saved_state & state) ++ p->saved_state = TASK_RUNNING; ++ } + goto out; ++ } ++ ++ /* ++ * If this is a regular wakeup, then we can unconditionally ++ * clear the saved state of a "lock sleeper". ++ */ ++ if (!(wake_flags & WF_LOCK_SLEEPER)) ++ p->saved_state = TASK_RUNNING; + + trace_sched_waking(p); + +@@ -2181,6 +2198,18 @@ int wake_up_process(struct task_struct * + } + EXPORT_SYMBOL(wake_up_process); + ++/** ++ * wake_up_lock_sleeper - Wake up a specific process blocked on a "sleeping lock" ++ * @p: The process to be woken up. ++ * ++ * Same as wake_up_process() above, but wake_flags=WF_LOCK_SLEEPER to indicate ++ * the nature of the wakeup. ++ */ ++int wake_up_lock_sleeper(struct task_struct *p) ++{ ++ return try_to_wake_up(p, TASK_ALL, WF_LOCK_SLEEPER); ++} ++ + int wake_up_state(struct task_struct *p, unsigned int state) + { + return try_to_wake_up(p, state, 0); +--- a/kernel/sched/sched.h ++++ b/kernel/sched/sched.h +@@ -1163,6 +1163,7 @@ static inline void finish_lock_switch(st + #define WF_SYNC 0x01 /* waker goes to sleep after wakeup */ + #define WF_FORK 0x02 /* child wakeup after fork */ + #define WF_MIGRATED 0x4 /* internal use, task got migrated */ ++#define WF_LOCK_SLEEPER 0x08 /* wakeup spinlock "sleeper" */ + + /* + * To aid in avoiding the subversion of "niceness" due to uneven distribution diff --git a/patches/features/all/rt/sched-ttwu-ensure-success-return-is-correct.patch b/patches/features/all/rt/sched-ttwu-ensure-success-return-is-correct.patch new file mode 100644 index 00000000000..8a92d207a31 --- /dev/null +++ b/patches/features/all/rt/sched-ttwu-ensure-success-return-is-correct.patch @@ -0,0 +1,35 @@ +Subject: sched: ttwu: Return success when only changing the saved_state value +From: Thomas Gleixner +Date: Tue, 13 Dec 2011 21:42:19 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When a task blocks on a rt lock, it saves the current state in +p->saved_state, so a lock related wake up will not destroy the +original state. + +When a real wakeup happens, while the task is running due to a lock +wakeup already, we update p->saved_state to TASK_RUNNING, but we do +not return success, which might cause another wakeup in the waitqueue +code and the task remains in the waitqueue list. Return success in +that case as well. + +Signed-off-by: Thomas Gleixner + +--- + kernel/sched/core.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -2040,8 +2040,10 @@ try_to_wake_up(struct task_struct *p, un + * if the wakeup condition is true. + */ + if (!(wake_flags & WF_LOCK_SLEEPER)) { +- if (p->saved_state & state) ++ if (p->saved_state & state) { + p->saved_state = TASK_RUNNING; ++ success = 1; ++ } + } + goto out; + } diff --git a/patches/features/all/rt/sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/patches/features/all/rt/sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch new file mode 100644 index 00000000000..70de76223a5 --- /dev/null +++ b/patches/features/all/rt/sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch @@ -0,0 +1,38 @@ +From: Steven Rostedt +Date: Mon, 18 Mar 2013 15:12:49 -0400 +Subject: sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +In -rt, most spin_locks() turn into mutexes. One of these spin_lock +conversions is performed on the workqueue gcwq->lock. When the idle +worker is worken, the first thing it will do is grab that same lock and +it too will block, possibly jumping into the same code, but because +nr_running would already be decremented it prevents an infinite loop. + +But this is still a waste of CPU cycles, and it doesn't follow the method +of mainline, as new workers should only be woken when a worker thread is +truly going to sleep, and not just blocked on a spin_lock(). + +Check the saved_state too before waking up new workers. + + +Signed-off-by: Steven Rostedt +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/sched/core.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3477,8 +3477,10 @@ static void __sched notrace __schedule(b + * If a worker went to sleep, notify and ask workqueue + * whether it wants to wake up a task to maintain + * concurrency. ++ * Only call wake up if prev isn't blocked on a sleeping ++ * spin lock. + */ +- if (prev->flags & PF_WQ_WORKER) { ++ if (prev->flags & PF_WQ_WORKER && !prev->saved_state) { + struct task_struct *to_wakeup; + + to_wakeup = wq_worker_sleeping(prev); diff --git a/patches/features/all/rt/scsi-fcoe-rt-aware.patch b/patches/features/all/rt/scsi-fcoe-rt-aware.patch new file mode 100644 index 00000000000..2da7e59e78f --- /dev/null +++ b/patches/features/all/rt/scsi-fcoe-rt-aware.patch @@ -0,0 +1,106 @@ +Subject: scsi/fcoe: Make RT aware. +From: Thomas Gleixner +Date: Sat, 12 Nov 2011 14:00:48 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Do not disable preemption while taking sleeping locks. All user look safe +for migrate_diable() only. + +Signed-off-by: Thomas Gleixner +--- + drivers/scsi/fcoe/fcoe.c | 16 ++++++++-------- + drivers/scsi/fcoe/fcoe_ctlr.c | 4 ++-- + drivers/scsi/libfc/fc_exch.c | 4 ++-- + 3 files changed, 12 insertions(+), 12 deletions(-) + +--- a/drivers/scsi/fcoe/fcoe.c ++++ b/drivers/scsi/fcoe/fcoe.c +@@ -1455,11 +1455,11 @@ static int fcoe_rcv(struct sk_buff *skb, + static int fcoe_alloc_paged_crc_eof(struct sk_buff *skb, int tlen) + { + struct fcoe_percpu_s *fps; +- int rc; ++ int rc, cpu = get_cpu_light(); + +- fps = &get_cpu_var(fcoe_percpu); ++ fps = &per_cpu(fcoe_percpu, cpu); + rc = fcoe_get_paged_crc_eof(skb, tlen, fps); +- put_cpu_var(fcoe_percpu); ++ put_cpu_light(); + + return rc; + } +@@ -1646,11 +1646,11 @@ static inline int fcoe_filter_frames(str + return 0; + } + +- stats = per_cpu_ptr(lport->stats, get_cpu()); ++ stats = per_cpu_ptr(lport->stats, get_cpu_light()); + stats->InvalidCRCCount++; + if (stats->InvalidCRCCount < 5) + printk(KERN_WARNING "fcoe: dropping frame with CRC error\n"); +- put_cpu(); ++ put_cpu_light(); + return -EINVAL; + } + +@@ -1693,7 +1693,7 @@ static void fcoe_recv_frame(struct sk_bu + */ + hp = (struct fcoe_hdr *) skb_network_header(skb); + +- stats = per_cpu_ptr(lport->stats, get_cpu()); ++ stats = per_cpu_ptr(lport->stats, get_cpu_light()); + if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) { + if (stats->ErrorFrames < 5) + printk(KERN_WARNING "fcoe: FCoE version " +@@ -1725,13 +1725,13 @@ static void fcoe_recv_frame(struct sk_bu + goto drop; + + if (!fcoe_filter_frames(lport, fp)) { +- put_cpu(); ++ put_cpu_light(); + fc_exch_recv(lport, fp); + return; + } + drop: + stats->ErrorFrames++; +- put_cpu(); ++ put_cpu_light(); + kfree_skb(skb); + } + +--- a/drivers/scsi/fcoe/fcoe_ctlr.c ++++ b/drivers/scsi/fcoe/fcoe_ctlr.c +@@ -834,7 +834,7 @@ static unsigned long fcoe_ctlr_age_fcfs( + + INIT_LIST_HEAD(&del_list); + +- stats = per_cpu_ptr(fip->lp->stats, get_cpu()); ++ stats = per_cpu_ptr(fip->lp->stats, get_cpu_light()); + + list_for_each_entry_safe(fcf, next, &fip->fcfs, list) { + deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2; +@@ -870,7 +870,7 @@ static unsigned long fcoe_ctlr_age_fcfs( + sel_time = fcf->time; + } + } +- put_cpu(); ++ put_cpu_light(); + + list_for_each_entry_safe(fcf, next, &del_list, list) { + /* Removes fcf from current list */ +--- a/drivers/scsi/libfc/fc_exch.c ++++ b/drivers/scsi/libfc/fc_exch.c +@@ -814,10 +814,10 @@ static struct fc_exch *fc_exch_em_alloc( + } + memset(ep, 0, sizeof(*ep)); + +- cpu = get_cpu(); ++ cpu = get_cpu_light(); + pool = per_cpu_ptr(mp->pool, cpu); + spin_lock_bh(&pool->lock); +- put_cpu(); ++ put_cpu_light(); + + /* peek cache of free slot */ + if (pool->left != FC_XID_UNKNOWN) { diff --git a/patches/features/all/rt/scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch b/patches/features/all/rt/scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch new file mode 100644 index 00000000000..ca8570b8220 --- /dev/null +++ b/patches/features/all/rt/scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch @@ -0,0 +1,48 @@ +Subject: scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll +From: John Kacur +Date: Fri, 27 Apr 2012 12:48:46 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +RT triggers the following: + +[ 11.307652] [] __might_sleep+0xe7/0x110 +[ 11.307663] [] rt_spin_lock+0x24/0x60 +[ 11.307670] [] ? rt_spin_lock_slowunlock+0x78/0x90 +[ 11.307703] [] qla24xx_intr_handler+0x63/0x2d0 [qla2xxx] +[ 11.307736] [] qla2x00_poll+0x67/0x90 [qla2xxx] + +Function qla2x00_poll does local_irq_save() before calling qla24xx_intr_handler +which has a spinlock. Since spinlocks are sleepable on rt, it is not allowed +to call them with interrupts disabled. Therefore we use local_irq_save_nort() +instead which saves flags without disabling interrupts. + +This fix needs to be applied to v3.0-rt, v3.2-rt and v3.4-rt + +Suggested-by: Thomas Gleixner +Signed-off-by: John Kacur +Cc: Steven Rostedt +Cc: David Sommerseth +Link: http://lkml.kernel.org/r/1335523726-10024-1-git-send-email-jkacur@redhat.com + +Signed-off-by: Thomas Gleixner +--- + drivers/scsi/qla2xxx/qla_inline.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/scsi/qla2xxx/qla_inline.h ++++ b/drivers/scsi/qla2xxx/qla_inline.h +@@ -59,12 +59,12 @@ qla2x00_poll(struct rsp_que *rsp) + { + unsigned long flags; + struct qla_hw_data *ha = rsp->hw; +- local_irq_save(flags); ++ local_irq_save_nort(flags); + if (IS_P3P_TYPE(ha)) + qla82xx_poll(0, rsp); + else + ha->isp_ops->intr_handler(0, rsp); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + + static inline uint8_t * diff --git a/patches/features/all/rt/seqlock-prevent-rt-starvation.patch b/patches/features/all/rt/seqlock-prevent-rt-starvation.patch new file mode 100644 index 00000000000..93d916f7864 --- /dev/null +++ b/patches/features/all/rt/seqlock-prevent-rt-starvation.patch @@ -0,0 +1,191 @@ +Subject: seqlock: Prevent rt starvation +From: Thomas Gleixner +Date: Wed, 22 Feb 2012 12:03:30 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +If a low prio writer gets preempted while holding the seqlock write +locked, a high prio reader spins forever on RT. + +To prevent this let the reader grab the spinlock, so it blocks and +eventually boosts the writer. This way the writer can proceed and +endless spinning is prevented. + +For seqcount writers we disable preemption over the update code +path. Thanks to Al Viro for distangling some VFS code to make that +possible. + +Nicholas Mc Guire: +- spin_lock+unlock => spin_unlock_wait +- __write_seqcount_begin => __raw_write_seqcount_begin + +Signed-off-by: Thomas Gleixner + + +--- + include/linux/seqlock.h | 56 +++++++++++++++++++++++++++++++++++++----------- + include/net/dst.h | 2 - + include/net/neighbour.h | 4 +-- + 3 files changed, 47 insertions(+), 15 deletions(-) + +--- a/include/linux/seqlock.h ++++ b/include/linux/seqlock.h +@@ -220,20 +220,30 @@ static inline int read_seqcount_retry(co + return __read_seqcount_retry(s, start); + } + +- +- +-static inline void raw_write_seqcount_begin(seqcount_t *s) ++static inline void __raw_write_seqcount_begin(seqcount_t *s) + { + s->sequence++; + smp_wmb(); + } + +-static inline void raw_write_seqcount_end(seqcount_t *s) ++static inline void raw_write_seqcount_begin(seqcount_t *s) ++{ ++ preempt_disable_rt(); ++ __raw_write_seqcount_begin(s); ++} ++ ++static inline void __raw_write_seqcount_end(seqcount_t *s) + { + smp_wmb(); + s->sequence++; + } + ++static inline void raw_write_seqcount_end(seqcount_t *s) ++{ ++ __raw_write_seqcount_end(s); ++ preempt_enable_rt(); ++} ++ + /** + * raw_write_seqcount_barrier - do a seq write barrier + * @s: pointer to seqcount_t +@@ -428,10 +438,32 @@ typedef struct { + /* + * Read side functions for starting and finalizing a read side section. + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + static inline unsigned read_seqbegin(const seqlock_t *sl) + { + return read_seqcount_begin(&sl->seqcount); + } ++#else ++/* ++ * Starvation safe read side for RT ++ */ ++static inline unsigned read_seqbegin(seqlock_t *sl) ++{ ++ unsigned ret; ++ ++repeat: ++ ret = ACCESS_ONCE(sl->seqcount.sequence); ++ if (unlikely(ret & 1)) { ++ /* ++ * Take the lock and let the writer proceed (i.e. evtl ++ * boost it), otherwise we could loop here forever. ++ */ ++ spin_unlock_wait(&sl->lock); ++ goto repeat; ++ } ++ return ret; ++} ++#endif + + static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start) + { +@@ -446,36 +478,36 @@ static inline unsigned read_seqretry(con + static inline void write_seqlock(seqlock_t *sl) + { + spin_lock(&sl->lock); +- write_seqcount_begin(&sl->seqcount); ++ __raw_write_seqcount_begin(&sl->seqcount); + } + + static inline void write_sequnlock(seqlock_t *sl) + { +- write_seqcount_end(&sl->seqcount); ++ __raw_write_seqcount_end(&sl->seqcount); + spin_unlock(&sl->lock); + } + + static inline void write_seqlock_bh(seqlock_t *sl) + { + spin_lock_bh(&sl->lock); +- write_seqcount_begin(&sl->seqcount); ++ __raw_write_seqcount_begin(&sl->seqcount); + } + + static inline void write_sequnlock_bh(seqlock_t *sl) + { +- write_seqcount_end(&sl->seqcount); ++ __raw_write_seqcount_end(&sl->seqcount); + spin_unlock_bh(&sl->lock); + } + + static inline void write_seqlock_irq(seqlock_t *sl) + { + spin_lock_irq(&sl->lock); +- write_seqcount_begin(&sl->seqcount); ++ __raw_write_seqcount_begin(&sl->seqcount); + } + + static inline void write_sequnlock_irq(seqlock_t *sl) + { +- write_seqcount_end(&sl->seqcount); ++ __raw_write_seqcount_end(&sl->seqcount); + spin_unlock_irq(&sl->lock); + } + +@@ -484,7 +516,7 @@ static inline unsigned long __write_seql + unsigned long flags; + + spin_lock_irqsave(&sl->lock, flags); +- write_seqcount_begin(&sl->seqcount); ++ __raw_write_seqcount_begin(&sl->seqcount); + return flags; + } + +@@ -494,7 +526,7 @@ static inline unsigned long __write_seql + static inline void + write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags) + { +- write_seqcount_end(&sl->seqcount); ++ __raw_write_seqcount_end(&sl->seqcount); + spin_unlock_irqrestore(&sl->lock, flags); + } + +--- a/include/net/dst.h ++++ b/include/net/dst.h +@@ -446,7 +446,7 @@ static inline void dst_confirm(struct ds + static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n, + struct sk_buff *skb) + { +- const struct hh_cache *hh; ++ struct hh_cache *hh; + + if (dst->pending_confirm) { + unsigned long now = jiffies; +--- a/include/net/neighbour.h ++++ b/include/net/neighbour.h +@@ -446,7 +446,7 @@ static inline int neigh_hh_bridge(struct + } + #endif + +-static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb) ++static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb) + { + unsigned int seq; + int hh_len; +@@ -501,7 +501,7 @@ struct neighbour_cb { + + #define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb) + +-static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n, ++static inline void neigh_ha_snapshot(char *dst, struct neighbour *n, + const struct net_device *dev) + { + unsigned int seq; diff --git a/patches/features/all/rt/signal-fix-up-rcu-wreckage.patch b/patches/features/all/rt/signal-fix-up-rcu-wreckage.patch new file mode 100644 index 00000000000..6b3f065bd6a --- /dev/null +++ b/patches/features/all/rt/signal-fix-up-rcu-wreckage.patch @@ -0,0 +1,39 @@ +Subject: signal: Make __lock_task_sighand() RT aware +From: Thomas Gleixner +Date: Fri, 22 Jul 2011 08:07:08 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +local_irq_save() + spin_lock(&sighand->siglock) does not work on +-RT. Use the nort variants. + +Signed-off-by: Thomas Gleixner +--- + kernel/signal.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -1276,12 +1276,12 @@ struct sighand_struct *__lock_task_sigha + * Disable interrupts early to avoid deadlocks. + * See rcu_read_unlock() comment header for details. + */ +- local_irq_save(*flags); ++ local_irq_save_nort(*flags); + rcu_read_lock(); + sighand = rcu_dereference(tsk->sighand); + if (unlikely(sighand == NULL)) { + rcu_read_unlock(); +- local_irq_restore(*flags); ++ local_irq_restore_nort(*flags); + break; + } + /* +@@ -1302,7 +1302,7 @@ struct sighand_struct *__lock_task_sigha + } + spin_unlock(&sighand->siglock); + rcu_read_unlock(); +- local_irq_restore(*flags); ++ local_irq_restore_nort(*flags); + } + + return sighand; diff --git a/patches/features/all/rt/signal-revert-ptrace-preempt-magic.patch b/patches/features/all/rt/signal-revert-ptrace-preempt-magic.patch new file mode 100644 index 00000000000..ff056e60fd4 --- /dev/null +++ b/patches/features/all/rt/signal-revert-ptrace-preempt-magic.patch @@ -0,0 +1,32 @@ +Subject: signal: Revert ptrace preempt magic +From: Thomas Gleixner +Date: Wed, 21 Sep 2011 19:57:12 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more +than a bandaid around the ptrace design trainwreck. It's not a +correctness issue, it's merily a cosmetic bandaid. + +Signed-off-by: Thomas Gleixner +--- + kernel/signal.c | 8 -------- + 1 file changed, 8 deletions(-) + +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -1846,15 +1846,7 @@ static void ptrace_stop(int exit_code, i + if (gstop_done && ptrace_reparented(current)) + do_notify_parent_cldstop(current, false, why); + +- /* +- * Don't want to allow preemption here, because +- * sys_ptrace() needs this task to be inactive. +- * +- * XXX: implement read_unlock_no_resched(). +- */ +- preempt_disable(); + read_unlock(&tasklist_lock); +- preempt_enable_no_resched(); + freezable_schedule(); + } else { + /* diff --git a/patches/features/all/rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/patches/features/all/rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch new file mode 100644 index 00000000000..c62572e1f41 --- /dev/null +++ b/patches/features/all/rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -0,0 +1,199 @@ +From: Thomas Gleixner +Date: Fri, 3 Jul 2009 08:44:56 -0500 +Subject: signals: Allow rt tasks to cache one sigqueue struct +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +To avoid allocation allow rt tasks to cache one sigqueue struct in +task struct. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/sched.h | 1 + include/linux/signal.h | 1 + kernel/exit.c | 2 - + kernel/fork.c | 1 + kernel/signal.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++--- + 5 files changed, 69 insertions(+), 5 deletions(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1684,6 +1684,7 @@ struct task_struct { + /* signal handlers */ + struct signal_struct *signal; + struct sighand_struct *sighand; ++ struct sigqueue *sigqueue_cache; + + sigset_t blocked, real_blocked; + sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */ +--- a/include/linux/signal.h ++++ b/include/linux/signal.h +@@ -233,6 +233,7 @@ static inline void init_sigpending(struc + } + + extern void flush_sigqueue(struct sigpending *queue); ++extern void flush_task_sigqueue(struct task_struct *tsk); + + /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ + static inline int valid_signal(unsigned long sig) +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -143,7 +143,7 @@ static void __exit_signal(struct task_st + * Do this under ->siglock, we can race with another thread + * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals. + */ +- flush_sigqueue(&tsk->pending); ++ flush_task_sigqueue(tsk); + tsk->sighand = NULL; + spin_unlock(&sighand->siglock); + +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -1549,6 +1549,7 @@ static __latent_entropy struct task_stru + spin_lock_init(&p->alloc_lock); + + init_sigpending(&p->pending); ++ p->sigqueue_cache = NULL; + + p->utime = p->stime = p->gtime = 0; + p->utimescaled = p->stimescaled = 0; +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -352,13 +353,30 @@ static bool task_participate_group_stop( + return false; + } + ++static inline struct sigqueue *get_task_cache(struct task_struct *t) ++{ ++ struct sigqueue *q = t->sigqueue_cache; ++ ++ if (cmpxchg(&t->sigqueue_cache, q, NULL) != q) ++ return NULL; ++ return q; ++} ++ ++static inline int put_task_cache(struct task_struct *t, struct sigqueue *q) ++{ ++ if (cmpxchg(&t->sigqueue_cache, NULL, q) == NULL) ++ return 0; ++ return 1; ++} ++ + /* + * allocate a new signal queue record + * - this may be called without locks if and only if t == current, otherwise an + * appropriate lock must be held to stop the target task from exiting + */ + static struct sigqueue * +-__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimit) ++__sigqueue_do_alloc(int sig, struct task_struct *t, gfp_t flags, ++ int override_rlimit, int fromslab) + { + struct sigqueue *q = NULL; + struct user_struct *user; +@@ -375,7 +393,10 @@ static struct sigqueue * + if (override_rlimit || + atomic_read(&user->sigpending) <= + task_rlimit(t, RLIMIT_SIGPENDING)) { +- q = kmem_cache_alloc(sigqueue_cachep, flags); ++ if (!fromslab) ++ q = get_task_cache(t); ++ if (!q) ++ q = kmem_cache_alloc(sigqueue_cachep, flags); + } else { + print_dropped_signal(sig); + } +@@ -392,6 +413,13 @@ static struct sigqueue * + return q; + } + ++static struct sigqueue * ++__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, ++ int override_rlimit) ++{ ++ return __sigqueue_do_alloc(sig, t, flags, override_rlimit, 0); ++} ++ + static void __sigqueue_free(struct sigqueue *q) + { + if (q->flags & SIGQUEUE_PREALLOC) +@@ -401,6 +429,21 @@ static void __sigqueue_free(struct sigqu + kmem_cache_free(sigqueue_cachep, q); + } + ++static void sigqueue_free_current(struct sigqueue *q) ++{ ++ struct user_struct *up; ++ ++ if (q->flags & SIGQUEUE_PREALLOC) ++ return; ++ ++ up = q->user; ++ if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) { ++ atomic_dec(&up->sigpending); ++ free_uid(up); ++ } else ++ __sigqueue_free(q); ++} ++ + void flush_sigqueue(struct sigpending *queue) + { + struct sigqueue *q; +@@ -414,6 +457,21 @@ void flush_sigqueue(struct sigpending *q + } + + /* ++ * Called from __exit_signal. Flush tsk->pending and ++ * tsk->sigqueue_cache ++ */ ++void flush_task_sigqueue(struct task_struct *tsk) ++{ ++ struct sigqueue *q; ++ ++ flush_sigqueue(&tsk->pending); ++ ++ q = get_task_cache(tsk); ++ if (q) ++ kmem_cache_free(sigqueue_cachep, q); ++} ++ ++/* + * Flush all pending signals for this kthread. + */ + void flush_signals(struct task_struct *t) +@@ -525,7 +583,7 @@ static void collect_signal(int sig, stru + still_pending: + list_del_init(&first->list); + copy_siginfo(info, &first->info); +- __sigqueue_free(first); ++ sigqueue_free_current(first); + } else { + /* + * Ok, it wasn't in the queue. This must be +@@ -560,6 +618,8 @@ int dequeue_signal(struct task_struct *t + { + int signr; + ++ WARN_ON_ONCE(tsk != current); ++ + /* We only dequeue private signals from ourselves, we don't let + * signalfd steal them + */ +@@ -1485,7 +1545,8 @@ EXPORT_SYMBOL(kill_pid); + */ + struct sigqueue *sigqueue_alloc(void) + { +- struct sigqueue *q = __sigqueue_alloc(-1, current, GFP_KERNEL, 0); ++ /* Preallocated sigqueue objects always from the slabcache ! */ ++ struct sigqueue *q = __sigqueue_do_alloc(-1, current, GFP_KERNEL, 0, 1); + + if (q) + q->flags |= SIGQUEUE_PREALLOC; diff --git a/patches/features/all/rt/skbufhead-raw-lock.patch b/patches/features/all/rt/skbufhead-raw-lock.patch new file mode 100644 index 00000000000..6b464e09382 --- /dev/null +++ b/patches/features/all/rt/skbufhead-raw-lock.patch @@ -0,0 +1,158 @@ +From: Thomas Gleixner +Date: Tue, 12 Jul 2011 15:38:34 +0200 +Subject: net: Use skbufhead with raw lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the rps lock as rawlock so we can keep irq-off regions. It looks low +latency. However we can't kfree() from this context therefore we defer this +to the softirq and use the tofree_queue list for it (similar to process_queue). + +Signed-off-by: Thomas Gleixner +--- + include/linux/netdevice.h | 1 + + include/linux/skbuff.h | 7 +++++++ + net/core/dev.c | 31 ++++++++++++++++++++++++------- + 3 files changed, 32 insertions(+), 7 deletions(-) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -2846,6 +2846,7 @@ struct softnet_data { + unsigned int dropped; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; ++ struct sk_buff_head tofree_queue; + + }; + +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h +@@ -284,6 +284,7 @@ struct sk_buff_head { + + __u32 qlen; + spinlock_t lock; ++ raw_spinlock_t raw_lock; + }; + + struct sk_buff; +@@ -1573,6 +1574,12 @@ static inline void skb_queue_head_init(s + __skb_queue_head_init(list); + } + ++static inline void skb_queue_head_init_raw(struct sk_buff_head *list) ++{ ++ raw_spin_lock_init(&list->raw_lock); ++ __skb_queue_head_init(list); ++} ++ + static inline void skb_queue_head_init_class(struct sk_buff_head *list, + struct lock_class_key *class) + { +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -211,14 +211,14 @@ static inline struct hlist_head *dev_ind + static inline void rps_lock(struct softnet_data *sd) + { + #ifdef CONFIG_RPS +- spin_lock(&sd->input_pkt_queue.lock); ++ raw_spin_lock(&sd->input_pkt_queue.raw_lock); + #endif + } + + static inline void rps_unlock(struct softnet_data *sd) + { + #ifdef CONFIG_RPS +- spin_unlock(&sd->input_pkt_queue.lock); ++ raw_spin_unlock(&sd->input_pkt_queue.raw_lock); + #endif + } + +@@ -4315,7 +4315,7 @@ static void flush_backlog(struct work_st + skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) { + if (skb->dev->reg_state == NETREG_UNREGISTERING) { + __skb_unlink(skb, &sd->input_pkt_queue); +- kfree_skb(skb); ++ __skb_queue_tail(&sd->tofree_queue, skb); + input_queue_head_incr(sd); + } + } +@@ -4325,11 +4325,14 @@ static void flush_backlog(struct work_st + skb_queue_walk_safe(&sd->process_queue, skb, tmp) { + if (skb->dev->reg_state == NETREG_UNREGISTERING) { + __skb_unlink(skb, &sd->process_queue); +- kfree_skb(skb); ++ __skb_queue_tail(&sd->tofree_queue, skb); + input_queue_head_incr(sd); + } + } ++ if (!skb_queue_empty(&sd->tofree_queue)) ++ raise_softirq_irqoff(NET_RX_SOFTIRQ); + local_bh_enable(); ++ + } + + static void flush_all_backlogs(void) +@@ -4852,7 +4855,9 @@ static int process_backlog(struct napi_s + while (again) { + struct sk_buff *skb; + ++ local_irq_disable(); + while ((skb = __skb_dequeue(&sd->process_queue))) { ++ local_irq_enable(); + rcu_read_lock(); + __netif_receive_skb(skb); + rcu_read_unlock(); +@@ -4860,9 +4865,9 @@ static int process_backlog(struct napi_s + if (++work >= quota) + return work; + ++ local_irq_disable(); + } + +- local_irq_disable(); + rps_lock(sd); + if (skb_queue_empty(&sd->input_pkt_queue)) { + /* +@@ -5204,13 +5209,21 @@ static __latent_entropy void net_rx_acti + struct softnet_data *sd = this_cpu_ptr(&softnet_data); + unsigned long time_limit = jiffies + 2; + int budget = netdev_budget; ++ struct sk_buff_head tofree_q; ++ struct sk_buff *skb; + LIST_HEAD(list); + LIST_HEAD(repoll); + ++ __skb_queue_head_init(&tofree_q); ++ + local_irq_disable(); ++ skb_queue_splice_init(&sd->tofree_queue, &tofree_q); + list_splice_init(&sd->poll_list, &list); + local_irq_enable(); + ++ while ((skb = __skb_dequeue(&tofree_q))) ++ kfree_skb(skb); ++ + for (;;) { + struct napi_struct *n; + +@@ -8013,6 +8026,9 @@ static int dev_cpu_callback(struct notif + netif_rx_ni(skb); + input_queue_head_incr(oldsd); + } ++ while ((skb = __skb_dequeue(&oldsd->tofree_queue))) { ++ kfree_skb(skb); ++ } + + return NOTIFY_OK; + } +@@ -8317,8 +8333,9 @@ static int __init net_dev_init(void) + + INIT_WORK(flush, flush_backlog); + +- skb_queue_head_init(&sd->input_pkt_queue); +- skb_queue_head_init(&sd->process_queue); ++ skb_queue_head_init_raw(&sd->input_pkt_queue); ++ skb_queue_head_init_raw(&sd->process_queue); ++ skb_queue_head_init_raw(&sd->tofree_queue); + INIT_LIST_HEAD(&sd->poll_list); + sd->output_queue_tailp = &sd->output_queue; + #ifdef CONFIG_RPS diff --git a/patches/features/all/rt/slub-disable-SLUB_CPU_PARTIAL.patch b/patches/features/all/rt/slub-disable-SLUB_CPU_PARTIAL.patch new file mode 100644 index 00000000000..5c615fe3151 --- /dev/null +++ b/patches/features/all/rt/slub-disable-SLUB_CPU_PARTIAL.patch @@ -0,0 +1,48 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 15 Apr 2015 19:00:47 +0200 +Subject: slub: Disable SLUB_CPU_PARTIAL +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 +|in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 +|1 lock held by rcuop/7/87: +| #0: (rcu_callback){......}, at: [] rcu_nocb_kthread+0x1ca/0x5d0 +|Preemption disabled at:[] put_cpu_partial+0x29/0x220 +| +|CPU: 0 PID: 87 Comm: rcuop/7 Tainted: G W 4.0.0-rt0+ #477 +|Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014 +| 000000000007a9fc ffff88013987baf8 ffffffff817441c7 0000000000000007 +| 0000000000000000 ffff88013987bb18 ffffffff810eee51 0000000000000000 +| ffff88013fc10200 ffff88013987bb48 ffffffff8174a1c4 000000000007a9fc +|Call Trace: +| [] dump_stack+0x4f/0x90 +| [] ___might_sleep+0x121/0x1b0 +| [] rt_spin_lock+0x24/0x60 +| [] __free_pages_ok+0xaa/0x540 +| [] __free_pages+0x1d/0x30 +| [] __free_slab+0xc5/0x1e0 +| [] free_delayed+0x56/0x70 +| [] put_cpu_partial+0x14d/0x220 +| [] __slab_free+0x158/0x2c0 +| [] kmem_cache_free+0x221/0x2d0 +| [] file_free_rcu+0x2c/0x40 +| [] rcu_nocb_kthread+0x243/0x5d0 +| [] kthread+0xfc/0x120 +| [] ret_from_fork+0x58/0x90 + +Signed-off-by: Sebastian Andrzej Siewior +--- + init/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1799,7 +1799,7 @@ config SLAB_FREELIST_RANDOM + + config SLUB_CPU_PARTIAL + default y +- depends on SLUB && SMP ++ depends on SLUB && SMP && !PREEMPT_RT_FULL + bool "SLUB per cpu partial cache" + help + Per cpu partial caches accellerate objects allocation and freeing diff --git a/patches/features/all/rt/slub-enable-irqs-for-no-wait.patch b/patches/features/all/rt/slub-enable-irqs-for-no-wait.patch new file mode 100644 index 00000000000..da7e537361c --- /dev/null +++ b/patches/features/all/rt/slub-enable-irqs-for-no-wait.patch @@ -0,0 +1,48 @@ +Subject: slub: Enable irqs for __GFP_WAIT +From: Thomas Gleixner +Date: Wed, 09 Jan 2013 12:08:15 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +SYSTEM_RUNNING might be too late for enabling interrupts. Allocations +with GFP_WAIT can happen before that. So use this as an indicator. + +Signed-off-by: Thomas Gleixner +--- + mm/slub.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -1529,14 +1529,17 @@ static struct page *allocate_slab(struct + void *start, *p; + int idx, order; + bool shuffle; ++ bool enableirqs = false; + + flags &= gfp_allowed_mask; + ++ if (gfpflags_allow_blocking(flags)) ++ enableirqs = true; + #ifdef CONFIG_PREEMPT_RT_FULL + if (system_state == SYSTEM_RUNNING) +-#else +- if (gfpflags_allow_blocking(flags)) ++ enableirqs = true; + #endif ++ if (enableirqs) + local_irq_enable(); + + flags |= s->allocflags; +@@ -1611,11 +1614,7 @@ static struct page *allocate_slab(struct + page->frozen = 1; + + out: +-#ifdef CONFIG_PREEMPT_RT_FULL +- if (system_state == SYSTEM_RUNNING) +-#else +- if (gfpflags_allow_blocking(flags)) +-#endif ++ if (enableirqs) + local_irq_disable(); + if (!page) + return NULL; diff --git a/patches/features/all/rt/snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch b/patches/features/all/rt/snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch new file mode 100644 index 00000000000..9cfdc407cc1 --- /dev/null +++ b/patches/features/all/rt/snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch @@ -0,0 +1,70 @@ +From: Mike Galbraith +Date: Wed, 18 Feb 2015 15:09:23 +0100 +Subject: snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled() splats +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Locking functions previously using read_lock_irq()/read_lock_irqsave() were +changed to local_irq_disable/save(), leading to gripes. Use nort variants. + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 +|in_atomic(): 0, irqs_disabled(): 1, pid: 5947, name: alsa-sink-ALC88 +|CPU: 5 PID: 5947 Comm: alsa-sink-ALC88 Not tainted 3.18.7-rt1 #9 +|Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.404 11/06/2014 +| ffff880409316240 ffff88040866fa38 ffffffff815bdeb5 0000000000000002 +| 0000000000000000 ffff88040866fa58 ffffffff81073c86 ffffffffa03b2640 +| ffff88040239ec00 ffff88040866fa78 ffffffff815c3d34 ffffffffa03b2640 +|Call Trace: +| [] dump_stack+0x4f/0x9e +| [] __might_sleep+0xe6/0x150 +| [] __rt_spin_lock+0x24/0x50 +| [] rt_read_lock+0x34/0x40 +| [] snd_pcm_stream_lock+0x29/0x70 [snd_pcm] +| [] snd_pcm_playback_poll+0x5d/0x120 [snd_pcm] +| [] do_sys_poll+0x322/0x5b0 +| [] SyS_ppoll+0x1a8/0x1c0 +| [] system_call_fastpath+0x16/0x1b + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + sound/core/pcm_native.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/sound/core/pcm_native.c ++++ b/sound/core/pcm_native.c +@@ -135,7 +135,7 @@ EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock) + void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream) + { + if (!substream->pcm->nonatomic) +- local_irq_disable(); ++ local_irq_disable_nort(); + snd_pcm_stream_lock(substream); + } + EXPORT_SYMBOL_GPL(snd_pcm_stream_lock_irq); +@@ -150,7 +150,7 @@ void snd_pcm_stream_unlock_irq(struct sn + { + snd_pcm_stream_unlock(substream); + if (!substream->pcm->nonatomic) +- local_irq_enable(); ++ local_irq_enable_nort(); + } + EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock_irq); + +@@ -158,7 +158,7 @@ unsigned long _snd_pcm_stream_lock_irqsa + { + unsigned long flags = 0; + if (!substream->pcm->nonatomic) +- local_irq_save(flags); ++ local_irq_save_nort(flags); + snd_pcm_stream_lock(substream); + return flags; + } +@@ -176,7 +176,7 @@ void snd_pcm_stream_unlock_irqrestore(st + { + snd_pcm_stream_unlock(substream); + if (!substream->pcm->nonatomic) +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock_irqrestore); + diff --git a/patches/features/all/rt/softirq-disable-softirq-stacks-for-rt.patch b/patches/features/all/rt/softirq-disable-softirq-stacks-for-rt.patch new file mode 100644 index 00000000000..d54630adf1d --- /dev/null +++ b/patches/features/all/rt/softirq-disable-softirq-stacks-for-rt.patch @@ -0,0 +1,157 @@ +Subject: softirq: Disable softirq stacks for RT +From: Thomas Gleixner +Date: Mon, 18 Jul 2011 13:59:17 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Disable extra stacks for softirqs. We want to preempt softirqs and +having them on special IRQ-stack does not make this easier. + +Signed-off-by: Thomas Gleixner +--- + arch/powerpc/kernel/irq.c | 2 ++ + arch/powerpc/kernel/misc_32.S | 2 ++ + arch/powerpc/kernel/misc_64.S | 2 ++ + arch/sh/kernel/irq.c | 2 ++ + arch/sparc/kernel/irq_64.c | 2 ++ + arch/x86/entry/entry_64.S | 2 ++ + arch/x86/kernel/irq_32.c | 2 ++ + include/linux/interrupt.h | 2 +- + 8 files changed, 15 insertions(+), 1 deletion(-) + +--- a/arch/powerpc/kernel/irq.c ++++ b/arch/powerpc/kernel/irq.c +@@ -638,6 +638,7 @@ void irq_ctx_init(void) + } + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + void do_softirq_own_stack(void) + { + struct thread_info *curtp, *irqtp; +@@ -655,6 +656,7 @@ void do_softirq_own_stack(void) + if (irqtp->flags) + set_bits(irqtp->flags, &curtp->flags); + } ++#endif + + irq_hw_number_t virq_to_hw(unsigned int virq) + { +--- a/arch/powerpc/kernel/misc_32.S ++++ b/arch/powerpc/kernel/misc_32.S +@@ -41,6 +41,7 @@ + * We store the saved ksp_limit in the unused part + * of the STACK_FRAME_OVERHEAD + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + _GLOBAL(call_do_softirq) + mflr r0 + stw r0,4(r1) +@@ -57,6 +58,7 @@ + stw r10,THREAD+KSP_LIMIT(r2) + mtlr r0 + blr ++#endif + + /* + * void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp); +--- a/arch/powerpc/kernel/misc_64.S ++++ b/arch/powerpc/kernel/misc_64.S +@@ -31,6 +31,7 @@ + + .text + ++#ifndef CONFIG_PREEMPT_RT_FULL + _GLOBAL(call_do_softirq) + mflr r0 + std r0,16(r1) +@@ -41,6 +42,7 @@ + ld r0,16(r1) + mtlr r0 + blr ++#endif + + _GLOBAL(call_do_irq) + mflr r0 +--- a/arch/sh/kernel/irq.c ++++ b/arch/sh/kernel/irq.c +@@ -147,6 +147,7 @@ void irq_ctx_exit(int cpu) + hardirq_ctx[cpu] = NULL; + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + void do_softirq_own_stack(void) + { + struct thread_info *curctx; +@@ -174,6 +175,7 @@ void do_softirq_own_stack(void) + "r5", "r6", "r7", "r8", "r9", "r15", "t", "pr" + ); + } ++#endif + #else + static inline void handle_one_irq(unsigned int irq) + { +--- a/arch/sparc/kernel/irq_64.c ++++ b/arch/sparc/kernel/irq_64.c +@@ -854,6 +854,7 @@ void __irq_entry handler_irq(int pil, st + set_irq_regs(old_regs); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + void do_softirq_own_stack(void) + { + void *orig_sp, *sp = softirq_stack[smp_processor_id()]; +@@ -868,6 +869,7 @@ void do_softirq_own_stack(void) + __asm__ __volatile__("mov %0, %%sp" + : : "r" (orig_sp)); + } ++#endif + + #ifdef CONFIG_HOTPLUG_CPU + void fixup_irqs(void) +--- a/arch/x86/entry/entry_64.S ++++ b/arch/x86/entry/entry_64.S +@@ -894,6 +894,7 @@ EXPORT_SYMBOL(native_load_gs_index) + jmp 2b + .previous + ++#ifndef CONFIG_PREEMPT_RT_FULL + /* Call softirq on interrupt stack. Interrupts are off. */ + ENTRY(do_softirq_own_stack) + pushq %rbp +@@ -906,6 +907,7 @@ ENTRY(do_softirq_own_stack) + decl PER_CPU_VAR(irq_count) + ret + END(do_softirq_own_stack) ++#endif + + #ifdef CONFIG_XEN + idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0 +--- a/arch/x86/kernel/irq_32.c ++++ b/arch/x86/kernel/irq_32.c +@@ -127,6 +127,7 @@ void irq_ctx_init(int cpu) + cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu)); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL + void do_softirq_own_stack(void) + { + struct irq_stack *irqstk; +@@ -143,6 +144,7 @@ void do_softirq_own_stack(void) + + call_on_stack(__do_softirq, isp); + } ++#endif + + bool handle_irq(struct irq_desc *desc, struct pt_regs *regs) + { +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -472,7 +472,7 @@ struct softirq_action + asmlinkage void do_softirq(void); + asmlinkage void __do_softirq(void); + +-#ifdef __ARCH_HAS_DO_SOFTIRQ ++#if defined(__ARCH_HAS_DO_SOFTIRQ) && !defined(CONFIG_PREEMPT_RT_FULL) + void do_softirq_own_stack(void); + #else + static inline void do_softirq_own_stack(void) diff --git a/patches/features/all/rt/softirq-preempt-fix-3-re.patch b/patches/features/all/rt/softirq-preempt-fix-3-re.patch new file mode 100644 index 00000000000..504896598cb --- /dev/null +++ b/patches/features/all/rt/softirq-preempt-fix-3-re.patch @@ -0,0 +1,170 @@ +Subject: softirq: Check preemption after reenabling interrupts +From: Thomas Gleixner +Date: Sun, 13 Nov 2011 17:17:09 +0100 (CET) +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +raise_softirq_irqoff() disables interrupts and wakes the softirq +daemon, but after reenabling interrupts there is no preemption check, +so the execution of the softirq thread might be delayed arbitrarily. + +In principle we could add that check to local_irq_enable/restore, but +that's overkill as the rasie_softirq_irqoff() sections are the only +ones which show this behaviour. + +Reported-by: Carsten Emde +Signed-off-by: Thomas Gleixner + +--- + block/blk-softirq.c | 3 +++ + include/linux/preempt.h | 3 +++ + lib/irq_poll.c | 5 +++++ + net/core/dev.c | 7 +++++++ + 4 files changed, 18 insertions(+) + +--- a/block/blk-softirq.c ++++ b/block/blk-softirq.c +@@ -51,6 +51,7 @@ static void trigger_softirq(void *data) + raise_softirq_irqoff(BLOCK_SOFTIRQ); + + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + + /* +@@ -89,6 +90,7 @@ static int blk_softirq_cpu_dead(unsigned + this_cpu_ptr(&blk_cpu_done)); + raise_softirq_irqoff(BLOCK_SOFTIRQ); + local_irq_enable(); ++ preempt_check_resched_rt(); + + return 0; + } +@@ -141,6 +143,7 @@ void __blk_complete_request(struct reque + goto do_local; + + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + + /** +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -160,8 +160,10 @@ do { \ + + #ifdef CONFIG_PREEMPT_RT_BASE + # define preempt_enable_no_resched() sched_preempt_enable_no_resched() ++# define preempt_check_resched_rt() preempt_check_resched() + #else + # define preempt_enable_no_resched() preempt_enable() ++# define preempt_check_resched_rt() barrier(); + #endif + + #define preemptible() (preempt_count() == 0 && !irqs_disabled()) +@@ -232,6 +234,7 @@ do { \ + #define preempt_disable_notrace() barrier() + #define preempt_enable_no_resched_notrace() barrier() + #define preempt_enable_notrace() barrier() ++#define preempt_check_resched_rt() barrier() + #define preemptible() 0 + + #endif /* CONFIG_PREEMPT_COUNT */ +--- a/lib/irq_poll.c ++++ b/lib/irq_poll.c +@@ -36,6 +36,7 @@ void irq_poll_sched(struct irq_poll *iop + list_add_tail(&iop->list, this_cpu_ptr(&blk_cpu_iopoll)); + __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ); + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + EXPORT_SYMBOL(irq_poll_sched); + +@@ -71,6 +72,7 @@ void irq_poll_complete(struct irq_poll * + local_irq_save(flags); + __irq_poll_complete(iop); + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + EXPORT_SYMBOL(irq_poll_complete); + +@@ -95,6 +97,7 @@ static void __latent_entropy irq_poll_so + } + + local_irq_enable(); ++ preempt_check_resched_rt(); + + /* Even though interrupts have been re-enabled, this + * access is safe because interrupts can only add new +@@ -132,6 +135,7 @@ static void __latent_entropy irq_poll_so + __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ); + + local_irq_enable(); ++ preempt_check_resched_rt(); + } + + /** +@@ -195,6 +199,7 @@ static int irq_poll_cpu_dead(unsigned in + this_cpu_ptr(&blk_cpu_iopoll)); + __raise_softirq_irqoff(IRQ_POLL_SOFTIRQ); + local_irq_enable(); ++ preempt_check_resched_rt(); + + return 0; + } +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -2263,6 +2263,7 @@ static void __netif_reschedule(struct Qd + sd->output_queue_tailp = &q->next_sched; + raise_softirq_irqoff(NET_TX_SOFTIRQ); + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + + void __netif_schedule(struct Qdisc *q) +@@ -2344,6 +2345,7 @@ void __dev_kfree_skb_irq(struct sk_buff + __this_cpu_write(softnet_data.completion_queue, skb); + raise_softirq_irqoff(NET_TX_SOFTIRQ); + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + EXPORT_SYMBOL(__dev_kfree_skb_irq); + +@@ -3763,6 +3765,7 @@ static int enqueue_to_backlog(struct sk_ + rps_unlock(sd); + + local_irq_restore(flags); ++ preempt_check_resched_rt(); + + atomic_long_inc(&skb->dev->rx_dropped); + kfree_skb(skb); +@@ -4807,6 +4810,7 @@ static void net_rps_action_and_irq_enabl + sd->rps_ipi_list = NULL; + + local_irq_enable(); ++ preempt_check_resched_rt(); + + /* Send pending IPI's to kick RPS processing on remote cpus. */ + while (remsd) { +@@ -4820,6 +4824,7 @@ static void net_rps_action_and_irq_enabl + } else + #endif + local_irq_enable(); ++ preempt_check_resched_rt(); + } + + static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) +@@ -4897,6 +4902,7 @@ void __napi_schedule(struct napi_struct + local_irq_save(flags); + ____napi_schedule(this_cpu_ptr(&softnet_data), n); + local_irq_restore(flags); ++ preempt_check_resched_rt(); + } + EXPORT_SYMBOL(__napi_schedule); + +@@ -7998,6 +8004,7 @@ static int dev_cpu_callback(struct notif + + raise_softirq_irqoff(NET_TX_SOFTIRQ); + local_irq_enable(); ++ preempt_check_resched_rt(); + + /* Process offline CPU's input_pkt_queue */ + while ((skb = __skb_dequeue(&oldsd->process_queue))) { diff --git a/patches/features/all/rt/softirq-split-locks.patch b/patches/features/all/rt/softirq-split-locks.patch new file mode 100644 index 00000000000..a6ce826dd33 --- /dev/null +++ b/patches/features/all/rt/softirq-split-locks.patch @@ -0,0 +1,833 @@ +From: Thomas Gleixner +Date: Thu, 04 Oct 2012 14:20:47 +0100 +Subject: softirq: Split softirq locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The 3.x RT series removed the split softirq implementation in favour +of pushing softirq processing into the context of the thread which +raised it. Though this prevents us from handling the various softirqs +at different priorities. Now instead of reintroducing the split +softirq threads we split the locks which serialize the softirq +processing. + +If a softirq is raised in context of a thread, then the softirq is +noted on a per thread field, if the thread is in a bh disabled +region. If the softirq is raised from hard interrupt context, then the +bit is set in the flag field of ksoftirqd and ksoftirqd is invoked. +When a thread leaves a bh disabled region, then it tries to execute +the softirqs which have been raised in its own context. It acquires +the per softirq / per cpu lock for the softirq and then checks, +whether the softirq is still pending in the per cpu +local_softirq_pending() field. If yes, it runs the softirq. If no, +then some other task executed it already. This allows for zero config +softirq elevation in the context of user space tasks or interrupt +threads. + +Signed-off-by: Thomas Gleixner +--- + include/linux/bottom_half.h | 34 +++ + include/linux/interrupt.h | 15 + + include/linux/preempt.h | 15 + + include/linux/sched.h | 3 + init/main.c | 1 + kernel/softirq.c | 492 +++++++++++++++++++++++++++++++++++++------- + kernel/time/tick-sched.c | 9 + net/core/dev.c | 6 + 8 files changed, 480 insertions(+), 95 deletions(-) + +--- a/include/linux/bottom_half.h ++++ b/include/linux/bottom_half.h +@@ -3,6 +3,39 @@ + + #include + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ ++extern void __local_bh_disable(void); ++extern void _local_bh_enable(void); ++extern void __local_bh_enable(void); ++ ++static inline void local_bh_disable(void) ++{ ++ __local_bh_disable(); ++} ++ ++static inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt) ++{ ++ __local_bh_disable(); ++} ++ ++static inline void local_bh_enable(void) ++{ ++ __local_bh_enable(); ++} ++ ++static inline void __local_bh_enable_ip(unsigned long ip, unsigned int cnt) ++{ ++ __local_bh_enable(); ++} ++ ++static inline void local_bh_enable_ip(unsigned long ip) ++{ ++ __local_bh_enable(); ++} ++ ++#else ++ + #ifdef CONFIG_TRACE_IRQFLAGS + extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt); + #else +@@ -30,5 +63,6 @@ static inline void local_bh_enable(void) + { + __local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET); + } ++#endif + + #endif /* _LINUX_BH_H */ +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -469,10 +469,11 @@ struct softirq_action + void (*action)(struct softirq_action *); + }; + ++#ifndef CONFIG_PREEMPT_RT_FULL + asmlinkage void do_softirq(void); + asmlinkage void __do_softirq(void); +- +-#if defined(__ARCH_HAS_DO_SOFTIRQ) && !defined(CONFIG_PREEMPT_RT_FULL) ++static inline void thread_do_softirq(void) { do_softirq(); } ++#ifdef __ARCH_HAS_DO_SOFTIRQ + void do_softirq_own_stack(void); + #else + static inline void do_softirq_own_stack(void) +@@ -480,6 +481,9 @@ static inline void do_softirq_own_stack( + __do_softirq(); + } + #endif ++#else ++extern void thread_do_softirq(void); ++#endif + + extern void open_softirq(int nr, void (*action)(struct softirq_action *)); + extern void softirq_init(void); +@@ -487,6 +491,7 @@ extern void __raise_softirq_irqoff(unsig + + extern void raise_softirq_irqoff(unsigned int nr); + extern void raise_softirq(unsigned int nr); ++extern void softirq_check_pending_idle(void); + + DECLARE_PER_CPU(struct task_struct *, ksoftirqd); + +@@ -644,6 +649,12 @@ void tasklet_hrtimer_cancel(struct taskl + tasklet_kill(&ttimer->tasklet); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++extern void softirq_early_init(void); ++#else ++static inline void softirq_early_init(void) { } ++#endif ++ + /* + * Autoprobing for irqs: + * +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -50,7 +50,11 @@ + #define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT) + #define NMI_OFFSET (1UL << NMI_SHIFT) + +-#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) ++#ifndef CONFIG_PREEMPT_RT_FULL ++# define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) ++#else ++# define SOFTIRQ_DISABLE_OFFSET (0) ++#endif + + /* We use the MSB mostly because its available */ + #define PREEMPT_NEED_RESCHED 0x80000000 +@@ -59,9 +63,15 @@ + #include + + #define hardirq_count() (preempt_count() & HARDIRQ_MASK) +-#define softirq_count() (preempt_count() & SOFTIRQ_MASK) + #define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK \ + | NMI_MASK)) ++#ifndef CONFIG_PREEMPT_RT_FULL ++# define softirq_count() (preempt_count() & SOFTIRQ_MASK) ++# define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET) ++#else ++# define softirq_count() (0UL) ++extern int in_serving_softirq(void); ++#endif + + /* + * Are we doing bottom half or hardware interrupt processing? +@@ -72,7 +82,6 @@ + #define in_irq() (hardirq_count()) + #define in_softirq() (softirq_count()) + #define in_interrupt() (irq_count()) +-#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET) + + /* + * Are we in NMI context? +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1964,6 +1964,8 @@ struct task_struct { + #endif + #ifdef CONFIG_PREEMPT_RT_BASE + struct rcu_head put_rcu; ++ int softirq_nestcnt; ++ unsigned int softirqs_raised; + #endif + #ifdef CONFIG_DEBUG_ATOMIC_SLEEP + unsigned long task_state_change; +@@ -2280,6 +2282,7 @@ extern void thread_group_cputime_adjuste + /* + * Per process flags + */ ++#define PF_IN_SOFTIRQ 0x00000001 /* Task is serving softirq */ + #define PF_EXITING 0x00000004 /* getting shut down */ + #define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */ + #define PF_VCPU 0x00000010 /* I'm a virtual CPU */ +--- a/init/main.c ++++ b/init/main.c +@@ -507,6 +507,7 @@ asmlinkage __visible void __init start_k + setup_command_line(command_line); + setup_nr_cpu_ids(); + setup_per_cpu_areas(); ++ softirq_early_init(); + boot_cpu_state_init(); + smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ + +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + + #define CREATE_TRACE_POINTS +@@ -63,6 +64,98 @@ const char * const softirq_to_name[NR_SO + "TASKLET", "SCHED", "HRTIMER", "RCU" + }; + ++#ifdef CONFIG_NO_HZ_COMMON ++# ifdef CONFIG_PREEMPT_RT_FULL ++ ++struct softirq_runner { ++ struct task_struct *runner[NR_SOFTIRQS]; ++}; ++ ++static DEFINE_PER_CPU(struct softirq_runner, softirq_runners); ++ ++static inline void softirq_set_runner(unsigned int sirq) ++{ ++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners); ++ ++ sr->runner[sirq] = current; ++} ++ ++static inline void softirq_clr_runner(unsigned int sirq) ++{ ++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners); ++ ++ sr->runner[sirq] = NULL; ++} ++ ++/* ++ * On preempt-rt a softirq running context might be blocked on a ++ * lock. There might be no other runnable task on this CPU because the ++ * lock owner runs on some other CPU. So we have to go into idle with ++ * the pending bit set. Therefor we need to check this otherwise we ++ * warn about false positives which confuses users and defeats the ++ * whole purpose of this test. ++ * ++ * This code is called with interrupts disabled. ++ */ ++void softirq_check_pending_idle(void) ++{ ++ static int rate_limit; ++ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners); ++ u32 warnpending; ++ int i; ++ ++ if (rate_limit >= 10) ++ return; ++ ++ warnpending = local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK; ++ for (i = 0; i < NR_SOFTIRQS; i++) { ++ struct task_struct *tsk = sr->runner[i]; ++ ++ /* ++ * The wakeup code in rtmutex.c wakes up the task ++ * _before_ it sets pi_blocked_on to NULL under ++ * tsk->pi_lock. So we need to check for both: state ++ * and pi_blocked_on. ++ */ ++ if (tsk) { ++ raw_spin_lock(&tsk->pi_lock); ++ if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) { ++ /* Clear all bits pending in that task */ ++ warnpending &= ~(tsk->softirqs_raised); ++ warnpending &= ~(1 << i); ++ } ++ raw_spin_unlock(&tsk->pi_lock); ++ } ++ } ++ ++ if (warnpending) { ++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n", ++ warnpending); ++ rate_limit++; ++ } ++} ++# else ++/* ++ * On !PREEMPT_RT we just printk rate limited: ++ */ ++void softirq_check_pending_idle(void) ++{ ++ static int rate_limit; ++ ++ if (rate_limit < 10 && ++ (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) { ++ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n", ++ local_softirq_pending()); ++ rate_limit++; ++ } ++} ++# endif ++ ++#else /* !CONFIG_NO_HZ_COMMON */ ++static inline void softirq_set_runner(unsigned int sirq) { } ++static inline void softirq_clr_runner(unsigned int sirq) { } ++#endif ++ + /* + * we cannot loop indefinitely here to avoid userspace starvation, + * but we also don't want to introduce a worst case 1/HZ latency +@@ -78,6 +171,26 @@ static void wakeup_softirqd(void) + wake_up_process(tsk); + } + ++static void handle_softirq(unsigned int vec_nr) ++{ ++ struct softirq_action *h = softirq_vec + vec_nr; ++ int prev_count; ++ ++ prev_count = preempt_count(); ++ ++ kstat_incr_softirqs_this_cpu(vec_nr); ++ ++ trace_softirq_entry(vec_nr); ++ h->action(h); ++ trace_softirq_exit(vec_nr); ++ if (unlikely(prev_count != preempt_count())) { ++ pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n", ++ vec_nr, softirq_to_name[vec_nr], h->action, ++ prev_count, preempt_count()); ++ preempt_count_set(prev_count); ++ } ++} ++ + /* + * If ksoftirqd is scheduled, we do not want to process pending softirqs + * right now. Let ksoftirqd handle this at its own rate, to get fairness. +@@ -89,6 +202,48 @@ static bool ksoftirqd_running(void) + return tsk && (tsk->state == TASK_RUNNING); + } + ++#ifndef CONFIG_PREEMPT_RT_FULL ++static inline int ksoftirqd_softirq_pending(void) ++{ ++ return local_softirq_pending(); ++} ++ ++static void handle_pending_softirqs(u32 pending) ++{ ++ struct softirq_action *h = softirq_vec; ++ int softirq_bit; ++ ++ local_irq_enable(); ++ ++ h = softirq_vec; ++ ++ while ((softirq_bit = ffs(pending))) { ++ unsigned int vec_nr; ++ ++ h += softirq_bit - 1; ++ vec_nr = h - softirq_vec; ++ handle_softirq(vec_nr); ++ ++ h++; ++ pending >>= softirq_bit; ++ } ++ ++ rcu_bh_qs(); ++ local_irq_disable(); ++} ++ ++static void run_ksoftirqd(unsigned int cpu) ++{ ++ local_irq_disable(); ++ if (ksoftirqd_softirq_pending()) { ++ __do_softirq(); ++ local_irq_enable(); ++ cond_resched_rcu_qs(); ++ return; ++ } ++ local_irq_enable(); ++} ++ + /* + * preempt_count and SOFTIRQ_OFFSET usage: + * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving +@@ -244,10 +399,8 @@ asmlinkage __visible void __softirq_entr + unsigned long end = jiffies + MAX_SOFTIRQ_TIME; + unsigned long old_flags = current->flags; + int max_restart = MAX_SOFTIRQ_RESTART; +- struct softirq_action *h; + bool in_hardirq; + __u32 pending; +- int softirq_bit; + + /* + * Mask out PF_MEMALLOC s current task context is borrowed for the +@@ -266,36 +419,7 @@ asmlinkage __visible void __softirq_entr + /* Reset the pending bitmask before enabling irqs */ + set_softirq_pending(0); + +- local_irq_enable(); +- +- h = softirq_vec; +- +- while ((softirq_bit = ffs(pending))) { +- unsigned int vec_nr; +- int prev_count; +- +- h += softirq_bit - 1; +- +- vec_nr = h - softirq_vec; +- prev_count = preempt_count(); +- +- kstat_incr_softirqs_this_cpu(vec_nr); +- +- trace_softirq_entry(vec_nr); +- h->action(h); +- trace_softirq_exit(vec_nr); +- if (unlikely(prev_count != preempt_count())) { +- pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n", +- vec_nr, softirq_to_name[vec_nr], h->action, +- prev_count, preempt_count()); +- preempt_count_set(prev_count); +- } +- h++; +- pending >>= softirq_bit; +- } +- +- rcu_bh_qs(); +- local_irq_disable(); ++ handle_pending_softirqs(pending); + + pending = local_softirq_pending(); + if (pending) { +@@ -332,6 +456,246 @@ asmlinkage __visible void do_softirq(voi + } + + /* ++ * This function must run with irqs disabled! ++ */ ++void raise_softirq_irqoff(unsigned int nr) ++{ ++ __raise_softirq_irqoff(nr); ++ ++ /* ++ * If we're in an interrupt or softirq, we're done ++ * (this also catches softirq-disabled code). We will ++ * actually run the softirq once we return from ++ * the irq or softirq. ++ * ++ * Otherwise we wake up ksoftirqd to make sure we ++ * schedule the softirq soon. ++ */ ++ if (!in_interrupt()) ++ wakeup_softirqd(); ++} ++ ++void __raise_softirq_irqoff(unsigned int nr) ++{ ++ trace_softirq_raise(nr); ++ or_softirq_pending(1UL << nr); ++} ++ ++static inline void local_bh_disable_nort(void) { local_bh_disable(); } ++static inline void _local_bh_enable_nort(void) { _local_bh_enable(); } ++static void ksoftirqd_set_sched_params(unsigned int cpu) { } ++static void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) { } ++ ++#else /* !PREEMPT_RT_FULL */ ++ ++/* ++ * On RT we serialize softirq execution with a cpu local lock per softirq ++ */ ++static DEFINE_PER_CPU(struct local_irq_lock [NR_SOFTIRQS], local_softirq_locks); ++ ++void __init softirq_early_init(void) ++{ ++ int i; ++ ++ for (i = 0; i < NR_SOFTIRQS; i++) ++ local_irq_lock_init(local_softirq_locks[i]); ++} ++ ++static void lock_softirq(int which) ++{ ++ local_lock(local_softirq_locks[which]); ++} ++ ++static void unlock_softirq(int which) ++{ ++ local_unlock(local_softirq_locks[which]); ++} ++ ++static void do_single_softirq(int which) ++{ ++ unsigned long old_flags = current->flags; ++ ++ current->flags &= ~PF_MEMALLOC; ++ vtime_account_irq_enter(current); ++ current->flags |= PF_IN_SOFTIRQ; ++ lockdep_softirq_enter(); ++ local_irq_enable(); ++ handle_softirq(which); ++ local_irq_disable(); ++ lockdep_softirq_exit(); ++ current->flags &= ~PF_IN_SOFTIRQ; ++ vtime_account_irq_enter(current); ++ tsk_restore_flags(current, old_flags, PF_MEMALLOC); ++} ++ ++/* ++ * Called with interrupts disabled. Process softirqs which were raised ++ * in current context (or on behalf of ksoftirqd). ++ */ ++static void do_current_softirqs(void) ++{ ++ while (current->softirqs_raised) { ++ int i = __ffs(current->softirqs_raised); ++ unsigned int pending, mask = (1U << i); ++ ++ current->softirqs_raised &= ~mask; ++ local_irq_enable(); ++ ++ /* ++ * If the lock is contended, we boost the owner to ++ * process the softirq or leave the critical section ++ * now. ++ */ ++ lock_softirq(i); ++ local_irq_disable(); ++ softirq_set_runner(i); ++ /* ++ * Check with the local_softirq_pending() bits, ++ * whether we need to process this still or if someone ++ * else took care of it. ++ */ ++ pending = local_softirq_pending(); ++ if (pending & mask) { ++ set_softirq_pending(pending & ~mask); ++ do_single_softirq(i); ++ } ++ softirq_clr_runner(i); ++ unlock_softirq(i); ++ WARN_ON(current->softirq_nestcnt != 1); ++ } ++} ++ ++void __local_bh_disable(void) ++{ ++ if (++current->softirq_nestcnt == 1) ++ migrate_disable(); ++} ++EXPORT_SYMBOL(__local_bh_disable); ++ ++void __local_bh_enable(void) ++{ ++ if (WARN_ON(current->softirq_nestcnt == 0)) ++ return; ++ ++ local_irq_disable(); ++ if (current->softirq_nestcnt == 1 && current->softirqs_raised) ++ do_current_softirqs(); ++ local_irq_enable(); ++ ++ if (--current->softirq_nestcnt == 0) ++ migrate_enable(); ++} ++EXPORT_SYMBOL(__local_bh_enable); ++ ++int in_serving_softirq(void) ++{ ++ return current->flags & PF_IN_SOFTIRQ; ++} ++EXPORT_SYMBOL(in_serving_softirq); ++ ++/* Called with preemption disabled */ ++static void run_ksoftirqd(unsigned int cpu) ++{ ++ local_irq_disable(); ++ current->softirq_nestcnt++; ++ ++ do_current_softirqs(); ++ current->softirq_nestcnt--; ++ local_irq_enable(); ++ cond_resched_rcu_qs(); ++} ++ ++/* ++ * Called from netif_rx_ni(). Preemption enabled, but migration ++ * disabled. So the cpu can't go away under us. ++ */ ++void thread_do_softirq(void) ++{ ++ if (!in_serving_softirq() && current->softirqs_raised) { ++ current->softirq_nestcnt++; ++ do_current_softirqs(); ++ current->softirq_nestcnt--; ++ } ++} ++ ++static void do_raise_softirq_irqoff(unsigned int nr) ++{ ++ trace_softirq_raise(nr); ++ or_softirq_pending(1UL << nr); ++ ++ /* ++ * If we are not in a hard interrupt and inside a bh disabled ++ * region, we simply raise the flag on current. local_bh_enable() ++ * will make sure that the softirq is executed. Otherwise we ++ * delegate it to ksoftirqd. ++ */ ++ if (!in_irq() && current->softirq_nestcnt) ++ current->softirqs_raised |= (1U << nr); ++ else if (__this_cpu_read(ksoftirqd)) ++ __this_cpu_read(ksoftirqd)->softirqs_raised |= (1U << nr); ++} ++ ++void __raise_softirq_irqoff(unsigned int nr) ++{ ++ do_raise_softirq_irqoff(nr); ++ if (!in_irq() && !current->softirq_nestcnt) ++ wakeup_softirqd(); ++} ++ ++/* ++ * This function must run with irqs disabled! ++ */ ++void raise_softirq_irqoff(unsigned int nr) ++{ ++ do_raise_softirq_irqoff(nr); ++ ++ /* ++ * If we're in an hard interrupt we let irq return code deal ++ * with the wakeup of ksoftirqd. ++ */ ++ if (in_irq()) ++ return; ++ /* ++ * If we are in thread context but outside of a bh disabled ++ * region, we need to wake ksoftirqd as well. ++ * ++ * CHECKME: Some of the places which do that could be wrapped ++ * into local_bh_disable/enable pairs. Though it's unclear ++ * whether this is worth the effort. To find those places just ++ * raise a WARN() if the condition is met. ++ */ ++ if (!current->softirq_nestcnt) ++ wakeup_softirqd(); ++} ++ ++static inline int ksoftirqd_softirq_pending(void) ++{ ++ return current->softirqs_raised; ++} ++ ++static inline void local_bh_disable_nort(void) { } ++static inline void _local_bh_enable_nort(void) { } ++ ++static inline void ksoftirqd_set_sched_params(unsigned int cpu) ++{ ++ struct sched_param param = { .sched_priority = 1 }; ++ ++ sched_setscheduler(current, SCHED_FIFO, ¶m); ++ /* Take over all pending softirqs when starting */ ++ local_irq_disable(); ++ current->softirqs_raised = local_softirq_pending(); ++ local_irq_enable(); ++} ++ ++static inline void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) ++{ ++ struct sched_param param = { .sched_priority = 0 }; ++ ++ sched_setscheduler(current, SCHED_NORMAL, ¶m); ++} ++ ++#endif /* PREEMPT_RT_FULL */ ++/* + * Enter an interrupt context. + */ + void irq_enter(void) +@@ -342,9 +706,9 @@ void irq_enter(void) + * Prevent raise_softirq from needlessly waking up ksoftirqd + * here, as softirq will be serviced on return from interrupt. + */ +- local_bh_disable(); ++ local_bh_disable_nort(); + tick_irq_enter(); +- _local_bh_enable(); ++ _local_bh_enable_nort(); + } + + __irq_enter(); +@@ -352,9 +716,13 @@ void irq_enter(void) + + static inline void invoke_softirq(void) + { ++#ifdef CONFIG_PREEMPT_RT_FULL ++ unsigned long flags; ++#endif ++ + if (ksoftirqd_running()) + return; +- ++#ifndef CONFIG_PREEMPT_RT_FULL + if (!force_irqthreads) { + #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK + /* +@@ -374,6 +742,14 @@ static inline void invoke_softirq(void) + } else { + wakeup_softirqd(); + } ++#else /* PREEMPT_RT_FULL */ ++ ++ local_irq_save(flags); ++ if (__this_cpu_read(ksoftirqd) && ++ __this_cpu_read(ksoftirqd)->softirqs_raised) ++ wakeup_softirqd(); ++ local_irq_restore(flags); ++#endif + } + + static inline void tick_irq_exit(void) +@@ -410,26 +786,6 @@ void irq_exit(void) + trace_hardirq_exit(); /* must be last! */ + } + +-/* +- * This function must run with irqs disabled! +- */ +-inline void raise_softirq_irqoff(unsigned int nr) +-{ +- __raise_softirq_irqoff(nr); +- +- /* +- * If we're in an interrupt or softirq, we're done +- * (this also catches softirq-disabled code). We will +- * actually run the softirq once we return from +- * the irq or softirq. +- * +- * Otherwise we wake up ksoftirqd to make sure we +- * schedule the softirq soon. +- */ +- if (!in_interrupt()) +- wakeup_softirqd(); +-} +- + void raise_softirq(unsigned int nr) + { + unsigned long flags; +@@ -439,12 +795,6 @@ void raise_softirq(unsigned int nr) + local_irq_restore(flags); + } + +-void __raise_softirq_irqoff(unsigned int nr) +-{ +- trace_softirq_raise(nr); +- or_softirq_pending(1UL << nr); +-} +- + void open_softirq(int nr, void (*action)(struct softirq_action *)) + { + softirq_vec[nr].action = action; +@@ -747,23 +1097,7 @@ EXPORT_SYMBOL(tasklet_unlock_wait); + + static int ksoftirqd_should_run(unsigned int cpu) + { +- return local_softirq_pending(); +-} +- +-static void run_ksoftirqd(unsigned int cpu) +-{ +- local_irq_disable(); +- if (local_softirq_pending()) { +- /* +- * We can safely run softirq on inline stack, as we are not deep +- * in the task stack here. +- */ +- __do_softirq(); +- local_irq_enable(); +- cond_resched_rcu_qs(); +- return; +- } +- local_irq_enable(); ++ return ksoftirqd_softirq_pending(); + } + + #ifdef CONFIG_HOTPLUG_CPU +@@ -830,6 +1164,8 @@ static int takeover_tasklets(unsigned in + + static struct smp_hotplug_thread softirq_threads = { + .store = &ksoftirqd, ++ .setup = ksoftirqd_set_sched_params, ++ .cleanup = ksoftirqd_clr_sched_params, + .thread_should_run = ksoftirqd_should_run, + .thread_fn = run_ksoftirqd, + .thread_comm = "ksoftirqd/%u", +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -882,14 +882,7 @@ static bool can_stop_idle_tick(int cpu, + return false; + + if (unlikely(local_softirq_pending() && cpu_online(cpu))) { +- static int ratelimit; +- +- if (ratelimit < 10 && +- (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) { +- pr_warn("NOHZ: local_softirq_pending %02x\n", +- (unsigned int) local_softirq_pending()); +- ratelimit++; +- } ++ softirq_check_pending_idle(); + return false; + } + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3834,11 +3834,9 @@ int netif_rx_ni(struct sk_buff *skb) + + trace_netif_rx_ni_entry(skb); + +- preempt_disable(); ++ local_bh_disable(); + err = netif_rx_internal(skb); +- if (local_softirq_pending()) +- do_softirq(); +- preempt_enable(); ++ local_bh_enable(); + + return err; + } diff --git a/patches/features/all/rt/softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/patches/features/all/rt/softirq-split-timer-softirqs-out-of-ksoftirqd.patch new file mode 100644 index 00000000000..6fb1ee59413 --- /dev/null +++ b/patches/features/all/rt/softirq-split-timer-softirqs-out-of-ksoftirqd.patch @@ -0,0 +1,208 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 20 Jan 2016 16:34:17 +0100 +Subject: softirq: split timer softirqs out of ksoftirqd +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with +timer wakeup which can not happen in hardirq context. The prio has been +risen from the normal SCHED_OTHER so the timer wakeup does not happen +too late. +With enough networking load it is possible that the system never goes +idle and schedules ksoftirqd and everything else with a higher priority. +One of the tasks left behind is one of RCU's threads and so we see stalls +and eventually run out of memory. +This patch moves the TIMER and HRTIMER softirqs out of the `ksoftirqd` +thread into its own `ktimersoftd`. The former can now run SCHED_OTHER +(same as mainline) and the latter at SCHED_FIFO due to the wakeups. + +From networking point of view: The NAPI callback runs after the network +interrupt thread completes. If its run time takes too long the NAPI code +itself schedules the `ksoftirqd`. Here in the thread it can run at +SCHED_OTHER priority and it won't defer RCU anymore. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/softirq.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 73 insertions(+), 12 deletions(-) + +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -58,6 +58,10 @@ EXPORT_SYMBOL(irq_stat); + static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp; + + DEFINE_PER_CPU(struct task_struct *, ksoftirqd); ++#ifdef CONFIG_PREEMPT_RT_FULL ++#define TIMER_SOFTIRQS ((1 << TIMER_SOFTIRQ) | (1 << HRTIMER_SOFTIRQ)) ++DEFINE_PER_CPU(struct task_struct *, ktimer_softirqd); ++#endif + + const char * const softirq_to_name[NR_SOFTIRQS] = { + "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "IRQ_POLL", +@@ -171,6 +175,17 @@ static void wakeup_softirqd(void) + wake_up_process(tsk); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static void wakeup_timer_softirqd(void) ++{ ++ /* Interrupts are disabled: no need to stop preemption */ ++ struct task_struct *tsk = __this_cpu_read(ktimer_softirqd); ++ ++ if (tsk && tsk->state != TASK_RUNNING) ++ wake_up_process(tsk); ++} ++#endif ++ + static void handle_softirq(unsigned int vec_nr) + { + struct softirq_action *h = softirq_vec + vec_nr; +@@ -484,7 +499,6 @@ void __raise_softirq_irqoff(unsigned int + static inline void local_bh_disable_nort(void) { local_bh_disable(); } + static inline void _local_bh_enable_nort(void) { _local_bh_enable(); } + static void ksoftirqd_set_sched_params(unsigned int cpu) { } +-static void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) { } + + #else /* !PREEMPT_RT_FULL */ + +@@ -631,8 +645,12 @@ void thread_do_softirq(void) + + static void do_raise_softirq_irqoff(unsigned int nr) + { ++ unsigned int mask; ++ ++ mask = 1UL << nr; ++ + trace_softirq_raise(nr); +- or_softirq_pending(1UL << nr); ++ or_softirq_pending(mask); + + /* + * If we are not in a hard interrupt and inside a bh disabled +@@ -641,16 +659,29 @@ static void do_raise_softirq_irqoff(unsi + * delegate it to ksoftirqd. + */ + if (!in_irq() && current->softirq_nestcnt) +- current->softirqs_raised |= (1U << nr); +- else if (__this_cpu_read(ksoftirqd)) +- __this_cpu_read(ksoftirqd)->softirqs_raised |= (1U << nr); ++ current->softirqs_raised |= mask; ++ else if (!__this_cpu_read(ksoftirqd) || !__this_cpu_read(ktimer_softirqd)) ++ return; ++ ++ if (mask & TIMER_SOFTIRQS) ++ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask; ++ else ++ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask; ++} ++ ++static void wakeup_proper_softirq(unsigned int nr) ++{ ++ if ((1UL << nr) & TIMER_SOFTIRQS) ++ wakeup_timer_softirqd(); ++ else ++ wakeup_softirqd(); + } + + void __raise_softirq_irqoff(unsigned int nr) + { + do_raise_softirq_irqoff(nr); + if (!in_irq() && !current->softirq_nestcnt) +- wakeup_softirqd(); ++ wakeup_proper_softirq(nr); + } + + /* +@@ -676,7 +707,7 @@ void raise_softirq_irqoff(unsigned int n + * raise a WARN() if the condition is met. + */ + if (!current->softirq_nestcnt) +- wakeup_softirqd(); ++ wakeup_proper_softirq(nr); + } + + static inline int ksoftirqd_softirq_pending(void) +@@ -689,22 +720,37 @@ static inline void _local_bh_enable_nort + + static inline void ksoftirqd_set_sched_params(unsigned int cpu) + { ++ /* Take over all but timer pending softirqs when starting */ ++ local_irq_disable(); ++ current->softirqs_raised = local_softirq_pending() & ~TIMER_SOFTIRQS; ++ local_irq_enable(); ++} ++ ++static inline void ktimer_softirqd_set_sched_params(unsigned int cpu) ++{ + struct sched_param param = { .sched_priority = 1 }; + + sched_setscheduler(current, SCHED_FIFO, ¶m); +- /* Take over all pending softirqs when starting */ ++ ++ /* Take over timer pending softirqs when starting */ + local_irq_disable(); +- current->softirqs_raised = local_softirq_pending(); ++ current->softirqs_raised = local_softirq_pending() & TIMER_SOFTIRQS; + local_irq_enable(); + } + +-static inline void ksoftirqd_clr_sched_params(unsigned int cpu, bool online) ++static inline void ktimer_softirqd_clr_sched_params(unsigned int cpu, ++ bool online) + { + struct sched_param param = { .sched_priority = 0 }; + + sched_setscheduler(current, SCHED_NORMAL, ¶m); + } + ++static int ktimer_softirqd_should_run(unsigned int cpu) ++{ ++ return current->softirqs_raised; ++} ++ + #endif /* PREEMPT_RT_FULL */ + /* + * Enter an interrupt context. +@@ -759,6 +805,9 @@ static inline void invoke_softirq(void) + if (__this_cpu_read(ksoftirqd) && + __this_cpu_read(ksoftirqd)->softirqs_raised) + wakeup_softirqd(); ++ if (__this_cpu_read(ktimer_softirqd) && ++ __this_cpu_read(ktimer_softirqd)->softirqs_raised) ++ wakeup_timer_softirqd(); + local_irq_restore(flags); + #endif + } +@@ -1176,18 +1225,30 @@ static int takeover_tasklets(unsigned in + static struct smp_hotplug_thread softirq_threads = { + .store = &ksoftirqd, + .setup = ksoftirqd_set_sched_params, +- .cleanup = ksoftirqd_clr_sched_params, + .thread_should_run = ksoftirqd_should_run, + .thread_fn = run_ksoftirqd, + .thread_comm = "ksoftirqd/%u", + }; + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static struct smp_hotplug_thread softirq_timer_threads = { ++ .store = &ktimer_softirqd, ++ .setup = ktimer_softirqd_set_sched_params, ++ .cleanup = ktimer_softirqd_clr_sched_params, ++ .thread_should_run = ktimer_softirqd_should_run, ++ .thread_fn = run_ksoftirqd, ++ .thread_comm = "ktimersoftd/%u", ++}; ++#endif ++ + static __init int spawn_ksoftirqd(void) + { + cpuhp_setup_state_nocalls(CPUHP_SOFTIRQ_DEAD, "softirq:dead", NULL, + takeover_tasklets); + BUG_ON(smpboot_register_percpu_thread(&softirq_threads)); +- ++#ifdef CONFIG_PREEMPT_RT_FULL ++ BUG_ON(smpboot_register_percpu_thread(&softirq_timer_threads)); ++#endif + return 0; + } + early_initcall(spawn_ksoftirqd); diff --git a/patches/features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch b/patches/features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch new file mode 100644 index 00000000000..aacfb4b07c0 --- /dev/null +++ b/patches/features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch @@ -0,0 +1,28 @@ +From: Allen Pais +Date: Fri, 13 Dec 2013 09:44:41 +0530 +Subject: sparc64: use generic rwsem spinlocks rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Signed-off-by: Allen Pais +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/sparc/Kconfig | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +--- a/arch/sparc/Kconfig ++++ b/arch/sparc/Kconfig +@@ -194,12 +194,10 @@ config NR_CPUS + source kernel/Kconfig.hz + + config RWSEM_GENERIC_SPINLOCK +- bool +- default y if SPARC32 ++ def_bool PREEMPT_RT_FULL + + config RWSEM_XCHGADD_ALGORITHM +- bool +- default y if SPARC64 ++ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL + + config GENERIC_HWEIGHT + bool diff --git a/patches/features/all/rt/spinlock-types-separate-raw.patch b/patches/features/all/rt/spinlock-types-separate-raw.patch new file mode 100644 index 00000000000..e4cd06fd70d --- /dev/null +++ b/patches/features/all/rt/spinlock-types-separate-raw.patch @@ -0,0 +1,209 @@ +Subject: spinlock: Split the lock types header +From: Thomas Gleixner +Date: Wed, 29 Jun 2011 19:34:01 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Split raw_spinlock into its own file and the remaining spinlock_t into +its own non-RT header. The non-RT header will be replaced later by sleeping +spinlocks. + +Signed-off-by: Thomas Gleixner +--- + include/linux/rwlock_types.h | 4 + + include/linux/spinlock_types.h | 74 ------------------------------------ + include/linux/spinlock_types_nort.h | 33 ++++++++++++++++ + include/linux/spinlock_types_raw.h | 56 +++++++++++++++++++++++++++ + 4 files changed, 95 insertions(+), 72 deletions(-) + +--- a/include/linux/rwlock_types.h ++++ b/include/linux/rwlock_types.h +@@ -1,6 +1,10 @@ + #ifndef __LINUX_RWLOCK_TYPES_H + #define __LINUX_RWLOCK_TYPES_H + ++#if !defined(__LINUX_SPINLOCK_TYPES_H) ++# error "Do not include directly, include spinlock_types.h" ++#endif ++ + /* + * include/linux/rwlock_types.h - generic rwlock type definitions + * and initializers +--- a/include/linux/spinlock_types.h ++++ b/include/linux/spinlock_types.h +@@ -9,79 +9,9 @@ + * Released under the General Public License (GPL). + */ + +-#if defined(CONFIG_SMP) +-# include +-#else +-# include +-#endif ++#include + +-#include +- +-typedef struct raw_spinlock { +- arch_spinlock_t raw_lock; +-#ifdef CONFIG_GENERIC_LOCKBREAK +- unsigned int break_lock; +-#endif +-#ifdef CONFIG_DEBUG_SPINLOCK +- unsigned int magic, owner_cpu; +- void *owner; +-#endif +-#ifdef CONFIG_DEBUG_LOCK_ALLOC +- struct lockdep_map dep_map; +-#endif +-} raw_spinlock_t; +- +-#define SPINLOCK_MAGIC 0xdead4ead +- +-#define SPINLOCK_OWNER_INIT ((void *)-1L) +- +-#ifdef CONFIG_DEBUG_LOCK_ALLOC +-# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname } +-#else +-# define SPIN_DEP_MAP_INIT(lockname) +-#endif +- +-#ifdef CONFIG_DEBUG_SPINLOCK +-# define SPIN_DEBUG_INIT(lockname) \ +- .magic = SPINLOCK_MAGIC, \ +- .owner_cpu = -1, \ +- .owner = SPINLOCK_OWNER_INIT, +-#else +-# define SPIN_DEBUG_INIT(lockname) +-#endif +- +-#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \ +- { \ +- .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ +- SPIN_DEBUG_INIT(lockname) \ +- SPIN_DEP_MAP_INIT(lockname) } +- +-#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \ +- (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname) +- +-#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x) +- +-typedef struct spinlock { +- union { +- struct raw_spinlock rlock; +- +-#ifdef CONFIG_DEBUG_LOCK_ALLOC +-# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map)) +- struct { +- u8 __padding[LOCK_PADSIZE]; +- struct lockdep_map dep_map; +- }; +-#endif +- }; +-} spinlock_t; +- +-#define __SPIN_LOCK_INITIALIZER(lockname) \ +- { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } } +- +-#define __SPIN_LOCK_UNLOCKED(lockname) \ +- (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname) +- +-#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x) ++#include + + #include + +--- /dev/null ++++ b/include/linux/spinlock_types_nort.h +@@ -0,0 +1,33 @@ ++#ifndef __LINUX_SPINLOCK_TYPES_NORT_H ++#define __LINUX_SPINLOCK_TYPES_NORT_H ++ ++#ifndef __LINUX_SPINLOCK_TYPES_H ++#error "Do not include directly. Include spinlock_types.h instead" ++#endif ++ ++/* ++ * The non RT version maps spinlocks to raw_spinlocks ++ */ ++typedef struct spinlock { ++ union { ++ struct raw_spinlock rlock; ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map)) ++ struct { ++ u8 __padding[LOCK_PADSIZE]; ++ struct lockdep_map dep_map; ++ }; ++#endif ++ }; ++} spinlock_t; ++ ++#define __SPIN_LOCK_INITIALIZER(lockname) \ ++ { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } } ++ ++#define __SPIN_LOCK_UNLOCKED(lockname) \ ++ (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname) ++ ++#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x) ++ ++#endif +--- /dev/null ++++ b/include/linux/spinlock_types_raw.h +@@ -0,0 +1,56 @@ ++#ifndef __LINUX_SPINLOCK_TYPES_RAW_H ++#define __LINUX_SPINLOCK_TYPES_RAW_H ++ ++#if defined(CONFIG_SMP) ++# include ++#else ++# include ++#endif ++ ++#include ++ ++typedef struct raw_spinlock { ++ arch_spinlock_t raw_lock; ++#ifdef CONFIG_GENERIC_LOCKBREAK ++ unsigned int break_lock; ++#endif ++#ifdef CONFIG_DEBUG_SPINLOCK ++ unsigned int magic, owner_cpu; ++ void *owner; ++#endif ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++ struct lockdep_map dep_map; ++#endif ++} raw_spinlock_t; ++ ++#define SPINLOCK_MAGIC 0xdead4ead ++ ++#define SPINLOCK_OWNER_INIT ((void *)-1L) ++ ++#ifdef CONFIG_DEBUG_LOCK_ALLOC ++# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname } ++#else ++# define SPIN_DEP_MAP_INIT(lockname) ++#endif ++ ++#ifdef CONFIG_DEBUG_SPINLOCK ++# define SPIN_DEBUG_INIT(lockname) \ ++ .magic = SPINLOCK_MAGIC, \ ++ .owner_cpu = -1, \ ++ .owner = SPINLOCK_OWNER_INIT, ++#else ++# define SPIN_DEBUG_INIT(lockname) ++#endif ++ ++#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \ ++ { \ ++ .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ ++ SPIN_DEBUG_INIT(lockname) \ ++ SPIN_DEP_MAP_INIT(lockname) } ++ ++#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \ ++ (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname) ++ ++#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x) ++ ++#endif diff --git a/patches/features/all/rt/stop-machine-raw-lock.patch b/patches/features/all/rt/stop-machine-raw-lock.patch new file mode 100644 index 00000000000..9944651f95c --- /dev/null +++ b/patches/features/all/rt/stop-machine-raw-lock.patch @@ -0,0 +1,116 @@ +Subject: stop_machine: Use raw spinlocks +From: Thomas Gleixner +Date: Wed, 29 Jun 2011 11:01:51 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use raw-locks in stomp_machine() to allow locking in irq-off regions. + +Signed-off-by: Thomas Gleixner +--- + kernel/stop_machine.c | 34 +++++++++++++--------------------- + 1 file changed, 13 insertions(+), 21 deletions(-) + +--- a/kernel/stop_machine.c ++++ b/kernel/stop_machine.c +@@ -36,7 +36,7 @@ struct cpu_stop_done { + struct cpu_stopper { + struct task_struct *thread; + +- spinlock_t lock; ++ raw_spinlock_t lock; + bool enabled; /* is this stopper enabled? */ + struct list_head works; /* list of pending works */ + +@@ -78,14 +78,14 @@ static bool cpu_stop_queue_work(unsigned + unsigned long flags; + bool enabled; + +- spin_lock_irqsave(&stopper->lock, flags); ++ raw_spin_lock_irqsave(&stopper->lock, flags); + enabled = stopper->enabled; + if (enabled) + __cpu_stop_queue_work(stopper, work); + else if (work->done) + cpu_stop_signal_done(work->done); +- spin_unlock_irqrestore(&stopper->lock, flags); + ++ raw_spin_unlock_irqrestore(&stopper->lock, flags); + return enabled; + } + +@@ -231,8 +231,8 @@ static int cpu_stop_queue_two_works(int + struct cpu_stopper *stopper2 = per_cpu_ptr(&cpu_stopper, cpu2); + int err; + retry: +- spin_lock_irq(&stopper1->lock); +- spin_lock_nested(&stopper2->lock, SINGLE_DEPTH_NESTING); ++ raw_spin_lock_irq(&stopper1->lock); ++ raw_spin_lock_nested(&stopper2->lock, SINGLE_DEPTH_NESTING); + + err = -ENOENT; + if (!stopper1->enabled || !stopper2->enabled) +@@ -255,8 +255,8 @@ static int cpu_stop_queue_two_works(int + __cpu_stop_queue_work(stopper1, work1); + __cpu_stop_queue_work(stopper2, work2); + unlock: +- spin_unlock(&stopper2->lock); +- spin_unlock_irq(&stopper1->lock); ++ raw_spin_unlock(&stopper2->lock); ++ raw_spin_unlock_irq(&stopper1->lock); + + if (unlikely(err == -EDEADLK)) { + while (stop_cpus_in_progress) +@@ -448,9 +448,9 @@ static int cpu_stop_should_run(unsigned + unsigned long flags; + int run; + +- spin_lock_irqsave(&stopper->lock, flags); ++ raw_spin_lock_irqsave(&stopper->lock, flags); + run = !list_empty(&stopper->works); +- spin_unlock_irqrestore(&stopper->lock, flags); ++ raw_spin_unlock_irqrestore(&stopper->lock, flags); + return run; + } + +@@ -461,13 +461,13 @@ static void cpu_stopper_thread(unsigned + + repeat: + work = NULL; +- spin_lock_irq(&stopper->lock); ++ raw_spin_lock_irq(&stopper->lock); + if (!list_empty(&stopper->works)) { + work = list_first_entry(&stopper->works, + struct cpu_stop_work, list); + list_del_init(&work->list); + } +- spin_unlock_irq(&stopper->lock); ++ raw_spin_unlock_irq(&stopper->lock); + + if (work) { + cpu_stop_fn_t fn = work->fn; +@@ -475,15 +475,7 @@ static void cpu_stopper_thread(unsigned + struct cpu_stop_done *done = work->done; + int ret; + +- /* +- * Wait until the stopper finished scheduling on all +- * cpus +- */ +- lg_global_lock(&stop_cpus_lock); +- /* +- * Let other cpu threads continue as well +- */ +- lg_global_unlock(&stop_cpus_lock); ++ /* XXX */ + + /* cpu stop callbacks must not sleep, make in_atomic() == T */ + preempt_count_inc(); +@@ -551,7 +543,7 @@ static int __init cpu_stop_init(void) + for_each_possible_cpu(cpu) { + struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu); + +- spin_lock_init(&stopper->lock); ++ raw_spin_lock_init(&stopper->lock); + INIT_LIST_HEAD(&stopper->works); + } + diff --git a/patches/features/all/rt/stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch b/patches/features/all/rt/stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch new file mode 100644 index 00000000000..8690bd814dd --- /dev/null +++ b/patches/features/all/rt/stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch @@ -0,0 +1,35 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:30:27 -0500 +Subject: stop_machine: convert stop_machine_run() to PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Instead of playing with non-preemption, introduce explicit +startup serialization. This is more robust and cleaner as +well. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner +[bigeasy: XXX: stopper_lock -> stop_cpus_lock] +--- + kernel/stop_machine.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/kernel/stop_machine.c ++++ b/kernel/stop_machine.c +@@ -475,6 +475,16 @@ static void cpu_stopper_thread(unsigned + struct cpu_stop_done *done = work->done; + int ret; + ++ /* ++ * Wait until the stopper finished scheduling on all ++ * cpus ++ */ ++ lg_global_lock(&stop_cpus_lock); ++ /* ++ * Let other cpu threads continue as well ++ */ ++ lg_global_unlock(&stop_cpus_lock); ++ + /* cpu stop callbacks must not sleep, make in_atomic() == T */ + preempt_count_inc(); + ret = fn(arg); diff --git a/patches/features/all/rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/patches/features/all/rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch new file mode 100644 index 00000000000..c6d866a7cd8 --- /dev/null +++ b/patches/features/all/rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -0,0 +1,63 @@ +From: Mike Galbraith +Date: Wed, 18 Feb 2015 16:05:28 +0100 +Subject: sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 +|in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd +|Preemption disabled at:[] svc_xprt_received+0x4b/0xc0 [sunrpc] +|CPU: 6 PID: 3194 Comm: rpc.nfsd Not tainted 3.18.7-rt1 #9 +|Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.404 11/06/2014 +| ffff880409630000 ffff8800d9a33c78 ffffffff815bdeb5 0000000000000002 +| 0000000000000000 ffff8800d9a33c98 ffffffff81073c86 ffff880408dd6008 +| ffff880408dd6000 ffff8800d9a33cb8 ffffffff815c3d84 ffff88040b3ac000 +|Call Trace: +| [] dump_stack+0x4f/0x9e +| [] __might_sleep+0xe6/0x150 +| [] rt_spin_lock+0x24/0x50 +| [] svc_xprt_do_enqueue+0x80/0x230 [sunrpc] +| [] svc_xprt_received+0x4b/0xc0 [sunrpc] +| [] svc_add_new_perm_xprt+0x6d/0x80 [sunrpc] +| [] svc_addsock+0x143/0x200 [sunrpc] +| [] write_ports+0x28c/0x340 [nfsd] +| [] nfsctl_transaction_write+0x4c/0x80 [nfsd] +| [] vfs_write+0xb3/0x1d0 +| [] SyS_write+0x49/0xb0 +| [] system_call_fastpath+0x16/0x1b + + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + net/sunrpc/svc_xprt.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/net/sunrpc/svc_xprt.c ++++ b/net/sunrpc/svc_xprt.c +@@ -396,7 +396,7 @@ void svc_xprt_do_enqueue(struct svc_xprt + goto out; + } + +- cpu = get_cpu(); ++ cpu = get_cpu_light(); + pool = svc_pool_for_cpu(xprt->xpt_server, cpu); + + atomic_long_inc(&pool->sp_stats.packets); +@@ -432,7 +432,7 @@ void svc_xprt_do_enqueue(struct svc_xprt + + atomic_long_inc(&pool->sp_stats.threads_woken); + wake_up_process(rqstp->rq_task); +- put_cpu(); ++ put_cpu_light(); + goto out; + } + rcu_read_unlock(); +@@ -453,7 +453,7 @@ void svc_xprt_do_enqueue(struct svc_xprt + goto redo_search; + } + rqstp = NULL; +- put_cpu(); ++ put_cpu_light(); + out: + trace_svc_xprt_do_enqueue(xprt, rqstp); + } diff --git a/patches/features/all/rt/suspend-prevernt-might-sleep-splats.patch b/patches/features/all/rt/suspend-prevernt-might-sleep-splats.patch new file mode 100644 index 00000000000..193313fa9fe --- /dev/null +++ b/patches/features/all/rt/suspend-prevernt-might-sleep-splats.patch @@ -0,0 +1,107 @@ +From: Thomas Gleixner +Date: Thu, 15 Jul 2010 10:29:00 +0200 +Subject: suspend: Prevent might sleep splats +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +timekeeping suspend/resume calls read_persistant_clock() which takes +rtc_lock. That results in might sleep warnings because at that point +we run with interrupts disabled. + +We cannot convert rtc_lock to a raw spinlock as that would trigger +other might sleep warnings. + +As a temporary workaround we disable the might sleep warnings by +setting system_state to SYSTEM_SUSPEND before calling sysdev_suspend() +and restoring it to SYSTEM_RUNNING afer sysdev_resume(). + +Needs to be revisited. + +Signed-off-by: Thomas Gleixner + +--- + include/linux/kernel.h | 1 + + kernel/power/hibernate.c | 7 +++++++ + kernel/power/suspend.c | 4 ++++ + 3 files changed, 12 insertions(+) + +--- a/include/linux/kernel.h ++++ b/include/linux/kernel.h +@@ -488,6 +488,7 @@ extern enum system_states { + SYSTEM_HALT, + SYSTEM_POWER_OFF, + SYSTEM_RESTART, ++ SYSTEM_SUSPEND, + } system_state; + + #define TAINT_PROPRIETARY_MODULE 0 +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -286,6 +286,8 @@ static int create_image(int platform_mod + + local_irq_disable(); + ++ system_state = SYSTEM_SUSPEND; ++ + error = syscore_suspend(); + if (error) { + printk(KERN_ERR "PM: Some system devices failed to power down, " +@@ -317,6 +319,7 @@ static int create_image(int platform_mod + syscore_resume(); + + Enable_irqs: ++ system_state = SYSTEM_RUNNING; + local_irq_enable(); + + Enable_cpus: +@@ -446,6 +449,7 @@ static int resume_target_kernel(bool pla + goto Enable_cpus; + + local_irq_disable(); ++ system_state = SYSTEM_SUSPEND; + + error = syscore_suspend(); + if (error) +@@ -479,6 +483,7 @@ static int resume_target_kernel(bool pla + syscore_resume(); + + Enable_irqs: ++ system_state = SYSTEM_RUNNING; + local_irq_enable(); + + Enable_cpus: +@@ -564,6 +569,7 @@ int hibernation_platform_enter(void) + goto Enable_cpus; + + local_irq_disable(); ++ system_state = SYSTEM_SUSPEND; + syscore_suspend(); + if (pm_wakeup_pending()) { + error = -EAGAIN; +@@ -576,6 +582,7 @@ int hibernation_platform_enter(void) + + Power_up: + syscore_resume(); ++ system_state = SYSTEM_RUNNING; + local_irq_enable(); + + Enable_cpus: +--- a/kernel/power/suspend.c ++++ b/kernel/power/suspend.c +@@ -369,6 +369,8 @@ static int suspend_enter(suspend_state_t + arch_suspend_disable_irqs(); + BUG_ON(!irqs_disabled()); + ++ system_state = SYSTEM_SUSPEND; ++ + error = syscore_suspend(); + if (!error) { + *wakeup = pm_wakeup_pending(); +@@ -385,6 +387,8 @@ static int suspend_enter(suspend_state_t + syscore_resume(); + } + ++ system_state = SYSTEM_RUNNING; ++ + arch_suspend_enable_irqs(); + BUG_ON(irqs_disabled()); + diff --git a/patches/features/all/rt/sysfs-realtime-entry.patch b/patches/features/all/rt/sysfs-realtime-entry.patch new file mode 100644 index 00000000000..dd96a0eb623 --- /dev/null +++ b/patches/features/all/rt/sysfs-realtime-entry.patch @@ -0,0 +1,48 @@ +Subject: sysfs: Add /sys/kernel/realtime entry +From: Clark Williams +Date: Sat Jul 30 21:55:53 2011 -0500 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Add a /sys/kernel entry to indicate that the kernel is a +realtime kernel. + +Clark says that he needs this for udev rules, udev needs to evaluate +if its a PREEMPT_RT kernel a few thousand times and parsing uname +output is too slow or so. + +Are there better solutions? Should it exist and return 0 on !-rt? + +Signed-off-by: Clark Williams +Signed-off-by: Peter Zijlstra +--- + kernel/ksysfs.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/kernel/ksysfs.c ++++ b/kernel/ksysfs.c +@@ -136,6 +136,15 @@ KERNEL_ATTR_RO(vmcoreinfo); + + #endif /* CONFIG_KEXEC_CORE */ + ++#if defined(CONFIG_PREEMPT_RT_FULL) ++static ssize_t realtime_show(struct kobject *kobj, ++ struct kobj_attribute *attr, char *buf) ++{ ++ return sprintf(buf, "%d\n", 1); ++} ++KERNEL_ATTR_RO(realtime); ++#endif ++ + /* whether file capabilities are enabled */ + static ssize_t fscaps_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +@@ -225,6 +234,9 @@ static struct attribute * kernel_attrs[] + &rcu_expedited_attr.attr, + &rcu_normal_attr.attr, + #endif ++#ifdef CONFIG_PREEMPT_RT_FULL ++ &realtime_attr.attr, ++#endif + NULL + }; + diff --git a/patches/features/all/rt/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch b/patches/features/all/rt/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch new file mode 100644 index 00000000000..ac679f2000c --- /dev/null +++ b/patches/features/all/rt/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch @@ -0,0 +1,392 @@ +Subject: tasklet: Prevent tasklets from going into infinite spin in RT +From: Ingo Molnar +Date: Tue Nov 29 20:18:22 2011 -0500 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, +and spinlocks turn are mutexes. But this can cause issues with +tasks disabling tasklets. A tasklet runs under ksoftirqd, and +if a tasklets are disabled with tasklet_disable(), the tasklet +count is increased. When a tasklet runs, it checks this counter +and if it is set, it adds itself back on the softirq queue and +returns. + +The problem arises in RT because ksoftirq will see that a softirq +is ready to run (the tasklet softirq just re-armed itself), and will +not sleep, but instead run the softirqs again. The tasklet softirq +will still see that the count is non-zero and will not execute +the tasklet and requeue itself on the softirq again, which will +cause ksoftirqd to run it again and again and again. + +It gets worse because ksoftirqd runs as a real-time thread. +If it preempted the task that disabled tasklets, and that task +has migration disabled, or can't run for other reasons, the tasklet +softirq will never run because the count will never be zero, and +ksoftirqd will go into an infinite loop. As an RT task, it this +becomes a big problem. + +This is a hack solution to have tasklet_disable stop tasklets, and +when a tasklet runs, instead of requeueing the tasklet softirqd +it delays it. When tasklet_enable() is called, and tasklets are +waiting, then the tasklet_enable() will kick the tasklets to continue. +This prevents the lock up from ksoftirq going into an infinite loop. + +[ rostedt@goodmis.org: ported to 3.0-rt ] + +Signed-off-by: Ingo Molnar +Signed-off-by: Steven Rostedt +Signed-off-by: Thomas Gleixner + +--- + include/linux/interrupt.h | 33 ++++--- + kernel/softirq.c | 201 ++++++++++++++++++++++++++++++++-------------- + 2 files changed, 162 insertions(+), 72 deletions(-) + +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -508,8 +508,9 @@ static inline struct task_struct *this_c + to be executed on some cpu at least once after this. + * If the tasklet is already scheduled, but its execution is still not + started, it will be executed only once. +- * If this tasklet is already running on another CPU (or schedule is called +- from tasklet itself), it is rescheduled for later. ++ * If this tasklet is already running on another CPU, it is rescheduled ++ for later. ++ * Schedule must not be called from the tasklet itself (a lockup occurs) + * Tasklet is strictly serialized wrt itself, but not + wrt another tasklets. If client needs some intertask synchronization, + he makes it with spinlocks. +@@ -534,27 +535,36 @@ struct tasklet_struct name = { NULL, 0, + enum + { + TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */ +- TASKLET_STATE_RUN /* Tasklet is running (SMP only) */ ++ TASKLET_STATE_RUN, /* Tasklet is running (SMP only) */ ++ TASKLET_STATE_PENDING /* Tasklet is pending */ + }; + +-#ifdef CONFIG_SMP ++#define TASKLET_STATEF_SCHED (1 << TASKLET_STATE_SCHED) ++#define TASKLET_STATEF_RUN (1 << TASKLET_STATE_RUN) ++#define TASKLET_STATEF_PENDING (1 << TASKLET_STATE_PENDING) ++ ++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) + static inline int tasklet_trylock(struct tasklet_struct *t) + { + return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state); + } + ++static inline int tasklet_tryunlock(struct tasklet_struct *t) ++{ ++ return cmpxchg(&t->state, TASKLET_STATEF_RUN, 0) == TASKLET_STATEF_RUN; ++} ++ + static inline void tasklet_unlock(struct tasklet_struct *t) + { + smp_mb__before_atomic(); + clear_bit(TASKLET_STATE_RUN, &(t)->state); + } + +-static inline void tasklet_unlock_wait(struct tasklet_struct *t) +-{ +- while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { barrier(); } +-} ++extern void tasklet_unlock_wait(struct tasklet_struct *t); ++ + #else + #define tasklet_trylock(t) 1 ++#define tasklet_tryunlock(t) 1 + #define tasklet_unlock_wait(t) do { } while (0) + #define tasklet_unlock(t) do { } while (0) + #endif +@@ -603,12 +613,7 @@ static inline void tasklet_disable(struc + smp_mb(); + } + +-static inline void tasklet_enable(struct tasklet_struct *t) +-{ +- smp_mb__before_atomic(); +- atomic_dec(&t->count); +-} +- ++extern void tasklet_enable(struct tasklet_struct *t); + extern void tasklet_kill(struct tasklet_struct *t); + extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); + extern void tasklet_init(struct tasklet_struct *t, +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -460,15 +461,45 @@ struct tasklet_head { + static DEFINE_PER_CPU(struct tasklet_head, tasklet_vec); + static DEFINE_PER_CPU(struct tasklet_head, tasklet_hi_vec); + ++static void inline ++__tasklet_common_schedule(struct tasklet_struct *t, struct tasklet_head *head, unsigned int nr) ++{ ++ if (tasklet_trylock(t)) { ++again: ++ /* We may have been preempted before tasklet_trylock ++ * and __tasklet_action may have already run. ++ * So double check the sched bit while the takslet ++ * is locked before adding it to the list. ++ */ ++ if (test_bit(TASKLET_STATE_SCHED, &t->state)) { ++ t->next = NULL; ++ *head->tail = t; ++ head->tail = &(t->next); ++ raise_softirq_irqoff(nr); ++ tasklet_unlock(t); ++ } else { ++ /* This is subtle. If we hit the corner case above ++ * It is possible that we get preempted right here, ++ * and another task has successfully called ++ * tasklet_schedule(), then this function, and ++ * failed on the trylock. Thus we must be sure ++ * before releasing the tasklet lock, that the ++ * SCHED_BIT is clear. Otherwise the tasklet ++ * may get its SCHED_BIT set, but not added to the ++ * list ++ */ ++ if (!tasklet_tryunlock(t)) ++ goto again; ++ } ++ } ++} ++ + void __tasklet_schedule(struct tasklet_struct *t) + { + unsigned long flags; + + local_irq_save(flags); +- t->next = NULL; +- *__this_cpu_read(tasklet_vec.tail) = t; +- __this_cpu_write(tasklet_vec.tail, &(t->next)); +- raise_softirq_irqoff(TASKLET_SOFTIRQ); ++ __tasklet_common_schedule(t, this_cpu_ptr(&tasklet_vec), TASKLET_SOFTIRQ); + local_irq_restore(flags); + } + EXPORT_SYMBOL(__tasklet_schedule); +@@ -478,10 +509,7 @@ void __tasklet_hi_schedule(struct taskle + unsigned long flags; + + local_irq_save(flags); +- t->next = NULL; +- *__this_cpu_read(tasklet_hi_vec.tail) = t; +- __this_cpu_write(tasklet_hi_vec.tail, &(t->next)); +- raise_softirq_irqoff(HI_SOFTIRQ); ++ __tasklet_common_schedule(t, this_cpu_ptr(&tasklet_hi_vec), HI_SOFTIRQ); + local_irq_restore(flags); + } + EXPORT_SYMBOL(__tasklet_hi_schedule); +@@ -490,82 +518,122 @@ void __tasklet_hi_schedule_first(struct + { + BUG_ON(!irqs_disabled()); + +- t->next = __this_cpu_read(tasklet_hi_vec.head); +- __this_cpu_write(tasklet_hi_vec.head, t); +- __raise_softirq_irqoff(HI_SOFTIRQ); ++ __tasklet_hi_schedule(t); + } + EXPORT_SYMBOL(__tasklet_hi_schedule_first); + +-static __latent_entropy void tasklet_action(struct softirq_action *a) ++void tasklet_enable(struct tasklet_struct *t) + { +- struct tasklet_struct *list; ++ if (!atomic_dec_and_test(&t->count)) ++ return; ++ if (test_and_clear_bit(TASKLET_STATE_PENDING, &t->state)) ++ tasklet_schedule(t); ++} ++EXPORT_SYMBOL(tasklet_enable); + +- local_irq_disable(); +- list = __this_cpu_read(tasklet_vec.head); +- __this_cpu_write(tasklet_vec.head, NULL); +- __this_cpu_write(tasklet_vec.tail, this_cpu_ptr(&tasklet_vec.head)); +- local_irq_enable(); ++static void __tasklet_action(struct softirq_action *a, ++ struct tasklet_struct *list) ++{ ++ int loops = 1000000; + + while (list) { + struct tasklet_struct *t = list; + + list = list->next; + +- if (tasklet_trylock(t)) { +- if (!atomic_read(&t->count)) { +- if (!test_and_clear_bit(TASKLET_STATE_SCHED, +- &t->state)) +- BUG(); +- t->func(t->data); +- tasklet_unlock(t); +- continue; +- } +- tasklet_unlock(t); ++ /* ++ * Should always succeed - after a tasklist got on the ++ * list (after getting the SCHED bit set from 0 to 1), ++ * nothing but the tasklet softirq it got queued to can ++ * lock it: ++ */ ++ if (!tasklet_trylock(t)) { ++ WARN_ON(1); ++ continue; + } + +- local_irq_disable(); + t->next = NULL; +- *__this_cpu_read(tasklet_vec.tail) = t; +- __this_cpu_write(tasklet_vec.tail, &(t->next)); +- __raise_softirq_irqoff(TASKLET_SOFTIRQ); +- local_irq_enable(); ++ ++ /* ++ * If we cannot handle the tasklet because it's disabled, ++ * mark it as pending. tasklet_enable() will later ++ * re-schedule the tasklet. ++ */ ++ if (unlikely(atomic_read(&t->count))) { ++out_disabled: ++ /* implicit unlock: */ ++ wmb(); ++ t->state = TASKLET_STATEF_PENDING; ++ continue; ++ } ++ ++ /* ++ * After this point on the tasklet might be rescheduled ++ * on another CPU, but it can only be added to another ++ * CPU's tasklet list if we unlock the tasklet (which we ++ * dont do yet). ++ */ ++ if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state)) ++ WARN_ON(1); ++ ++again: ++ t->func(t->data); ++ ++ /* ++ * Try to unlock the tasklet. We must use cmpxchg, because ++ * another CPU might have scheduled or disabled the tasklet. ++ * We only allow the STATE_RUN -> 0 transition here. ++ */ ++ while (!tasklet_tryunlock(t)) { ++ /* ++ * If it got disabled meanwhile, bail out: ++ */ ++ if (atomic_read(&t->count)) ++ goto out_disabled; ++ /* ++ * If it got scheduled meanwhile, re-execute ++ * the tasklet function: ++ */ ++ if (test_and_clear_bit(TASKLET_STATE_SCHED, &t->state)) ++ goto again; ++ if (!--loops) { ++ printk("hm, tasklet state: %08lx\n", t->state); ++ WARN_ON(1); ++ tasklet_unlock(t); ++ break; ++ } ++ } + } + } + ++static void tasklet_action(struct softirq_action *a) ++{ ++ struct tasklet_struct *list; ++ ++ local_irq_disable(); ++ ++ list = __this_cpu_read(tasklet_vec.head); ++ __this_cpu_write(tasklet_vec.head, NULL); ++ __this_cpu_write(tasklet_vec.tail, this_cpu_ptr(&tasklet_vec.head)); ++ ++ local_irq_enable(); ++ ++ __tasklet_action(a, list); ++} ++ + static __latent_entropy void tasklet_hi_action(struct softirq_action *a) + { + struct tasklet_struct *list; + + local_irq_disable(); ++ + list = __this_cpu_read(tasklet_hi_vec.head); + __this_cpu_write(tasklet_hi_vec.head, NULL); + __this_cpu_write(tasklet_hi_vec.tail, this_cpu_ptr(&tasklet_hi_vec.head)); +- local_irq_enable(); +- +- while (list) { +- struct tasklet_struct *t = list; + +- list = list->next; +- +- if (tasklet_trylock(t)) { +- if (!atomic_read(&t->count)) { +- if (!test_and_clear_bit(TASKLET_STATE_SCHED, +- &t->state)) +- BUG(); +- t->func(t->data); +- tasklet_unlock(t); +- continue; +- } +- tasklet_unlock(t); +- } ++ local_irq_enable(); + +- local_irq_disable(); +- t->next = NULL; +- *__this_cpu_read(tasklet_hi_vec.tail) = t; +- __this_cpu_write(tasklet_hi_vec.tail, &(t->next)); +- __raise_softirq_irqoff(HI_SOFTIRQ); +- local_irq_enable(); +- } ++ __tasklet_action(a, list); + } + + void tasklet_init(struct tasklet_struct *t, +@@ -586,7 +654,7 @@ void tasklet_kill(struct tasklet_struct + + while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { + do { +- yield(); ++ msleep(1); + } while (test_bit(TASKLET_STATE_SCHED, &t->state)); + } + tasklet_unlock_wait(t); +@@ -660,6 +728,23 @@ void __init softirq_init(void) + open_softirq(HI_SOFTIRQ, tasklet_hi_action); + } + ++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) ++void tasklet_unlock_wait(struct tasklet_struct *t) ++{ ++ while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { ++ /* ++ * Hack for now to avoid this busy-loop: ++ */ ++#ifdef CONFIG_PREEMPT_RT_FULL ++ msleep(1); ++#else ++ barrier(); ++#endif ++ } ++} ++EXPORT_SYMBOL(tasklet_unlock_wait); ++#endif ++ + static int ksoftirqd_should_run(unsigned int cpu) + { + return local_softirq_pending(); diff --git a/patches/features/all/rt/thermal-Defer-thermal-wakups-to-threads.patch b/patches/features/all/rt/thermal-Defer-thermal-wakups-to-threads.patch new file mode 100644 index 00000000000..548357f9e63 --- /dev/null +++ b/patches/features/all/rt/thermal-Defer-thermal-wakups-to-threads.patch @@ -0,0 +1,133 @@ +From: Daniel Wagner +Date: Tue, 17 Feb 2015 09:37:44 +0100 +Subject: thermal: Defer thermal wakups to threads +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will +call schedule while we run in irq context. + +[] dump_stack+0x4e/0x8f +[] __schedule_bug+0xa6/0xb4 +[] __schedule+0x5b4/0x700 +[] schedule+0x2a/0x90 +[] rt_spin_lock_slowlock+0xe5/0x2d0 +[] rt_spin_lock+0x25/0x30 +[] pkg_temp_thermal_platform_thermal_notify+0x45/0x134 [x86_pkg_temp_thermal] +[] ? therm_throt_process+0x1b/0x160 +[] intel_thermal_interrupt+0x211/0x250 +[] smp_thermal_interrupt+0x21/0x40 +[] thermal_interrupt+0x6d/0x80 + +Let's defer the work to a kthread. + +Signed-off-by: Daniel Wagner +[bigeasy: reoder init/denit position. TODO: flush swork on exit] +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/thermal/x86_pkg_temp_thermal.c | 50 +++++++++++++++++++++++++++++++-- + 1 file changed, 47 insertions(+), 3 deletions(-) + +--- a/drivers/thermal/x86_pkg_temp_thermal.c ++++ b/drivers/thermal/x86_pkg_temp_thermal.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -353,7 +354,7 @@ static void pkg_temp_thermal_threshold_w + } + } + +-static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val) ++static void platform_thermal_notify_work(struct swork_event *event) + { + unsigned long flags; + int cpu = smp_processor_id(); +@@ -370,7 +371,7 @@ static int pkg_temp_thermal_platform_the + pkg_work_scheduled[phy_id]) { + disable_pkg_thres_interrupt(); + spin_unlock_irqrestore(&pkg_work_lock, flags); +- return -EINVAL; ++ return; + } + pkg_work_scheduled[phy_id] = 1; + spin_unlock_irqrestore(&pkg_work_lock, flags); +@@ -379,9 +380,48 @@ static int pkg_temp_thermal_platform_the + schedule_delayed_work_on(cpu, + &per_cpu(pkg_temp_thermal_threshold_work, cpu), + msecs_to_jiffies(notify_delay_ms)); ++} ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++static struct swork_event notify_work; ++ ++static int thermal_notify_work_init(void) ++{ ++ int err; ++ ++ err = swork_get(); ++ if (err) ++ return err; ++ ++ INIT_SWORK(¬ify_work, platform_thermal_notify_work); + return 0; + } + ++static void thermal_notify_work_cleanup(void) ++{ ++ swork_put(); ++} ++ ++static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val) ++{ ++ swork_queue(¬ify_work); ++ return 0; ++} ++ ++#else /* !CONFIG_PREEMPT_RT_FULL */ ++ ++static int thermal_notify_work_init(void) { return 0; } ++ ++static void thermal_notify_work_cleanup(void) { } ++ ++static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val) ++{ ++ platform_thermal_notify_work(NULL); ++ ++ return 0; ++} ++#endif /* CONFIG_PREEMPT_RT_FULL */ ++ + static int find_siblings_cpu(int cpu) + { + int i; +@@ -585,6 +625,9 @@ static int __init pkg_temp_thermal_init( + if (!x86_match_cpu(pkg_temp_thermal_ids)) + return -ENODEV; + ++ if (!thermal_notify_work_init()) ++ return -ENODEV; ++ + spin_lock_init(&pkg_work_lock); + platform_thermal_package_notify = + pkg_temp_thermal_platform_thermal_notify; +@@ -609,7 +652,7 @@ static int __init pkg_temp_thermal_init( + kfree(pkg_work_scheduled); + platform_thermal_package_notify = NULL; + platform_thermal_package_rate_control = NULL; +- ++ thermal_notify_work_cleanup(); + return -ENODEV; + } + +@@ -634,6 +677,7 @@ static void __exit pkg_temp_thermal_exit + mutex_unlock(&phy_dev_list_mutex); + platform_thermal_package_notify = NULL; + platform_thermal_package_rate_control = NULL; ++ thermal_notify_work_cleanup(); + for_each_online_cpu(i) + cancel_delayed_work_sync( + &per_cpu(pkg_temp_thermal_threshold_work, i)); diff --git a/patches/features/all/rt/tick-broadcast--Make-hrtimer-irqsafe.patch b/patches/features/all/rt/tick-broadcast--Make-hrtimer-irqsafe.patch new file mode 100644 index 00000000000..3bc466e754f --- /dev/null +++ b/patches/features/all/rt/tick-broadcast--Make-hrtimer-irqsafe.patch @@ -0,0 +1,58 @@ +Subject: tick/broadcast: Make broadcast hrtimer irqsafe +From: Thomas Gleixner +Date: Sat, 27 Feb 2016 10:47:10 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Otherwise we end up with the following: + +|================================= +|[ INFO: inconsistent lock state ] +|4.4.2-rt7+ #5 Not tainted +|--------------------------------- +|inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. +|ktimersoftd/0/4 [HC0[0]:SC0[0]:HE1:SE1] takes: +| (tick_broadcast_lock){?.....}, at: [] tick_handle_oneshot_broadcast+0x58/0x27c +|{IN-HARDIRQ-W} state was registered at: +| [] mark_lock+0x19c/0x6a0 +| [] __lock_acquire+0xb1c/0x2100 +| [] lock_acquire+0xf8/0x230 +| [] _raw_spin_lock_irqsave+0x50/0x68 +| [] tick_broadcast_switch_to_oneshot+0x20/0x60 +| [] tick_switch_to_oneshot+0x64/0xd8 +| [] tick_init_highres+0x1c/0x24 +| [] hrtimer_run_queues+0x78/0x100 +| [] update_process_times+0x38/0x74 +| [] tick_periodic+0x60/0x140 +| [] tick_handle_periodic+0x2c/0x94 +| [] arch_timer_handler_phys+0x3c/0x48 +| [] handle_percpu_devid_irq+0x100/0x390 +| [] generic_handle_irq+0x34/0x4c +| [] __handle_domain_irq+0x90/0xf8 +| [] gic_handle_irq+0x5c/0xa4 +| [] el1_irq+0x6c/0xec +| [] default_idle_call+0x2c/0x44 +| [] cpu_startup_entry+0x3cc/0x410 +| [] rest_init+0x158/0x168 +| [] start_kernel+0x3a0/0x3b4 +| [<0000000080621000>] 0x80621000 +|irq event stamp: 18723 +|hardirqs last enabled at (18723): [] _raw_spin_unlock_irq+0x38/0x80 +|hardirqs last disabled at (18722): [] run_hrtimer_softirq+0x2c/0x2f4 +|softirqs last enabled at (0): [] copy_process.isra.50+0x300/0x16d4 +|softirqs last disabled at (0): [< (null)>] (null) + +Reported-by: Sebastian Andrzej Siewior +Signed-off-by: Thomas Gleixner +--- + kernel/time/tick-broadcast-hrtimer.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/kernel/time/tick-broadcast-hrtimer.c ++++ b/kernel/time/tick-broadcast-hrtimer.c +@@ -107,5 +107,6 @@ void tick_setup_hrtimer_broadcast(void) + { + hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); + bctimer.function = bc_handler; ++ bctimer.irqsafe = true; + clockevents_register_device(&ce_broadcast_hrtimer); + } diff --git a/patches/features/all/rt/timekeeping-split-jiffies-lock.patch b/patches/features/all/rt/timekeeping-split-jiffies-lock.patch new file mode 100644 index 00000000000..02284cd954d --- /dev/null +++ b/patches/features/all/rt/timekeeping-split-jiffies-lock.patch @@ -0,0 +1,157 @@ +Subject: timekeeping: Split jiffies seqlock +From: Thomas Gleixner +Date: Thu, 14 Feb 2013 22:36:59 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so +it can be taken in atomic context on RT. + +Signed-off-by: Thomas Gleixner +--- + kernel/time/jiffies.c | 7 ++++--- + kernel/time/tick-common.c | 10 ++++++---- + kernel/time/tick-sched.c | 19 ++++++++++++------- + kernel/time/timekeeping.c | 6 ++++-- + kernel/time/timekeeping.h | 3 ++- + 5 files changed, 28 insertions(+), 17 deletions(-) + +--- a/kernel/time/jiffies.c ++++ b/kernel/time/jiffies.c +@@ -74,7 +74,8 @@ static struct clocksource clocksource_ji + .max_cycles = 10, + }; + +-__cacheline_aligned_in_smp DEFINE_SEQLOCK(jiffies_lock); ++__cacheline_aligned_in_smp DEFINE_RAW_SPINLOCK(jiffies_lock); ++__cacheline_aligned_in_smp seqcount_t jiffies_seq; + + #if (BITS_PER_LONG < 64) + u64 get_jiffies_64(void) +@@ -83,9 +84,9 @@ u64 get_jiffies_64(void) + u64 ret; + + do { +- seq = read_seqbegin(&jiffies_lock); ++ seq = read_seqcount_begin(&jiffies_seq); + ret = jiffies_64; +- } while (read_seqretry(&jiffies_lock, seq)); ++ } while (read_seqcount_retry(&jiffies_seq, seq)); + return ret; + } + EXPORT_SYMBOL(get_jiffies_64); +--- a/kernel/time/tick-common.c ++++ b/kernel/time/tick-common.c +@@ -79,13 +79,15 @@ int tick_is_oneshot_available(void) + static void tick_periodic(int cpu) + { + if (tick_do_timer_cpu == cpu) { +- write_seqlock(&jiffies_lock); ++ raw_spin_lock(&jiffies_lock); ++ write_seqcount_begin(&jiffies_seq); + + /* Keep track of the next tick event */ + tick_next_period = ktime_add(tick_next_period, tick_period); + + do_timer(1); +- write_sequnlock(&jiffies_lock); ++ write_seqcount_end(&jiffies_seq); ++ raw_spin_unlock(&jiffies_lock); + update_wall_time(); + } + +@@ -157,9 +159,9 @@ void tick_setup_periodic(struct clock_ev + ktime_t next; + + do { +- seq = read_seqbegin(&jiffies_lock); ++ seq = read_seqcount_begin(&jiffies_seq); + next = tick_next_period; +- } while (read_seqretry(&jiffies_lock, seq)); ++ } while (read_seqcount_retry(&jiffies_seq, seq)); + + clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT); + +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -62,7 +62,8 @@ static void tick_do_update_jiffies64(kti + return; + + /* Reevaluate with jiffies_lock held */ +- write_seqlock(&jiffies_lock); ++ raw_spin_lock(&jiffies_lock); ++ write_seqcount_begin(&jiffies_seq); + + delta = ktime_sub(now, last_jiffies_update); + if (delta.tv64 >= tick_period.tv64) { +@@ -85,10 +86,12 @@ static void tick_do_update_jiffies64(kti + /* Keep the tick_next_period variable up to date */ + tick_next_period = ktime_add(last_jiffies_update, tick_period); + } else { +- write_sequnlock(&jiffies_lock); ++ write_seqcount_end(&jiffies_seq); ++ raw_spin_unlock(&jiffies_lock); + return; + } +- write_sequnlock(&jiffies_lock); ++ write_seqcount_end(&jiffies_seq); ++ raw_spin_unlock(&jiffies_lock); + update_wall_time(); + } + +@@ -99,12 +102,14 @@ static ktime_t tick_init_jiffy_update(vo + { + ktime_t period; + +- write_seqlock(&jiffies_lock); ++ raw_spin_lock(&jiffies_lock); ++ write_seqcount_begin(&jiffies_seq); + /* Did we start the jiffies update yet ? */ + if (last_jiffies_update.tv64 == 0) + last_jiffies_update = tick_next_period; + period = last_jiffies_update; +- write_sequnlock(&jiffies_lock); ++ write_seqcount_end(&jiffies_seq); ++ raw_spin_unlock(&jiffies_lock); + return period; + } + +@@ -673,10 +678,10 @@ static ktime_t tick_nohz_stop_sched_tick + + /* Read jiffies and the time when jiffies were updated last */ + do { +- seq = read_seqbegin(&jiffies_lock); ++ seq = read_seqcount_begin(&jiffies_seq); + basemono = last_jiffies_update.tv64; + basejiff = jiffies; +- } while (read_seqretry(&jiffies_lock, seq)); ++ } while (read_seqcount_retry(&jiffies_seq, seq)); + ts->last_jiffies = basejiff; + + if (rcu_needs_cpu(basemono, &next_rcu) || +--- a/kernel/time/timekeeping.c ++++ b/kernel/time/timekeeping.c +@@ -2328,8 +2328,10 @@ EXPORT_SYMBOL(hardpps); + */ + void xtime_update(unsigned long ticks) + { +- write_seqlock(&jiffies_lock); ++ raw_spin_lock(&jiffies_lock); ++ write_seqcount_begin(&jiffies_seq); + do_timer(ticks); +- write_sequnlock(&jiffies_lock); ++ write_seqcount_end(&jiffies_seq); ++ raw_spin_unlock(&jiffies_lock); + update_wall_time(); + } +--- a/kernel/time/timekeeping.h ++++ b/kernel/time/timekeeping.h +@@ -19,7 +19,8 @@ extern void timekeeping_resume(void); + extern void do_timer(unsigned long ticks); + extern void update_wall_time(void); + +-extern seqlock_t jiffies_lock; ++extern raw_spinlock_t jiffies_lock; ++extern seqcount_t jiffies_seq; + + #define CS_NAME_LEN 32 + diff --git a/patches/features/all/rt/timer-delay-waking-softirqs-from-the-jiffy-tick.patch b/patches/features/all/rt/timer-delay-waking-softirqs-from-the-jiffy-tick.patch new file mode 100644 index 00000000000..a3a015b7107 --- /dev/null +++ b/patches/features/all/rt/timer-delay-waking-softirqs-from-the-jiffy-tick.patch @@ -0,0 +1,76 @@ +From: Peter Zijlstra +Date: Fri, 21 Aug 2009 11:56:45 +0200 +Subject: timer: delay waking softirqs from the jiffy tick +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +People were complaining about broken balancing with the recent -rt +series. + +A look at /proc/sched_debug yielded: + +cpu#0, 2393.874 MHz + .nr_running : 0 + .load : 0 + .cpu_load[0] : 177522 + .cpu_load[1] : 177522 + .cpu_load[2] : 177522 + .cpu_load[3] : 177522 + .cpu_load[4] : 177522 +cpu#1, 2393.874 MHz + .nr_running : 4 + .load : 4096 + .cpu_load[0] : 181618 + .cpu_load[1] : 180850 + .cpu_load[2] : 180274 + .cpu_load[3] : 179938 + .cpu_load[4] : 179758 + +Which indicated the cpu_load computation was hosed, the 177522 value +indicates that there is one RT task runnable. Initially I thought the +old problem of calculating the cpu_load from a softirq had re-surfaced, +however looking at the code shows its being done from scheduler_tick(). + +[ we really should fix this RT/cfs interaction some day... ] + +A few trace_printk()s later: + + sirq-timer/1-19 [001] 174.289744: 19: 50:S ==> [001] 0:140:R + -0 [001] 174.290724: enqueue_task_rt: adding task: 19/sirq-timer/1 with load: 177522 + -0 [001] 174.290725: 0:140:R + [001] 19: 50:S sirq-timer/1 + -0 [001] 174.290730: scheduler_tick: current load: 177522 + -0 [001] 174.290732: scheduler_tick: current: 0/swapper + -0 [001] 174.290736: 0:140:R ==> [001] 19: 50:R sirq-timer/1 + sirq-timer/1-19 [001] 174.290741: dequeue_task_rt: removing task: 19/sirq-timer/1 with load: 177522 + sirq-timer/1-19 [001] 174.290743: 19: 50:S ==> [001] 0:140:R + +We see that we always raise the timer softirq before doing the load +calculation. Avoid this by re-ordering the scheduler_tick() call in +update_process_times() to occur before we deal with timers. + +This lowers the load back to sanity and restores regular load-balancing +behaviour. + +Signed-off-by: Peter Zijlstra +Signed-off-by: Thomas Gleixner + +--- + kernel/time/timer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -1641,13 +1641,13 @@ void update_process_times(int user_tick) + + /* Note: this timer irq context must be accounted for as well. */ + account_process_tick(p, user_tick); ++ scheduler_tick(); + run_local_timers(); + rcu_check_callbacks(user_tick); + #ifdef CONFIG_IRQ_WORK + if (in_irq()) + irq_work_tick(); + #endif +- scheduler_tick(); + run_posix_cpu_timers(p); + } + diff --git a/patches/features/all/rt/timer-fd-avoid-live-lock.patch b/patches/features/all/rt/timer-fd-avoid-live-lock.patch new file mode 100644 index 00000000000..94951954133 --- /dev/null +++ b/patches/features/all/rt/timer-fd-avoid-live-lock.patch @@ -0,0 +1,31 @@ +Subject: timer-fd: Prevent live lock +From: Thomas Gleixner +Date: Wed, 25 Jan 2012 11:08:40 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +If hrtimer_try_to_cancel() requires a retry, then depending on the +priority setting te retry loop might prevent timer callback completion +on RT. Prevent that by waiting for completion on RT, no change for a +non RT kernel. + +Reported-by: Sankara Muthukrishnan +Signed-off-by: Thomas Gleixner + +--- + fs/timerfd.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/fs/timerfd.c ++++ b/fs/timerfd.c +@@ -460,7 +460,10 @@ static int do_timerfd_settime(int ufd, i + break; + } + spin_unlock_irq(&ctx->wqh.lock); +- cpu_relax(); ++ if (isalarm(ctx)) ++ hrtimer_wait_for_timer(&ctx->t.alarm.timer); ++ else ++ hrtimer_wait_for_timer(&ctx->t.tmr); + } + + /* diff --git a/patches/features/all/rt/timer-make-the-base-lock-raw.patch b/patches/features/all/rt/timer-make-the-base-lock-raw.patch new file mode 100644 index 00000000000..a393a5512f2 --- /dev/null +++ b/patches/features/all/rt/timer-make-the-base-lock-raw.patch @@ -0,0 +1,181 @@ +From: Sebastian Andrzej Siewior +Date: Wed, 13 Jul 2016 18:22:23 +0200 +Subject: [PATCH] timer: make the base lock raw +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The part where the base lock is held got more predictable / shorter after the +timer rework. One reason is the lack of re-cascading. +That means the lock can be made raw and held in IRQ context. + +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/time/timer.c | 48 ++++++++++++++++++++++++------------------------ + 1 file changed, 24 insertions(+), 24 deletions(-) + +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -193,7 +193,7 @@ EXPORT_SYMBOL(jiffies_64); + #endif + + struct timer_base { +- spinlock_t lock; ++ raw_spinlock_t lock; + struct timer_list *running_timer; + unsigned long clk; + unsigned long next_expiry; +@@ -948,10 +948,10 @@ static struct timer_base *lock_timer_bas + + if (!(tf & TIMER_MIGRATING)) { + base = get_timer_base(tf); +- spin_lock_irqsave(&base->lock, *flags); ++ raw_spin_lock_irqsave(&base->lock, *flags); + if (timer->flags == tf) + return base; +- spin_unlock_irqrestore(&base->lock, *flags); ++ raw_spin_unlock_irqrestore(&base->lock, *flags); + } + cpu_relax(); + } +@@ -1023,9 +1023,9 @@ static inline int + /* See the comment in lock_timer_base() */ + timer->flags |= TIMER_MIGRATING; + +- spin_unlock(&base->lock); ++ raw_spin_unlock(&base->lock); + base = new_base; +- spin_lock(&base->lock); ++ raw_spin_lock(&base->lock); + WRITE_ONCE(timer->flags, + (timer->flags & ~TIMER_BASEMASK) | base->cpu); + } +@@ -1050,7 +1050,7 @@ static inline int + } + + out_unlock: +- spin_unlock_irqrestore(&base->lock, flags); ++ raw_spin_unlock_irqrestore(&base->lock, flags); + + return ret; + } +@@ -1144,16 +1144,16 @@ void add_timer_on(struct timer_list *tim + if (base != new_base) { + timer->flags |= TIMER_MIGRATING; + +- spin_unlock(&base->lock); ++ raw_spin_unlock(&base->lock); + base = new_base; +- spin_lock(&base->lock); ++ raw_spin_lock(&base->lock); + WRITE_ONCE(timer->flags, + (timer->flags & ~TIMER_BASEMASK) | cpu); + } + + debug_activate(timer, timer->expires); + internal_add_timer(base, timer); +- spin_unlock_irqrestore(&base->lock, flags); ++ raw_spin_unlock_irqrestore(&base->lock, flags); + } + EXPORT_SYMBOL_GPL(add_timer_on); + +@@ -1180,7 +1180,7 @@ int del_timer(struct timer_list *timer) + if (timer_pending(timer)) { + base = lock_timer_base(timer, &flags); + ret = detach_if_pending(timer, base, true); +- spin_unlock_irqrestore(&base->lock, flags); ++ raw_spin_unlock_irqrestore(&base->lock, flags); + } + + return ret; +@@ -1208,7 +1208,7 @@ int try_to_del_timer_sync(struct timer_l + timer_stats_timer_clear_start_info(timer); + ret = detach_if_pending(timer, base, true); + } +- spin_unlock_irqrestore(&base->lock, flags); ++ raw_spin_unlock_irqrestore(&base->lock, flags); + + return ret; + } +@@ -1340,13 +1340,13 @@ static void expire_timers(struct timer_b + data = timer->data; + + if (timer->flags & TIMER_IRQSAFE) { +- spin_unlock(&base->lock); ++ raw_spin_unlock(&base->lock); + call_timer_fn(timer, fn, data); +- spin_lock(&base->lock); ++ raw_spin_lock(&base->lock); + } else { +- spin_unlock_irq(&base->lock); ++ raw_spin_unlock_irq(&base->lock); + call_timer_fn(timer, fn, data); +- spin_lock_irq(&base->lock); ++ raw_spin_lock_irq(&base->lock); + } + } + } +@@ -1515,7 +1515,7 @@ u64 get_next_timer_interrupt(unsigned lo + if (cpu_is_offline(smp_processor_id())) + return expires; + +- spin_lock(&base->lock); ++ raw_spin_lock(&base->lock); + nextevt = __next_timer_interrupt(base); + is_max_delta = (nextevt == base->clk + NEXT_TIMER_MAX_DELTA); + base->next_expiry = nextevt; +@@ -1543,7 +1543,7 @@ u64 get_next_timer_interrupt(unsigned lo + if ((expires - basem) > TICK_NSEC) + base->is_idle = true; + } +- spin_unlock(&base->lock); ++ raw_spin_unlock(&base->lock); + + return cmp_next_hrtimer_event(basem, expires); + } +@@ -1630,7 +1630,7 @@ static inline void __run_timers(struct t + if (!time_after_eq(jiffies, base->clk)) + return; + +- spin_lock_irq(&base->lock); ++ raw_spin_lock_irq(&base->lock); + + while (time_after_eq(jiffies, base->clk)) { + +@@ -1641,7 +1641,7 @@ static inline void __run_timers(struct t + expire_timers(base, heads + levels); + } + base->running_timer = NULL; +- spin_unlock_irq(&base->lock); ++ raw_spin_unlock_irq(&base->lock); + } + + /* +@@ -1836,16 +1836,16 @@ int timers_dead_cpu(unsigned int cpu) + * The caller is globally serialized and nobody else + * takes two locks at once, deadlock is not possible. + */ +- spin_lock_irq(&new_base->lock); +- spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); ++ raw_spin_lock_irq(&new_base->lock); ++ raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); + + BUG_ON(old_base->running_timer); + + for (i = 0; i < WHEEL_SIZE; i++) + migrate_timer_list(new_base, old_base->vectors + i); + +- spin_unlock(&old_base->lock); +- spin_unlock_irq(&new_base->lock); ++ raw_spin_unlock(&old_base->lock); ++ raw_spin_unlock_irq(&new_base->lock); + put_cpu_ptr(&timer_bases); + } + return 0; +@@ -1861,7 +1861,7 @@ static void __init init_timer_cpu(int cp + for (i = 0; i < NR_BASES; i++) { + base = per_cpu_ptr(&timer_bases[i], cpu); + base->cpu = cpu; +- spin_lock_init(&base->lock); ++ raw_spin_lock_init(&base->lock); + base->clk = jiffies; + } + } diff --git a/patches/features/all/rt/timers-prepare-for-full-preemption.patch b/patches/features/all/rt/timers-prepare-for-full-preemption.patch new file mode 100644 index 00000000000..1994517ee0d --- /dev/null +++ b/patches/features/all/rt/timers-prepare-for-full-preemption.patch @@ -0,0 +1,159 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:34 -0500 +Subject: timers: Prepare for full preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When softirqs can be preempted we need to make sure that cancelling +the timer from the active thread can not deadlock vs. a running timer +callback. Add a waitqueue to resolve that. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- + include/linux/timer.h | 2 +- + kernel/sched/core.c | 9 +++++++-- + kernel/time/timer.c | 44 ++++++++++++++++++++++++++++++++++++++++---- + 3 files changed, 48 insertions(+), 7 deletions(-) + +--- a/include/linux/timer.h ++++ b/include/linux/timer.h +@@ -241,7 +241,7 @@ extern void add_timer(struct timer_list + + extern int try_to_del_timer_sync(struct timer_list *timer); + +-#ifdef CONFIG_SMP ++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) + extern int del_timer_sync(struct timer_list *timer); + #else + # define del_timer_sync(t) del_timer(t) +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -525,11 +525,14 @@ void resched_cpu(int cpu) + */ + int get_nohz_timer_target(void) + { +- int i, cpu = smp_processor_id(); ++ int i, cpu; + struct sched_domain *sd; + ++ preempt_disable_rt(); ++ cpu = smp_processor_id(); ++ + if (!idle_cpu(cpu) && is_housekeeping_cpu(cpu)) +- return cpu; ++ goto preempt_en_rt; + + rcu_read_lock(); + for_each_domain(cpu, sd) { +@@ -548,6 +551,8 @@ int get_nohz_timer_target(void) + cpu = housekeeping_any_cpu(); + unlock: + rcu_read_unlock(); ++preempt_en_rt: ++ preempt_enable_rt(); + return cpu; + } + /* +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -195,6 +195,9 @@ EXPORT_SYMBOL(jiffies_64); + struct timer_base { + raw_spinlock_t lock; + struct timer_list *running_timer; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ struct swait_queue_head wait_for_running_timer; ++#endif + unsigned long clk; + unsigned long next_expiry; + unsigned int cpu; +@@ -1157,6 +1160,33 @@ void add_timer_on(struct timer_list *tim + } + EXPORT_SYMBOL_GPL(add_timer_on); + ++#ifdef CONFIG_PREEMPT_RT_FULL ++/* ++ * Wait for a running timer ++ */ ++static void wait_for_running_timer(struct timer_list *timer) ++{ ++ struct timer_base *base; ++ u32 tf = timer->flags; ++ ++ if (tf & TIMER_MIGRATING) ++ return; ++ ++ base = get_timer_base(tf); ++ swait_event(base->wait_for_running_timer, ++ base->running_timer != timer); ++} ++ ++# define wakeup_timer_waiters(b) swake_up_all(&(b)->wait_for_running_timer) ++#else ++static inline void wait_for_running_timer(struct timer_list *timer) ++{ ++ cpu_relax(); ++} ++ ++# define wakeup_timer_waiters(b) do { } while (0) ++#endif ++ + /** + * del_timer - deactive a timer. + * @timer: the timer to be deactivated +@@ -1214,7 +1244,7 @@ int try_to_del_timer_sync(struct timer_l + } + EXPORT_SYMBOL(try_to_del_timer_sync); + +-#ifdef CONFIG_SMP ++#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL) + /** + * del_timer_sync - deactivate a timer and wait for the handler to finish. + * @timer: the timer to be deactivated +@@ -1274,7 +1304,7 @@ int del_timer_sync(struct timer_list *ti + int ret = try_to_del_timer_sync(timer); + if (ret >= 0) + return ret; +- cpu_relax(); ++ wait_for_running_timer(timer); + } + } + EXPORT_SYMBOL(del_timer_sync); +@@ -1339,13 +1369,16 @@ static void expire_timers(struct timer_b + fn = timer->function; + data = timer->data; + +- if (timer->flags & TIMER_IRQSAFE) { ++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && ++ timer->flags & TIMER_IRQSAFE) { + raw_spin_unlock(&base->lock); + call_timer_fn(timer, fn, data); ++ base->running_timer = NULL; + raw_spin_lock(&base->lock); + } else { + raw_spin_unlock_irq(&base->lock); + call_timer_fn(timer, fn, data); ++ base->running_timer = NULL; + raw_spin_lock_irq(&base->lock); + } + } +@@ -1640,8 +1673,8 @@ static inline void __run_timers(struct t + while (levels--) + expire_timers(base, heads + levels); + } +- base->running_timer = NULL; + raw_spin_unlock_irq(&base->lock); ++ wakeup_timer_waiters(base); + } + + /* +@@ -1863,6 +1896,9 @@ static void __init init_timer_cpu(int cp + base->cpu = cpu; + raw_spin_lock_init(&base->lock); + base->clk = jiffies; ++#ifdef CONFIG_PREEMPT_RT_FULL ++ init_swait_queue_head(&base->wait_for_running_timer); ++#endif + } + } + diff --git a/patches/features/all/rt/trace-latency-hist-Consider-new-argument-when-probin.patch b/patches/features/all/rt/trace-latency-hist-Consider-new-argument-when-probin.patch new file mode 100644 index 00000000000..da411c78bbc --- /dev/null +++ b/patches/features/all/rt/trace-latency-hist-Consider-new-argument-when-probin.patch @@ -0,0 +1,38 @@ +From: Carsten Emde +Date: Tue, 5 Jan 2016 10:21:59 +0100 +Subject: trace/latency-hist: Consider new argument when probing the + sched_switch tracer +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The sched_switch tracer has got a new argument. Fix the latency tracer +accordingly. + +Recently: c73464b1c843 ("sched/core: Fix trace_sched_switch()") since +v4.4-rc1. + +Signed-off-by: Carsten Emde +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/trace/latency_hist.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/trace/latency_hist.c ++++ b/kernel/trace/latency_hist.c +@@ -117,7 +117,7 @@ static char *wakeup_latency_hist_dir_sha + static notrace void probe_wakeup_latency_hist_start(void *v, + struct task_struct *p); + static notrace void probe_wakeup_latency_hist_stop(void *v, +- struct task_struct *prev, struct task_struct *next); ++ bool preempt, struct task_struct *prev, struct task_struct *next); + static notrace void probe_sched_migrate_task(void *, + struct task_struct *task, int cpu); + static struct enable_data wakeup_latency_enabled_data = { +@@ -907,7 +907,7 @@ static notrace void probe_wakeup_latency + } + + static notrace void probe_wakeup_latency_hist_stop(void *v, +- struct task_struct *prev, struct task_struct *next) ++ bool preempt, struct task_struct *prev, struct task_struct *next) + { + unsigned long flags; + int cpu = task_cpu(next); diff --git a/patches/features/all/rt/trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch b/patches/features/all/rt/trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch new file mode 100644 index 00000000000..b9cd15e97ad --- /dev/null +++ b/patches/features/all/rt/trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch @@ -0,0 +1,91 @@ +Subject: trace: Use rcuidle version for preemptoff_hist trace point +From: Yang Shi +Date: Tue, 23 Feb 2016 13:23:23 -0800 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When running -rt kernel with both PREEMPT_OFF_HIST and LOCKDEP enabled, +the below error is reported: + + [ INFO: suspicious RCU usage. ] + 4.4.1-rt6 #1 Not tainted + include/trace/events/hist.h:31 suspicious rcu_dereference_check() usage! + + other info that might help us debug this: + + RCU used illegally from idle CPU! + rcu_scheduler_active = 1, debug_locks = 0 + RCU used illegally from extended quiescent state! + no locks held by swapper/0/0. + + stack backtrace: + CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.1-rt6-WR8.0.0.0_standard #1 + Stack : 0000000000000006 0000000000000000 ffffffff81ca8c38 ffffffff81c8fc80 + ffffffff811bdd68 ffffffff81cb0000 0000000000000000 ffffffff81cb0000 + 0000000000000000 0000000000000000 0000000000000004 0000000000000000 + 0000000000000004 ffffffff811bdf50 0000000000000000 ffffffff82b60000 + 0000000000000000 ffffffff812897ac ffffffff819f0000 000000000000000b + ffffffff811be460 ffffffff81b7c588 ffffffff81c8fc80 0000000000000000 + 0000000000000000 ffffffff81ec7f88 ffffffff81d70000 ffffffff81b70000 + ffffffff81c90000 ffffffff81c3fb00 ffffffff81c3fc28 ffffffff815e6f98 + 0000000000000000 ffffffff81c8fa87 ffffffff81b70958 ffffffff811bf2c4 + 0707fe32e8d60ca5 ffffffff81126d60 0000000000000000 0000000000000000 + ... + Call Trace: + [] show_stack+0xe8/0x108 + [] dump_stack+0x88/0xb0 + [] time_hardirqs_off+0x204/0x300 + [] trace_hardirqs_off_caller+0x24/0xe8 + [] cpu_startup_entry+0x39c/0x508 + [] start_kernel+0x584/0x5a0 + +Replace regular trace_preemptoff_hist to rcuidle version to avoid the error. + +Signed-off-by: Yang Shi +Cc: bigeasy@linutronix.de +Cc: rostedt@goodmis.org +Cc: linux-rt-users@vger.kernel.org +Link: http://lkml.kernel.org/r/1456262603-10075-1-git-send-email-yang.shi@windriver.com +Signed-off-by: Thomas Gleixner +--- +I recall the rcuidle version is used by 4.1-rt, but not sure why it is dropped +in 4.4-rt. It looks such fix is still needed. + + kernel/trace/trace_irqsoff.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/kernel/trace/trace_irqsoff.c ++++ b/kernel/trace/trace_irqsoff.c +@@ -425,13 +425,13 @@ void start_critical_timings(void) + { + if (preempt_trace() || irq_trace()) + start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); +- trace_preemptirqsoff_hist(TRACE_START, 1); ++ trace_preemptirqsoff_hist_rcuidle(TRACE_START, 1); + } + EXPORT_SYMBOL_GPL(start_critical_timings); + + void stop_critical_timings(void) + { +- trace_preemptirqsoff_hist(TRACE_STOP, 0); ++ trace_preemptirqsoff_hist_rcuidle(TRACE_STOP, 0); + if (preempt_trace() || irq_trace()) + stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); + } +@@ -441,7 +441,7 @@ EXPORT_SYMBOL_GPL(stop_critical_timings) + #ifdef CONFIG_PROVE_LOCKING + void time_hardirqs_on(unsigned long a0, unsigned long a1) + { +- trace_preemptirqsoff_hist(IRQS_ON, 0); ++ trace_preemptirqsoff_hist_rcuidle(IRQS_ON, 0); + if (!preempt_trace() && irq_trace()) + stop_critical_timing(a0, a1); + } +@@ -450,7 +450,7 @@ void time_hardirqs_off(unsigned long a0, + { + if (!preempt_trace() && irq_trace()) + start_critical_timing(a0, a1); +- trace_preemptirqsoff_hist(IRQS_OFF, 1); ++ trace_preemptirqsoff_hist_rcuidle(IRQS_OFF, 1); + } + + #else /* !CONFIG_PROVE_LOCKING */ diff --git a/patches/features/all/rt/tracing-account-for-preempt-off-in-preempt_schedule.patch b/patches/features/all/rt/tracing-account-for-preempt-off-in-preempt_schedule.patch new file mode 100644 index 00000000000..f8fbd19db19 --- /dev/null +++ b/patches/features/all/rt/tracing-account-for-preempt-off-in-preempt_schedule.patch @@ -0,0 +1,47 @@ +From: Steven Rostedt +Date: Thu, 29 Sep 2011 12:24:30 -0500 +Subject: tracing: Account for preempt off in preempt_schedule() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +The preempt_schedule() uses the preempt_disable_notrace() version +because it can cause infinite recursion by the function tracer as +the function tracer uses preempt_enable_notrace() which may call +back into the preempt_schedule() code as the NEED_RESCHED is still +set and the PREEMPT_ACTIVE has not been set yet. + +See commit: d1f74e20b5b064a130cd0743a256c2d3cfe84010 that made this +change. + +The preemptoff and preemptirqsoff latency tracers require the first +and last preempt count modifiers to enable tracing. But this skips +the checks. Since we can not convert them back to the non notrace +version, we can use the idle() hooks for the latency tracers here. +That is, the start/stop_critical_timings() works well to manually +start and stop the latency tracer for preempt off timings. + +Signed-off-by: Steven Rostedt +Signed-off-by: Clark Williams +Signed-off-by: Thomas Gleixner +--- + kernel/sched/core.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3583,7 +3583,16 @@ asmlinkage __visible void __sched notrac + * an infinite recursion. + */ + prev_ctx = exception_enter(); ++ /* ++ * The add/subtract must not be traced by the function ++ * tracer. But we still want to account for the ++ * preempt off latency tracer. Since the _notrace versions ++ * of add/subtract skip the accounting for latency tracer ++ * we must force it manually. ++ */ ++ start_critical_timings(); + __schedule(true); ++ stop_critical_timings(); + exception_exit(prev_ctx); + + preempt_latency_stop(1); diff --git a/patches/features/all/rt/tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/patches/features/all/rt/tty-serial-8250-don-t-take-the-trylock-during-oops.patch new file mode 100644 index 00000000000..5d43760ac80 --- /dev/null +++ b/patches/features/all/rt/tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -0,0 +1,29 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 11 Apr 2016 16:55:02 +0200 +Subject: [PATCH] tty: serial: 8250: don't take the trylock during oops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +An oops with irqs off (panic() from irqsafe hrtimer like the watchdog +timer) will lead to a lockdep warning on each invocation and as such +never completes. +Therefore we skip the trylock in the oops case. + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/tty/serial/8250/8250_port.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/drivers/tty/serial/8250/8250_port.c ++++ b/drivers/tty/serial/8250/8250_port.c +@@ -3144,10 +3144,8 @@ void serial8250_console_write(struct uar + + serial8250_rpm_get(up); + +- if (port->sysrq) ++ if (port->sysrq || oops_in_progress) + locked = 0; +- else if (oops_in_progress) +- locked = spin_trylock_irqsave(&port->lock, flags); + else + spin_lock_irqsave(&port->lock, flags); + diff --git a/patches/features/all/rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch b/patches/features/all/rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch new file mode 100644 index 00000000000..292e7529211 --- /dev/null +++ b/patches/features/all/rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch @@ -0,0 +1,66 @@ +Subject: net: Remove preemption disabling in netif_rx() +From: Priyanka Jain +Date: Thu, 17 May 2012 09:35:11 +0530 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +1)enqueue_to_backlog() (called from netif_rx) should be + bind to a particluar CPU. This can be achieved by + disabling migration. No need to disable preemption + +2)Fixes crash "BUG: scheduling while atomic: ksoftirqd" + in case of RT. + If preemption is disabled, enqueue_to_backog() is called + in atomic context. And if backlog exceeds its count, + kfree_skb() is called. But in RT, kfree_skb() might + gets scheduled out, so it expects non atomic context. + +3)When CONFIG_PREEMPT_RT_FULL is not defined, + migrate_enable(), migrate_disable() maps to + preempt_enable() and preempt_disable(), so no + change in functionality in case of non-RT. + +-Replace preempt_enable(), preempt_disable() with + migrate_enable(), migrate_disable() respectively +-Replace get_cpu(), put_cpu() with get_cpu_light(), + put_cpu_light() respectively + +Signed-off-by: Priyanka Jain +Acked-by: Rajan Srivastava +Cc: +Link: http://lkml.kernel.org/r/1337227511-2271-1-git-send-email-Priyanka.Jain@freescale.com + +Signed-off-by: Thomas Gleixner +--- + Testing: Tested successfully on p4080ds(8-core SMP system) + + net/core/dev.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3789,7 +3789,7 @@ static int netif_rx_internal(struct sk_b + struct rps_dev_flow voidflow, *rflow = &voidflow; + int cpu; + +- preempt_disable(); ++ migrate_disable(); + rcu_read_lock(); + + cpu = get_rps_cpu(skb->dev, skb, &rflow); +@@ -3799,13 +3799,13 @@ static int netif_rx_internal(struct sk_b + ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); + + rcu_read_unlock(); +- preempt_enable(); ++ migrate_enable(); + } else + #endif + { + unsigned int qtail; +- ret = enqueue_to_backlog(skb, get_cpu(), &qtail); +- put_cpu(); ++ ret = enqueue_to_backlog(skb, get_cpu_light(), &qtail); ++ put_cpu_light(); + } + return ret; + } diff --git a/patches/features/all/rt/usb-use-_nort-in-giveback.patch b/patches/features/all/rt/usb-use-_nort-in-giveback.patch new file mode 100644 index 00000000000..a2ddcef2462 --- /dev/null +++ b/patches/features/all/rt/usb-use-_nort-in-giveback.patch @@ -0,0 +1,58 @@ +From: Sebastian Andrzej Siewior +Date: Fri, 8 Nov 2013 17:34:54 +0100 +Subject: usb: Use _nort in giveback function +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet +context") I see + +|BUG: sleeping function called from invalid context at kernel/rtmutex.c:673 +|in_atomic(): 0, irqs_disabled(): 1, pid: 109, name: irq/11-uhci_hcd +|no locks held by irq/11-uhci_hcd/109. +|irq event stamp: 440 +|hardirqs last enabled at (439): [] _raw_spin_unlock_irqrestore+0x75/0x90 +|hardirqs last disabled at (440): [] __usb_hcd_giveback_urb+0x46/0xc0 +|softirqs last enabled at (0): [] copy_process.part.52+0x511/0x1510 +|softirqs last disabled at (0): [< (null)>] (null) +|CPU: 3 PID: 109 Comm: irq/11-uhci_hcd Not tainted 3.12.0-rt0-rc1+ #13 +|Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 +| 0000000000000000 ffff8800db9ffbe0 ffffffff8169f064 0000000000000000 +| ffff8800db9ffbf8 ffffffff810b2122 ffff88020f03e888 ffff8800db9ffc18 +| ffffffff816a6944 ffffffff810b5748 ffff88020f03c000 ffff8800db9ffc50 +|Call Trace: +| [] dump_stack+0x4e/0x8f +| [] __might_sleep+0x112/0x190 +| [] rt_spin_lock+0x24/0x60 +| [] hid_ctrl+0x3b/0x190 +| [] __usb_hcd_giveback_urb+0x4f/0xc0 +| [] usb_hcd_giveback_urb+0x3f/0x140 +| [] uhci_giveback_urb+0xaf/0x280 +| [] uhci_scan_schedule+0x47a/0xb10 +| [] uhci_irq+0xa6/0x1a0 +| [] usb_hcd_irq+0x28/0x40 +| [] irq_forced_thread_fn+0x23/0x70 +| [] irq_thread+0x10f/0x150 +| [] kthread+0xcd/0xe0 +| [] ret_from_fork+0x7c/0xb0 + +on -RT we run threaded so no need to disable interrupts. + +Signed-off-by: Sebastian Andrzej Siewior +--- + drivers/usb/core/hcd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/core/hcd.c ++++ b/drivers/usb/core/hcd.c +@@ -1761,9 +1761,9 @@ static void __usb_hcd_giveback_urb(struc + * and no one may trigger the above deadlock situation when + * running complete() in tasklet. + */ +- local_irq_save(flags); ++ local_irq_save_nort(flags); + urb->complete(urb); +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + + usb_anchor_resume_wakeups(anchor); + atomic_dec(&urb->use_count); diff --git a/patches/features/all/rt/user-use-local-irq-nort.patch b/patches/features/all/rt/user-use-local-irq-nort.patch new file mode 100644 index 00000000000..b8e5840f08f --- /dev/null +++ b/patches/features/all/rt/user-use-local-irq-nort.patch @@ -0,0 +1,30 @@ +From: Thomas Gleixner +Date: Tue, 21 Jul 2009 23:06:05 +0200 +Subject: core: Do not disable interrupts on RT in kernel/users.c +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use the local_irq_*_nort variants to reduce latencies in RT. The code +is serialized by the locks. No need to disable interrupts. + +Signed-off-by: Thomas Gleixner + +--- + kernel/user.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/kernel/user.c ++++ b/kernel/user.c +@@ -161,11 +161,11 @@ void free_uid(struct user_struct *up) + if (!up) + return; + +- local_irq_save(flags); ++ local_irq_save_nort(flags); + if (atomic_dec_and_lock(&up->__count, &uidhash_lock)) + free_user(up, flags); + else +- local_irq_restore(flags); ++ local_irq_restore_nort(flags); + } + + struct user_struct *alloc_uid(kuid_t uid) diff --git a/patches/features/all/rt/wait.h-include-atomic.h.patch b/patches/features/all/rt/wait.h-include-atomic.h.patch new file mode 100644 index 00000000000..10fba1541c4 --- /dev/null +++ b/patches/features/all/rt/wait.h-include-atomic.h.patch @@ -0,0 +1,33 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 28 Oct 2013 12:19:57 +0100 +Subject: wait.h: include atomic.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +| CC init/main.o +|In file included from include/linux/mmzone.h:9:0, +| from include/linux/gfp.h:4, +| from include/linux/kmod.h:22, +| from include/linux/module.h:13, +| from init/main.c:15: +|include/linux/wait.h: In function ‘wait_on_atomic_t’: +|include/linux/wait.h:982:2: error: implicit declaration of function ‘atomic_read’ [-Werror=implicit-function-declaration] +| if (atomic_read(val) == 0) +| ^ + +This pops up on ARM. Non-RT gets its atomic.h include from spinlock.h + +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/wait.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/linux/wait.h ++++ b/include/linux/wait.h +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + typedef struct __wait_queue wait_queue_t; + typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key); diff --git a/patches/features/all/rt/work-queue-work-around-irqsafe-timer-optimization.patch b/patches/features/all/rt/work-queue-work-around-irqsafe-timer-optimization.patch new file mode 100644 index 00000000000..8da571830aa --- /dev/null +++ b/patches/features/all/rt/work-queue-work-around-irqsafe-timer-optimization.patch @@ -0,0 +1,133 @@ +From: Thomas Gleixner +Date: Mon, 01 Jul 2013 11:02:42 +0200 +Subject: workqueue: Prevent workqueue versus ata-piix livelock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +An Intel i7 system regularly detected rcu_preempt stalls after the kernel +was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no +longer possible, unless the system was restarted. + +The kernel message was: +INFO: rcu_preempt self-detected stall on CPU { 6} +[..] +NMI backtrace for cpu 6 +CPU 6 +Pid: 119, comm: irq/19-ata_piix Not tainted 3.8.13-rt13 #11 Shuttle Inc. SX58/SX58 +RIP: 0010:[] [] ip_compute_csum+0x30/0x30 +RSP: 0018:ffff880333303cb0 EFLAGS: 00000002 +RAX: 0000000000000006 RBX: 00000000000003e9 RCX: 0000000000000034 +RDX: 0000000000000000 RSI: ffffffff81aa16d0 RDI: 0000000000000001 +RBP: ffff880333303ce8 R08: ffffffff81aa16d0 R09: ffffffff81c1b8cc +R10: 0000000000000000 R11: 0000000000000000 R12: 000000000005161f +R13: 0000000000000006 R14: ffffffff81aa16d0 R15: 0000000000000002 +FS: 0000000000000000(0000) GS:ffff880333300000(0000) knlGS:0000000000000000 +CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b +CR2: 0000003c1b2bb420 CR3: 0000000001a0f000 CR4: 00000000000007e0 +DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 +DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 +Process irq/19-ata_piix (pid: 119, threadinfo ffff88032d88a000, task ffff88032df80000) +Stack: +ffffffff8124cb32 000000000005161e 00000000000003e9 0000000000001000 +0000000000009022 ffffffff81aa16d0 0000000000000002 ffff880333303cf8 +ffffffff8124caa9 ffff880333303d08 ffffffff8124cad2 ffff880333303d28 +Call Trace: + +[] ? delay_tsc+0x33/0xe3 +[] __delay+0xf/0x11 +[] __const_udelay+0x27/0x29 +[] native_safe_apic_wait_icr_idle+0x39/0x45 +[] __default_send_IPI_dest_field.constprop.0+0x1e/0x58 +[] default_send_IPI_mask_sequence_phys+0x49/0x7d +[] physflat_send_IPI_all+0x17/0x19 +[] arch_trigger_all_cpu_backtrace+0x50/0x79 +[] rcu_check_callbacks+0x1cb/0x568 +[] ? raise_softirq+0x2e/0x35 +[] ? tick_sched_do_timer+0x38/0x38 +[] update_process_times+0x44/0x55 +[] tick_sched_handle+0x4a/0x59 +[] tick_sched_timer+0x3c/0x5b +[] __run_hrtimer+0x9b/0x158 +[] hrtimer_interrupt+0x172/0x2aa +[] smp_apic_timer_interrupt+0x76/0x89 +[] apic_timer_interrupt+0x6d/0x80 + +[] ? __local_lock_irqsave+0x17/0x4a +[] try_to_grab_pending+0x42/0x17e +[] mod_delayed_work_on+0x32/0x88 +[] mod_delayed_work+0x1c/0x1e +[] blk_run_queue_async+0x37/0x39 +[] flush_end_io+0xf1/0x107 +[] blk_finish_request+0x21e/0x264 +[] blk_end_bidi_request+0x42/0x60 +[] blk_end_request+0x10/0x12 +[] scsi_io_completion+0x1bf/0x492 +[] ? sd_done+0x298/0x2ef +[] scsi_finish_command+0xe9/0xf2 +[] scsi_softirq_done+0x106/0x10f +[] blk_done_softirq+0x77/0x87 +[] do_current_softirqs+0x172/0x2e1 +[] ? irq_thread_fn+0x3a/0x3a +[] local_bh_enable+0x43/0x72 +[] irq_forced_thread_fn+0x46/0x52 +[] irq_thread+0x8c/0x17c +[] ? irq_thread+0x17c/0x17c +[] ? wake_threads_waitq+0x44/0x44 +[] kthread+0x8d/0x95 +[] ? __kthread_parkme+0x65/0x65 +[] ret_from_fork+0x7c/0xb0 +[] ? __kthread_parkme+0x65/0x65 + +The state of softirqd of this CPU at the time of the crash was: +ksoftirqd/6 R running task 0 53 2 0x00000000 +ffff88032fc39d18 0000000000000046 ffff88033330c4c0 ffff8803303f4710 +ffff88032fc39fd8 ffff88032fc39fd8 0000000000000000 0000000000062500 +ffff88032df88000 ffff8803303f4710 0000000000000000 ffff88032fc38000 +Call Trace: +[] ? __queue_work+0x27c/0x27c +[] preempt_schedule+0x61/0x76 +[] migrate_enable+0xe5/0x1df +[] ? __queue_work+0x27c/0x27c +[] run_timer_softirq+0x161/0x1d6 +[] do_current_softirqs+0x172/0x2e1 +[] run_ksoftirqd+0x2d/0x45 +[] smpboot_thread_fn+0x2ea/0x308 +[] ? test_ti_thread_flag+0xc/0xc +[] ? test_ti_thread_flag+0xc/0xc +[] kthread+0x8d/0x95 +[] ? __kthread_parkme+0x65/0x65 +[] ret_from_fork+0x7c/0xb0 +[] ? __kthread_parkme+0x65/0x65 + +Apparently, the softirq demon and the ata_piix IRQ handler were waiting +for each other to finish ending up in a livelock. After the below patch +was applied, the system no longer crashes. + +Reported-by: Carsten Emde +Proposed-by: Thomas Gleixner +Tested by: Carsten Emde +Signed-off-by: Carsten Emde +Signed-off-by: Thomas Gleixner +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/workqueue.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + + #include "workqueue_internal.h" + +@@ -1279,7 +1280,7 @@ static int try_to_grab_pending(struct wo + local_unlock_irqrestore(pendingb_lock, *flags); + if (work_is_canceling(work)) + return -ENOENT; +- cpu_relax(); ++ cpu_chill(); + return -EAGAIN; + } + diff --git a/patches/features/all/rt/work-simple-Simple-work-queue-implemenation.patch b/patches/features/all/rt/work-simple-Simple-work-queue-implemenation.patch new file mode 100644 index 00000000000..0b72cdc7acf --- /dev/null +++ b/patches/features/all/rt/work-simple-Simple-work-queue-implemenation.patch @@ -0,0 +1,232 @@ +From: Daniel Wagner +Date: Fri, 11 Jul 2014 15:26:11 +0200 +Subject: work-simple: Simple work queue implemenation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Provides a framework for enqueuing callbacks from irq context +PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. + +Bases on wait-simple. + +Cc: Sebastian Andrzej Siewior +Signed-off-by: Daniel Wagner +--- + include/linux/swork.h | 24 ++++++ + kernel/sched/Makefile | 2 + kernel/sched/swork.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 198 insertions(+), 1 deletion(-) + +--- /dev/null ++++ b/include/linux/swork.h +@@ -0,0 +1,24 @@ ++#ifndef _LINUX_SWORK_H ++#define _LINUX_SWORK_H ++ ++#include ++ ++struct swork_event { ++ struct list_head item; ++ unsigned long flags; ++ void (*func)(struct swork_event *); ++}; ++ ++static inline void INIT_SWORK(struct swork_event *event, ++ void (*func)(struct swork_event *)) ++{ ++ event->flags = 0; ++ event->func = func; ++} ++ ++bool swork_queue(struct swork_event *sev); ++ ++int swork_get(void); ++void swork_put(void); ++ ++#endif /* _LINUX_SWORK_H */ +--- a/kernel/sched/Makefile ++++ b/kernel/sched/Makefile +@@ -17,7 +17,7 @@ endif + + obj-y += core.o loadavg.o clock.o cputime.o + obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o +-obj-y += wait.o swait.o completion.o idle.o ++obj-y += wait.o swait.o swork.o completion.o idle.o + obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o + obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o + obj-$(CONFIG_SCHEDSTATS) += stats.o +--- /dev/null ++++ b/kernel/sched/swork.c +@@ -0,0 +1,173 @@ ++/* ++ * Copyright (C) 2014 BMW Car IT GmbH, Daniel Wagner daniel.wagner@bmw-carit.de ++ * ++ * Provides a framework for enqueuing callbacks from irq context ++ * PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define SWORK_EVENT_PENDING (1 << 0) ++ ++static DEFINE_MUTEX(worker_mutex); ++static struct sworker *glob_worker; ++ ++struct sworker { ++ struct list_head events; ++ struct swait_queue_head wq; ++ ++ raw_spinlock_t lock; ++ ++ struct task_struct *task; ++ int refs; ++}; ++ ++static bool swork_readable(struct sworker *worker) ++{ ++ bool r; ++ ++ if (kthread_should_stop()) ++ return true; ++ ++ raw_spin_lock_irq(&worker->lock); ++ r = !list_empty(&worker->events); ++ raw_spin_unlock_irq(&worker->lock); ++ ++ return r; ++} ++ ++static int swork_kthread(void *arg) ++{ ++ struct sworker *worker = arg; ++ ++ for (;;) { ++ swait_event_interruptible(worker->wq, ++ swork_readable(worker)); ++ if (kthread_should_stop()) ++ break; ++ ++ raw_spin_lock_irq(&worker->lock); ++ while (!list_empty(&worker->events)) { ++ struct swork_event *sev; ++ ++ sev = list_first_entry(&worker->events, ++ struct swork_event, item); ++ list_del(&sev->item); ++ raw_spin_unlock_irq(&worker->lock); ++ ++ WARN_ON_ONCE(!test_and_clear_bit(SWORK_EVENT_PENDING, ++ &sev->flags)); ++ sev->func(sev); ++ raw_spin_lock_irq(&worker->lock); ++ } ++ raw_spin_unlock_irq(&worker->lock); ++ } ++ return 0; ++} ++ ++static struct sworker *swork_create(void) ++{ ++ struct sworker *worker; ++ ++ worker = kzalloc(sizeof(*worker), GFP_KERNEL); ++ if (!worker) ++ return ERR_PTR(-ENOMEM); ++ ++ INIT_LIST_HEAD(&worker->events); ++ raw_spin_lock_init(&worker->lock); ++ init_swait_queue_head(&worker->wq); ++ ++ worker->task = kthread_run(swork_kthread, worker, "kswork"); ++ if (IS_ERR(worker->task)) { ++ kfree(worker); ++ return ERR_PTR(-ENOMEM); ++ } ++ ++ return worker; ++} ++ ++static void swork_destroy(struct sworker *worker) ++{ ++ kthread_stop(worker->task); ++ ++ WARN_ON(!list_empty(&worker->events)); ++ kfree(worker); ++} ++ ++/** ++ * swork_queue - queue swork ++ * ++ * Returns %false if @work was already on a queue, %true otherwise. ++ * ++ * The work is queued and processed on a random CPU ++ */ ++bool swork_queue(struct swork_event *sev) ++{ ++ unsigned long flags; ++ ++ if (test_and_set_bit(SWORK_EVENT_PENDING, &sev->flags)) ++ return false; ++ ++ raw_spin_lock_irqsave(&glob_worker->lock, flags); ++ list_add_tail(&sev->item, &glob_worker->events); ++ raw_spin_unlock_irqrestore(&glob_worker->lock, flags); ++ ++ swake_up(&glob_worker->wq); ++ return true; ++} ++EXPORT_SYMBOL_GPL(swork_queue); ++ ++/** ++ * swork_get - get an instance of the sworker ++ * ++ * Returns an negative error code if the initialization if the worker did not ++ * work, %0 otherwise. ++ * ++ */ ++int swork_get(void) ++{ ++ struct sworker *worker; ++ ++ mutex_lock(&worker_mutex); ++ if (!glob_worker) { ++ worker = swork_create(); ++ if (IS_ERR(worker)) { ++ mutex_unlock(&worker_mutex); ++ return -ENOMEM; ++ } ++ ++ glob_worker = worker; ++ } ++ ++ glob_worker->refs++; ++ mutex_unlock(&worker_mutex); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(swork_get); ++ ++/** ++ * swork_put - puts an instance of the sworker ++ * ++ * Will destroy the sworker thread. This function must not be called until all ++ * queued events have been completed. ++ */ ++void swork_put(void) ++{ ++ mutex_lock(&worker_mutex); ++ ++ glob_worker->refs--; ++ if (glob_worker->refs > 0) ++ goto out; ++ ++ swork_destroy(glob_worker); ++ glob_worker = NULL; ++out: ++ mutex_unlock(&worker_mutex); ++} ++EXPORT_SYMBOL_GPL(swork_put); diff --git a/patches/features/all/rt/workqueue-distangle-from-rq-lock.patch b/patches/features/all/rt/workqueue-distangle-from-rq-lock.patch new file mode 100644 index 00000000000..bf3af666f70 --- /dev/null +++ b/patches/features/all/rt/workqueue-distangle-from-rq-lock.patch @@ -0,0 +1,270 @@ +From: Thomas Gleixner +Date: Wed Jun 22 19:47:03 2011 +0200 +Subject: sched: Distangle worker accounting from rqlock + +The worker accounting for cpu bound workers is plugged into the core +scheduler code and the wakeup code. This is not a hard requirement and +can be avoided by keeping track of the state in the workqueue code +itself. + +Keep track of the sleeping state in the worker itself and call the +notifier before entering the core scheduler. There might be false +positives when the task is woken between that call and actually +scheduling, but that's not really different from scheduling and being +woken immediately after switching away. There is also no harm from +updating nr_running when the task returns from scheduling instead of +accounting it in the wakeup code. + +Signed-off-by: Thomas Gleixner +Cc: Peter Zijlstra +Cc: Tejun Heo +Cc: Jens Axboe +Cc: Linus Torvalds +Link: http://lkml.kernel.org/r/20110622174919.135236139@linutronix.de +Signed-off-by: Thomas Gleixner +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +--- + kernel/sched/core.c | 81 ++++++++------------------------------------ + kernel/workqueue.c | 52 ++++++++++++---------------- + kernel/workqueue_internal.h | 5 +- + 3 files changed, 41 insertions(+), 97 deletions(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -1711,10 +1711,6 @@ static inline void ttwu_activate(struct + { + activate_task(rq, p, en_flags); + p->on_rq = TASK_ON_RQ_QUEUED; +- +- /* if a worker is waking up, notify workqueue */ +- if (p->flags & PF_WQ_WORKER) +- wq_worker_waking_up(p, cpu_of(rq)); + } + + /* +@@ -2152,53 +2148,6 @@ try_to_wake_up(struct task_struct *p, un + } + + /** +- * try_to_wake_up_local - try to wake up a local task with rq lock held +- * @p: the thread to be awakened +- * @cookie: context's cookie for pinning +- * +- * Put @p on the run-queue if it's not already there. The caller must +- * ensure that this_rq() is locked, @p is bound to this_rq() and not +- * the current task. +- */ +-static void try_to_wake_up_local(struct task_struct *p, struct pin_cookie cookie) +-{ +- struct rq *rq = task_rq(p); +- +- if (WARN_ON_ONCE(rq != this_rq()) || +- WARN_ON_ONCE(p == current)) +- return; +- +- lockdep_assert_held(&rq->lock); +- +- if (!raw_spin_trylock(&p->pi_lock)) { +- /* +- * This is OK, because current is on_cpu, which avoids it being +- * picked for load-balance and preemption/IRQs are still +- * disabled avoiding further scheduler activity on it and we've +- * not yet picked a replacement task. +- */ +- lockdep_unpin_lock(&rq->lock, cookie); +- raw_spin_unlock(&rq->lock); +- raw_spin_lock(&p->pi_lock); +- raw_spin_lock(&rq->lock); +- lockdep_repin_lock(&rq->lock, cookie); +- } +- +- if (!(p->state & TASK_NORMAL)) +- goto out; +- +- trace_sched_waking(p); +- +- if (!task_on_rq_queued(p)) +- ttwu_activate(rq, p, ENQUEUE_WAKEUP); +- +- ttwu_do_wakeup(rq, p, 0, cookie); +- ttwu_stat(p, smp_processor_id(), 0); +-out: +- raw_spin_unlock(&p->pi_lock); +-} +- +-/** + * wake_up_process - Wake up a specific process + * @p: The process to be woken up. + * +@@ -3494,21 +3443,6 @@ static void __sched notrace __schedule(b + } else { + deactivate_task(rq, prev, DEQUEUE_SLEEP); + prev->on_rq = 0; +- +- /* +- * If a worker went to sleep, notify and ask workqueue +- * whether it wants to wake up a task to maintain +- * concurrency. +- * Only call wake up if prev isn't blocked on a sleeping +- * spin lock. +- */ +- if (prev->flags & PF_WQ_WORKER && !prev->saved_state) { +- struct task_struct *to_wakeup; +- +- to_wakeup = wq_worker_sleeping(prev); +- if (to_wakeup) +- try_to_wake_up_local(to_wakeup, cookie); +- } + } + switch_count = &prev->nvcsw; + } +@@ -3567,6 +3501,14 @@ static inline void sched_submit_work(str + { + if (!tsk->state || tsk_is_pi_blocked(tsk)) + return; ++ ++ /* ++ * If a worker went to sleep, notify and ask workqueue whether ++ * it wants to wake up a task to maintain concurrency. ++ */ ++ if (tsk->flags & PF_WQ_WORKER) ++ wq_worker_sleeping(tsk); ++ + /* + * If we are going to sleep and we have plugged IO queued, + * make sure to submit it to avoid deadlocks. +@@ -3575,6 +3517,12 @@ static inline void sched_submit_work(str + blk_schedule_flush_plug(tsk); + } + ++static void sched_update_worker(struct task_struct *tsk) ++{ ++ if (tsk->flags & PF_WQ_WORKER) ++ wq_worker_running(tsk); ++} ++ + asmlinkage __visible void __sched schedule(void) + { + struct task_struct *tsk = current; +@@ -3585,6 +3533,7 @@ asmlinkage __visible void __sched schedu + __schedule(false); + sched_preempt_enable_no_resched(); + } while (need_resched()); ++ sched_update_worker(tsk); + } + EXPORT_SYMBOL(schedule); + +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -841,43 +841,32 @@ static void wake_up_worker(struct worker + } + + /** +- * wq_worker_waking_up - a worker is waking up ++ * wq_worker_running - a worker is running again + * @task: task waking up +- * @cpu: CPU @task is waking up to + * +- * This function is called during try_to_wake_up() when a worker is +- * being awoken. +- * +- * CONTEXT: +- * spin_lock_irq(rq->lock) ++ * This function is called when a worker returns from schedule() + */ +-void wq_worker_waking_up(struct task_struct *task, int cpu) ++void wq_worker_running(struct task_struct *task) + { + struct worker *worker = kthread_data(task); + +- if (!(worker->flags & WORKER_NOT_RUNNING)) { +- WARN_ON_ONCE(worker->pool->cpu != cpu); ++ if (!worker->sleeping) ++ return; ++ if (!(worker->flags & WORKER_NOT_RUNNING)) + atomic_inc(&worker->pool->nr_running); +- } ++ worker->sleeping = 0; + } + + /** + * wq_worker_sleeping - a worker is going to sleep + * @task: task going to sleep + * +- * This function is called during schedule() when a busy worker is +- * going to sleep. Worker on the same cpu can be woken up by +- * returning pointer to its task. +- * +- * CONTEXT: +- * spin_lock_irq(rq->lock) +- * +- * Return: +- * Worker task on @cpu to wake up, %NULL if none. ++ * This function is called from schedule() when a busy worker is ++ * going to sleep. + */ +-struct task_struct *wq_worker_sleeping(struct task_struct *task) ++void wq_worker_sleeping(struct task_struct *task) + { +- struct worker *worker = kthread_data(task), *to_wakeup = NULL; ++ struct worker *next, *worker = kthread_data(task); + struct worker_pool *pool; + + /* +@@ -886,13 +875,15 @@ struct task_struct *wq_worker_sleeping(s + * checking NOT_RUNNING. + */ + if (worker->flags & WORKER_NOT_RUNNING) +- return NULL; ++ return; + + pool = worker->pool; + +- /* this can only happen on the local cpu */ +- if (WARN_ON_ONCE(pool->cpu != raw_smp_processor_id())) +- return NULL; ++ if (WARN_ON_ONCE(worker->sleeping)) ++ return; ++ ++ worker->sleeping = 1; ++ spin_lock_irq(&pool->lock); + + /* + * The counterpart of the following dec_and_test, implied mb, +@@ -906,9 +897,12 @@ struct task_struct *wq_worker_sleeping(s + * lock is safe. + */ + if (atomic_dec_and_test(&pool->nr_running) && +- !list_empty(&pool->worklist)) +- to_wakeup = first_idle_worker(pool); +- return to_wakeup ? to_wakeup->task : NULL; ++ !list_empty(&pool->worklist)) { ++ next = first_idle_worker(pool); ++ if (next) ++ wake_up_process(next->task); ++ } ++ spin_unlock_irq(&pool->lock); + } + + /** +--- a/kernel/workqueue_internal.h ++++ b/kernel/workqueue_internal.h +@@ -43,6 +43,7 @@ struct worker { + unsigned long last_active; /* L: last active timestamp */ + unsigned int flags; /* X: flags */ + int id; /* I: worker id */ ++ int sleeping; /* None */ + + /* + * Opaque string set with work_set_desc(). Printed out with task +@@ -68,7 +69,7 @@ static inline struct worker *current_wq_ + * Scheduler hooks for concurrency managed workqueue. Only to be used from + * sched/core.c and workqueue.c. + */ +-void wq_worker_waking_up(struct task_struct *task, int cpu); +-struct task_struct *wq_worker_sleeping(struct task_struct *task); ++void wq_worker_running(struct task_struct *task); ++void wq_worker_sleeping(struct task_struct *task); + + #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */ diff --git a/patches/features/all/rt/workqueue-prevent-deadlock-stall.patch b/patches/features/all/rt/workqueue-prevent-deadlock-stall.patch new file mode 100644 index 00000000000..3b6682fd20a --- /dev/null +++ b/patches/features/all/rt/workqueue-prevent-deadlock-stall.patch @@ -0,0 +1,201 @@ +Subject: workqueue: Prevent deadlock/stall on RT +From: Thomas Gleixner +Date: Fri, 27 Jun 2014 16:24:52 +0200 (CEST) +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Austin reported a XFS deadlock/stall on RT where scheduled work gets +never exececuted and tasks are waiting for each other for ever. + +The underlying problem is the modification of the RT code to the +handling of workers which are about to go to sleep. In mainline a +worker thread which goes to sleep wakes an idle worker if there is +more work to do. This happens from the guts of the schedule() +function. On RT this must be outside and the accessed data structures +are not protected against scheduling due to the spinlock to rtmutex +conversion. So the naive solution to this was to move the code outside +of the scheduler and protect the data structures by the pool +lock. That approach turned out to be a little naive as we cannot call +into that code when the thread blocks on a lock, as it is not allowed +to block on two locks in parallel. So we dont call into the worker +wakeup magic when the worker is blocked on a lock, which causes the +deadlock/stall observed by Austin and Mike. + +Looking deeper into that worker code it turns out that the only +relevant data structure which needs to be protected is the list of +idle workers which can be woken up. + +So the solution is to protect the list manipulation operations with +preempt_enable/disable pairs on RT and call unconditionally into the +worker code even when the worker is blocked on a lock. The preemption +protection is safe as there is nothing which can fiddle with the list +outside of thread context. + +Reported-and_tested-by: Austin Schuh +Reported-and_tested-by: Mike Galbraith +Signed-off-by: Thomas Gleixner +Link: http://vger.kernel.org/r/alpine.DEB.2.10.1406271249510.5170@nanos +Cc: Richard Weinberger +Cc: Steven Rostedt + +--- + kernel/sched/core.c | 7 ++++-- + kernel/workqueue.c | 60 ++++++++++++++++++++++++++++++++++++++++------------ + 2 files changed, 52 insertions(+), 15 deletions(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3615,9 +3615,8 @@ void __noreturn do_task_dead(void) + + static inline void sched_submit_work(struct task_struct *tsk) + { +- if (!tsk->state || tsk_is_pi_blocked(tsk)) ++ if (!tsk->state) + return; +- + /* + * If a worker went to sleep, notify and ask workqueue whether + * it wants to wake up a task to maintain concurrency. +@@ -3625,6 +3624,10 @@ static inline void sched_submit_work(str + if (tsk->flags & PF_WQ_WORKER) + wq_worker_sleeping(tsk); + ++ ++ if (tsk_is_pi_blocked(tsk)) ++ return; ++ + /* + * If we are going to sleep and we have plugged IO queued, + * make sure to submit it to avoid deadlocks. +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -123,6 +123,11 @@ enum { + * cpu or grabbing pool->lock is enough for read access. If + * POOL_DISASSOCIATED is set, it's identical to L. + * ++ * On RT we need the extra protection via rt_lock_idle_list() for ++ * the list manipulations against read access from ++ * wq_worker_sleeping(). All other places are nicely serialized via ++ * pool->lock. ++ * + * A: pool->attach_mutex protected. + * + * PL: wq_pool_mutex protected. +@@ -428,6 +433,31 @@ static void workqueue_sysfs_unregister(s + if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \ + else + ++#ifdef CONFIG_PREEMPT_RT_BASE ++static inline void rt_lock_idle_list(struct worker_pool *pool) ++{ ++ preempt_disable(); ++} ++static inline void rt_unlock_idle_list(struct worker_pool *pool) ++{ ++ preempt_enable(); ++} ++static inline void sched_lock_idle_list(struct worker_pool *pool) { } ++static inline void sched_unlock_idle_list(struct worker_pool *pool) { } ++#else ++static inline void rt_lock_idle_list(struct worker_pool *pool) { } ++static inline void rt_unlock_idle_list(struct worker_pool *pool) { } ++static inline void sched_lock_idle_list(struct worker_pool *pool) ++{ ++ spin_lock_irq(&pool->lock); ++} ++static inline void sched_unlock_idle_list(struct worker_pool *pool) ++{ ++ spin_unlock_irq(&pool->lock); ++} ++#endif ++ ++ + #ifdef CONFIG_DEBUG_OBJECTS_WORK + + static struct debug_obj_descr work_debug_descr; +@@ -834,10 +864,16 @@ static struct worker *first_idle_worker( + */ + static void wake_up_worker(struct worker_pool *pool) + { +- struct worker *worker = first_idle_worker(pool); ++ struct worker *worker; ++ ++ rt_lock_idle_list(pool); ++ ++ worker = first_idle_worker(pool); + + if (likely(worker)) + wake_up_process(worker->task); ++ ++ rt_unlock_idle_list(pool); + } + + /** +@@ -866,7 +902,7 @@ void wq_worker_running(struct task_struc + */ + void wq_worker_sleeping(struct task_struct *task) + { +- struct worker *next, *worker = kthread_data(task); ++ struct worker *worker = kthread_data(task); + struct worker_pool *pool; + + /* +@@ -883,26 +919,18 @@ void wq_worker_sleeping(struct task_stru + return; + + worker->sleeping = 1; +- spin_lock_irq(&pool->lock); + + /* + * The counterpart of the following dec_and_test, implied mb, + * worklist not empty test sequence is in insert_work(). + * Please read comment there. +- * +- * NOT_RUNNING is clear. This means that we're bound to and +- * running on the local cpu w/ rq lock held and preemption +- * disabled, which in turn means that none else could be +- * manipulating idle_list, so dereferencing idle_list without pool +- * lock is safe. + */ + if (atomic_dec_and_test(&pool->nr_running) && + !list_empty(&pool->worklist)) { +- next = first_idle_worker(pool); +- if (next) +- wake_up_process(next->task); ++ sched_lock_idle_list(pool); ++ wake_up_worker(pool); ++ sched_unlock_idle_list(pool); + } +- spin_unlock_irq(&pool->lock); + } + + /** +@@ -1631,7 +1659,9 @@ static void worker_enter_idle(struct wor + worker->last_active = jiffies; + + /* idle_list is LIFO */ ++ rt_lock_idle_list(pool); + list_add(&worker->entry, &pool->idle_list); ++ rt_unlock_idle_list(pool); + + if (too_many_workers(pool) && !timer_pending(&pool->idle_timer)) + mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT); +@@ -1664,7 +1694,9 @@ static void worker_leave_idle(struct wor + return; + worker_clr_flags(worker, WORKER_IDLE); + pool->nr_idle--; ++ rt_lock_idle_list(pool); + list_del_init(&worker->entry); ++ rt_unlock_idle_list(pool); + } + + static struct worker *alloc_worker(int node) +@@ -1830,7 +1862,9 @@ static void destroy_worker(struct worker + pool->nr_workers--; + pool->nr_idle--; + ++ rt_lock_idle_list(pool); + list_del_init(&worker->entry); ++ rt_unlock_idle_list(pool); + worker->flags |= WORKER_DIE; + wake_up_process(worker->task); + } diff --git a/patches/features/all/rt/workqueue-use-locallock.patch b/patches/features/all/rt/workqueue-use-locallock.patch new file mode 100644 index 00000000000..c201464f38f --- /dev/null +++ b/patches/features/all/rt/workqueue-use-locallock.patch @@ -0,0 +1,147 @@ +Subject: workqueue: Use local irq lock instead of irq disable regions +From: Thomas Gleixner +Date: Sun, 17 Jul 2011 21:42:26 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Use a local_irq_lock as a replacement for irq off regions. We keep the +semantic of irq-off in regard to the pool->lock and remain preemptible. + +Signed-off-by: Thomas Gleixner +--- + kernel/workqueue.c | 33 +++++++++++++++++++-------------- + 1 file changed, 19 insertions(+), 14 deletions(-) + +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + + #include "workqueue_internal.h" + +@@ -348,6 +349,8 @@ EXPORT_SYMBOL_GPL(system_power_efficient + struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly; + EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq); + ++static DEFINE_LOCAL_IRQ_LOCK(pendingb_lock); ++ + static int worker_thread(void *__worker); + static void workqueue_sysfs_unregister(struct workqueue_struct *wq); + +@@ -1101,9 +1104,11 @@ static void put_pwq_unlocked(struct pool + * As both pwqs and pools are RCU protected, the + * following lock operations are safe. + */ +- spin_lock_irq(&pwq->pool->lock); ++ rcu_read_lock(); ++ local_spin_lock_irq(pendingb_lock, &pwq->pool->lock); + put_pwq(pwq); +- spin_unlock_irq(&pwq->pool->lock); ++ local_spin_unlock_irq(pendingb_lock, &pwq->pool->lock); ++ rcu_read_unlock(); + } + } + +@@ -1207,7 +1212,7 @@ static int try_to_grab_pending(struct wo + struct worker_pool *pool; + struct pool_workqueue *pwq; + +- local_irq_save(*flags); ++ local_lock_irqsave(pendingb_lock, *flags); + + /* try to steal the timer if it exists */ + if (is_dwork) { +@@ -1271,7 +1276,7 @@ static int try_to_grab_pending(struct wo + spin_unlock(&pool->lock); + fail: + rcu_read_unlock(); +- local_irq_restore(*flags); ++ local_unlock_irqrestore(pendingb_lock, *flags); + if (work_is_canceling(work)) + return -ENOENT; + cpu_relax(); +@@ -1376,7 +1381,7 @@ static void __queue_work(int cpu, struct + * queued or lose PENDING. Grabbing PENDING and queueing should + * happen with IRQ disabled. + */ +- WARN_ON_ONCE(!irqs_disabled()); ++ WARN_ON_ONCE_NONRT(!irqs_disabled()); + + debug_work_activate(work); + +@@ -1482,14 +1487,14 @@ bool queue_work_on(int cpu, struct workq + bool ret = false; + unsigned long flags; + +- local_irq_save(flags); ++ local_lock_irqsave(pendingb_lock,flags); + + if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { + __queue_work(cpu, wq, work); + ret = true; + } + +- local_irq_restore(flags); ++ local_unlock_irqrestore(pendingb_lock, flags); + return ret; + } + EXPORT_SYMBOL(queue_work_on); +@@ -1556,14 +1561,14 @@ bool queue_delayed_work_on(int cpu, stru + unsigned long flags; + + /* read the comment in __queue_work() */ +- local_irq_save(flags); ++ local_lock_irqsave(pendingb_lock, flags); + + if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { + __queue_delayed_work(cpu, wq, dwork, delay); + ret = true; + } + +- local_irq_restore(flags); ++ local_unlock_irqrestore(pendingb_lock, flags); + return ret; + } + EXPORT_SYMBOL(queue_delayed_work_on); +@@ -1598,7 +1603,7 @@ bool mod_delayed_work_on(int cpu, struct + + if (likely(ret >= 0)) { + __queue_delayed_work(cpu, wq, dwork, delay); +- local_irq_restore(flags); ++ local_unlock_irqrestore(pendingb_lock, flags); + } + + /* -ENOENT from try_to_grab_pending() becomes %true */ +@@ -2916,7 +2921,7 @@ static bool __cancel_work_timer(struct w + + /* tell other tasks trying to grab @work to back off */ + mark_work_canceling(work); +- local_irq_restore(flags); ++ local_unlock_irqrestore(pendingb_lock, flags); + + flush_work(work); + clear_work_data(work); +@@ -2971,10 +2976,10 @@ EXPORT_SYMBOL_GPL(cancel_work_sync); + */ + bool flush_delayed_work(struct delayed_work *dwork) + { +- local_irq_disable(); ++ local_lock_irq(pendingb_lock); + if (del_timer_sync(&dwork->timer)) + __queue_work(dwork->cpu, dwork->wq, &dwork->work); +- local_irq_enable(); ++ local_unlock_irq(pendingb_lock); + return flush_work(&dwork->work); + } + EXPORT_SYMBOL(flush_delayed_work); +@@ -2992,7 +2997,7 @@ static bool __cancel_work(struct work_st + return false; + + set_work_pool_and_clear_pending(work, get_work_pool_id(work)); +- local_irq_restore(flags); ++ local_unlock_irqrestore(pendingb_lock, flags); + return ret; + } + diff --git a/patches/features/all/rt/workqueue-use-rcu.patch b/patches/features/all/rt/workqueue-use-rcu.patch new file mode 100644 index 00000000000..5f27ef90d1b --- /dev/null +++ b/patches/features/all/rt/workqueue-use-rcu.patch @@ -0,0 +1,354 @@ +Subject: workqueue: Use normal rcu +From: Thomas Gleixner +Date: Wed, 24 Jul 2013 15:26:54 +0200 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +There is no need for sched_rcu. The undocumented reason why sched_rcu +is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by +abusing the fact that sched_rcu reader side critical sections are also +protected by preempt or irq disabled regions. + +Signed-off-by: Thomas Gleixner +--- + kernel/workqueue.c | 95 +++++++++++++++++++++++++++++------------------------ + 1 file changed, 52 insertions(+), 43 deletions(-) + +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -125,7 +125,7 @@ enum { + * + * PL: wq_pool_mutex protected. + * +- * PR: wq_pool_mutex protected for writes. Sched-RCU protected for reads. ++ * PR: wq_pool_mutex protected for writes. RCU protected for reads. + * + * PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads. + * +@@ -134,7 +134,7 @@ enum { + * + * WQ: wq->mutex protected. + * +- * WR: wq->mutex protected for writes. Sched-RCU protected for reads. ++ * WR: wq->mutex protected for writes. RCU protected for reads. + * + * MD: wq_mayday_lock protected. + */ +@@ -185,7 +185,7 @@ struct worker_pool { + atomic_t nr_running ____cacheline_aligned_in_smp; + + /* +- * Destruction of pool is sched-RCU protected to allow dereferences ++ * Destruction of pool is RCU protected to allow dereferences + * from get_work_pool(). + */ + struct rcu_head rcu; +@@ -214,7 +214,7 @@ struct pool_workqueue { + /* + * Release of unbound pwq is punted to system_wq. See put_pwq() + * and pwq_unbound_release_workfn() for details. pool_workqueue +- * itself is also sched-RCU protected so that the first pwq can be ++ * itself is also RCU protected so that the first pwq can be + * determined without grabbing wq->mutex. + */ + struct work_struct unbound_release_work; +@@ -355,20 +355,20 @@ static void workqueue_sysfs_unregister(s + #include + + #define assert_rcu_or_pool_mutex() \ +- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \ ++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \ + !lockdep_is_held(&wq_pool_mutex), \ +- "sched RCU or wq_pool_mutex should be held") ++ "RCU or wq_pool_mutex should be held") + + #define assert_rcu_or_wq_mutex(wq) \ +- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \ ++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \ + !lockdep_is_held(&wq->mutex), \ +- "sched RCU or wq->mutex should be held") ++ "RCU or wq->mutex should be held") + + #define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \ +- RCU_LOCKDEP_WARN(!rcu_read_lock_sched_held() && \ ++ RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \ + !lockdep_is_held(&wq->mutex) && \ + !lockdep_is_held(&wq_pool_mutex), \ +- "sched RCU, wq->mutex or wq_pool_mutex should be held") ++ "RCU, wq->mutex or wq_pool_mutex should be held") + + #define for_each_cpu_worker_pool(pool, cpu) \ + for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \ +@@ -380,7 +380,7 @@ static void workqueue_sysfs_unregister(s + * @pool: iteration cursor + * @pi: integer used for iteration + * +- * This must be called either with wq_pool_mutex held or sched RCU read ++ * This must be called either with wq_pool_mutex held or RCU read + * locked. If the pool needs to be used beyond the locking in effect, the + * caller is responsible for guaranteeing that the pool stays online. + * +@@ -412,7 +412,7 @@ static void workqueue_sysfs_unregister(s + * @pwq: iteration cursor + * @wq: the target workqueue + * +- * This must be called either with wq->mutex held or sched RCU read locked. ++ * This must be called either with wq->mutex held or RCU read locked. + * If the pwq needs to be used beyond the locking in effect, the caller is + * responsible for guaranteeing that the pwq stays online. + * +@@ -548,7 +548,7 @@ static int worker_pool_assign_id(struct + * @wq: the target workqueue + * @node: the node ID + * +- * This must be called with any of wq_pool_mutex, wq->mutex or sched RCU ++ * This must be called with any of wq_pool_mutex, wq->mutex or RCU + * read locked. + * If the pwq needs to be used beyond the locking in effect, the caller is + * responsible for guaranteeing that the pwq stays online. +@@ -692,8 +692,8 @@ static struct pool_workqueue *get_work_p + * @work: the work item of interest + * + * Pools are created and destroyed under wq_pool_mutex, and allows read +- * access under sched-RCU read lock. As such, this function should be +- * called under wq_pool_mutex or with preemption disabled. ++ * access under RCU read lock. As such, this function should be ++ * called under wq_pool_mutex or inside of a rcu_read_lock() region. + * + * All fields of the returned pool are accessible as long as the above + * mentioned locking is in effect. If the returned pool needs to be used +@@ -1098,7 +1098,7 @@ static void put_pwq_unlocked(struct pool + { + if (pwq) { + /* +- * As both pwqs and pools are sched-RCU protected, the ++ * As both pwqs and pools are RCU protected, the + * following lock operations are safe. + */ + spin_lock_irq(&pwq->pool->lock); +@@ -1226,6 +1226,7 @@ static int try_to_grab_pending(struct wo + if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) + return 0; + ++ rcu_read_lock(); + /* + * The queueing is in progress, or it is already queued. Try to + * steal it from ->worklist without clearing WORK_STRUCT_PENDING. +@@ -1264,10 +1265,12 @@ static int try_to_grab_pending(struct wo + set_work_pool_and_keep_pending(work, pool->id); + + spin_unlock(&pool->lock); ++ rcu_read_unlock(); + return 1; + } + spin_unlock(&pool->lock); + fail: ++ rcu_read_unlock(); + local_irq_restore(*flags); + if (work_is_canceling(work)) + return -ENOENT; +@@ -1381,6 +1384,7 @@ static void __queue_work(int cpu, struct + if (unlikely(wq->flags & __WQ_DRAINING) && + WARN_ON_ONCE(!is_chained_work(wq))) + return; ++ rcu_read_lock(); + retry: + if (req_cpu == WORK_CPU_UNBOUND) + cpu = wq_select_unbound_cpu(raw_smp_processor_id()); +@@ -1437,10 +1441,8 @@ static void __queue_work(int cpu, struct + /* pwq determined, queue */ + trace_workqueue_queue_work(req_cpu, pwq, work); + +- if (WARN_ON(!list_empty(&work->entry))) { +- spin_unlock(&pwq->pool->lock); +- return; +- } ++ if (WARN_ON(!list_empty(&work->entry))) ++ goto out; + + pwq->nr_in_flight[pwq->work_color]++; + work_flags = work_color_to_flags(pwq->work_color); +@@ -1458,7 +1460,9 @@ static void __queue_work(int cpu, struct + + insert_work(pwq, work, worklist, work_flags); + ++out: + spin_unlock(&pwq->pool->lock); ++ rcu_read_unlock(); + } + + /** +@@ -2785,14 +2789,14 @@ static bool start_flush_work(struct work + + might_sleep(); + +- local_irq_disable(); ++ rcu_read_lock(); + pool = get_work_pool(work); + if (!pool) { +- local_irq_enable(); ++ rcu_read_unlock(); + return false; + } + +- spin_lock(&pool->lock); ++ spin_lock_irq(&pool->lock); + /* see the comment in try_to_grab_pending() with the same code */ + pwq = get_work_pwq(work); + if (pwq) { +@@ -2821,10 +2825,11 @@ static bool start_flush_work(struct work + else + lock_map_acquire_read(&pwq->wq->lockdep_map); + lock_map_release(&pwq->wq->lockdep_map); +- ++ rcu_read_unlock(); + return true; + already_gone: + spin_unlock_irq(&pool->lock); ++ rcu_read_unlock(); + return false; + } + +@@ -3245,7 +3250,7 @@ static void rcu_free_pool(struct rcu_hea + * put_unbound_pool - put a worker_pool + * @pool: worker_pool to put + * +- * Put @pool. If its refcnt reaches zero, it gets destroyed in sched-RCU ++ * Put @pool. If its refcnt reaches zero, it gets destroyed in RCU + * safe manner. get_unbound_pool() calls this function on its failure path + * and this function should be able to release pools which went through, + * successfully or not, init_worker_pool(). +@@ -3299,8 +3304,8 @@ static void put_unbound_pool(struct work + del_timer_sync(&pool->idle_timer); + del_timer_sync(&pool->mayday_timer); + +- /* sched-RCU protected to allow dereferences from get_work_pool() */ +- call_rcu_sched(&pool->rcu, rcu_free_pool); ++ /* RCU protected to allow dereferences from get_work_pool() */ ++ call_rcu(&pool->rcu, rcu_free_pool); + } + + /** +@@ -3407,14 +3412,14 @@ static void pwq_unbound_release_workfn(s + put_unbound_pool(pool); + mutex_unlock(&wq_pool_mutex); + +- call_rcu_sched(&pwq->rcu, rcu_free_pwq); ++ call_rcu(&pwq->rcu, rcu_free_pwq); + + /* + * If we're the last pwq going away, @wq is already dead and no one + * is gonna access it anymore. Schedule RCU free. + */ + if (is_last) +- call_rcu_sched(&wq->rcu, rcu_free_wq); ++ call_rcu(&wq->rcu, rcu_free_wq); + } + + /** +@@ -4064,7 +4069,7 @@ void destroy_workqueue(struct workqueue_ + * The base ref is never dropped on per-cpu pwqs. Directly + * schedule RCU free. + */ +- call_rcu_sched(&wq->rcu, rcu_free_wq); ++ call_rcu(&wq->rcu, rcu_free_wq); + } else { + /* + * We're the sole accessor of @wq at this point. Directly +@@ -4157,7 +4162,8 @@ bool workqueue_congested(int cpu, struct + struct pool_workqueue *pwq; + bool ret; + +- rcu_read_lock_sched(); ++ rcu_read_lock(); ++ preempt_disable(); + + if (cpu == WORK_CPU_UNBOUND) + cpu = smp_processor_id(); +@@ -4168,7 +4174,8 @@ bool workqueue_congested(int cpu, struct + pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu)); + + ret = !list_empty(&pwq->delayed_works); +- rcu_read_unlock_sched(); ++ preempt_enable(); ++ rcu_read_unlock(); + + return ret; + } +@@ -4194,15 +4201,15 @@ unsigned int work_busy(struct work_struc + if (work_pending(work)) + ret |= WORK_BUSY_PENDING; + +- local_irq_save(flags); ++ rcu_read_lock(); + pool = get_work_pool(work); + if (pool) { +- spin_lock(&pool->lock); ++ spin_lock_irqsave(&pool->lock, flags); + if (find_worker_executing_work(pool, work)) + ret |= WORK_BUSY_RUNNING; +- spin_unlock(&pool->lock); ++ spin_unlock_irqrestore(&pool->lock, flags); + } +- local_irq_restore(flags); ++ rcu_read_unlock(); + + return ret; + } +@@ -4391,7 +4398,7 @@ void show_workqueue_state(void) + unsigned long flags; + int pi; + +- rcu_read_lock_sched(); ++ rcu_read_lock(); + + pr_info("Showing busy workqueues and worker pools:\n"); + +@@ -4444,7 +4451,7 @@ void show_workqueue_state(void) + spin_unlock_irqrestore(&pool->lock, flags); + } + +- rcu_read_unlock_sched(); ++ rcu_read_unlock(); + } + + /* +@@ -4782,16 +4789,16 @@ bool freeze_workqueues_busy(void) + * nr_active is monotonically decreasing. It's safe + * to peek without lock. + */ +- rcu_read_lock_sched(); ++ rcu_read_lock(); + for_each_pwq(pwq, wq) { + WARN_ON_ONCE(pwq->nr_active < 0); + if (pwq->nr_active) { + busy = true; +- rcu_read_unlock_sched(); ++ rcu_read_unlock(); + goto out_unlock; + } + } +- rcu_read_unlock_sched(); ++ rcu_read_unlock(); + } + out_unlock: + mutex_unlock(&wq_pool_mutex); +@@ -4981,7 +4988,8 @@ static ssize_t wq_pool_ids_show(struct d + const char *delim = ""; + int node, written = 0; + +- rcu_read_lock_sched(); ++ get_online_cpus(); ++ rcu_read_lock(); + for_each_node(node) { + written += scnprintf(buf + written, PAGE_SIZE - written, + "%s%d:%d", delim, node, +@@ -4989,7 +4997,8 @@ static ssize_t wq_pool_ids_show(struct d + delim = " "; + } + written += scnprintf(buf + written, PAGE_SIZE - written, "\n"); +- rcu_read_unlock_sched(); ++ rcu_read_unlock(); ++ put_online_cpus(); + + return written; + } diff --git a/patches/features/all/rt/x86-UV-raw_spinlock-conversion.patch b/patches/features/all/rt/x86-UV-raw_spinlock-conversion.patch new file mode 100644 index 00000000000..d47249efe75 --- /dev/null +++ b/patches/features/all/rt/x86-UV-raw_spinlock-conversion.patch @@ -0,0 +1,221 @@ +From: Mike Galbraith +Date: Sun, 2 Nov 2014 08:31:37 +0100 +Subject: x86: UV: raw_spinlock conversion +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Shrug. Lots of hobbyists have a beast in their basement, right? + + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/include/asm/uv/uv_bau.h | 14 +++++++------- + arch/x86/platform/uv/tlb_uv.c | 26 +++++++++++++------------- + arch/x86/platform/uv/uv_time.c | 21 +++++++++++++-------- + 3 files changed, 33 insertions(+), 28 deletions(-) + +--- a/arch/x86/include/asm/uv/uv_bau.h ++++ b/arch/x86/include/asm/uv/uv_bau.h +@@ -624,9 +624,9 @@ struct bau_control { + cycles_t send_message; + cycles_t period_end; + cycles_t period_time; +- spinlock_t uvhub_lock; +- spinlock_t queue_lock; +- spinlock_t disable_lock; ++ raw_spinlock_t uvhub_lock; ++ raw_spinlock_t queue_lock; ++ raw_spinlock_t disable_lock; + /* tunables */ + int max_concurr; + int max_concurr_const; +@@ -815,15 +815,15 @@ static inline int atom_asr(short i, stru + * to be lowered below the current 'v'. atomic_add_unless can only stop + * on equal. + */ +-static inline int atomic_inc_unless_ge(spinlock_t *lock, atomic_t *v, int u) ++static inline int atomic_inc_unless_ge(raw_spinlock_t *lock, atomic_t *v, int u) + { +- spin_lock(lock); ++ raw_spin_lock(lock); + if (atomic_read(v) >= u) { +- spin_unlock(lock); ++ raw_spin_unlock(lock); + return 0; + } + atomic_inc(v); +- spin_unlock(lock); ++ raw_spin_unlock(lock); + return 1; + } + +--- a/arch/x86/platform/uv/tlb_uv.c ++++ b/arch/x86/platform/uv/tlb_uv.c +@@ -748,9 +748,9 @@ static void destination_plugged(struct b + + quiesce_local_uvhub(hmaster); + +- spin_lock(&hmaster->queue_lock); ++ raw_spin_lock(&hmaster->queue_lock); + reset_with_ipi(&bau_desc->distribution, bcp); +- spin_unlock(&hmaster->queue_lock); ++ raw_spin_unlock(&hmaster->queue_lock); + + end_uvhub_quiesce(hmaster); + +@@ -770,9 +770,9 @@ static void destination_timeout(struct b + + quiesce_local_uvhub(hmaster); + +- spin_lock(&hmaster->queue_lock); ++ raw_spin_lock(&hmaster->queue_lock); + reset_with_ipi(&bau_desc->distribution, bcp); +- spin_unlock(&hmaster->queue_lock); ++ raw_spin_unlock(&hmaster->queue_lock); + + end_uvhub_quiesce(hmaster); + +@@ -793,7 +793,7 @@ static void disable_for_period(struct ba + cycles_t tm1; + + hmaster = bcp->uvhub_master; +- spin_lock(&hmaster->disable_lock); ++ raw_spin_lock(&hmaster->disable_lock); + if (!bcp->baudisabled) { + stat->s_bau_disabled++; + tm1 = get_cycles(); +@@ -806,7 +806,7 @@ static void disable_for_period(struct ba + } + } + } +- spin_unlock(&hmaster->disable_lock); ++ raw_spin_unlock(&hmaster->disable_lock); + } + + static void count_max_concurr(int stat, struct bau_control *bcp, +@@ -869,7 +869,7 @@ static void record_send_stats(cycles_t t + */ + static void uv1_throttle(struct bau_control *hmaster, struct ptc_stats *stat) + { +- spinlock_t *lock = &hmaster->uvhub_lock; ++ raw_spinlock_t *lock = &hmaster->uvhub_lock; + atomic_t *v; + + v = &hmaster->active_descriptor_count; +@@ -1002,7 +1002,7 @@ static int check_enable(struct bau_contr + struct bau_control *hmaster; + + hmaster = bcp->uvhub_master; +- spin_lock(&hmaster->disable_lock); ++ raw_spin_lock(&hmaster->disable_lock); + if (bcp->baudisabled && (get_cycles() >= bcp->set_bau_on_time)) { + stat->s_bau_reenabled++; + for_each_present_cpu(tcpu) { +@@ -1014,10 +1014,10 @@ static int check_enable(struct bau_contr + tbcp->period_giveups = 0; + } + } +- spin_unlock(&hmaster->disable_lock); ++ raw_spin_unlock(&hmaster->disable_lock); + return 0; + } +- spin_unlock(&hmaster->disable_lock); ++ raw_spin_unlock(&hmaster->disable_lock); + return -1; + } + +@@ -1940,9 +1940,9 @@ static void __init init_per_cpu_tunables + bcp->cong_reps = congested_reps; + bcp->disabled_period = sec_2_cycles(disabled_period); + bcp->giveup_limit = giveup_limit; +- spin_lock_init(&bcp->queue_lock); +- spin_lock_init(&bcp->uvhub_lock); +- spin_lock_init(&bcp->disable_lock); ++ raw_spin_lock_init(&bcp->queue_lock); ++ raw_spin_lock_init(&bcp->uvhub_lock); ++ raw_spin_lock_init(&bcp->disable_lock); + } + } + +--- a/arch/x86/platform/uv/uv_time.c ++++ b/arch/x86/platform/uv/uv_time.c +@@ -57,7 +57,7 @@ static DEFINE_PER_CPU(struct clock_event + + /* There is one of these allocated per node */ + struct uv_rtc_timer_head { +- spinlock_t lock; ++ raw_spinlock_t lock; + /* next cpu waiting for timer, local node relative: */ + int next_cpu; + /* number of cpus on this node: */ +@@ -177,7 +177,7 @@ static __init int uv_rtc_allocate_timers + uv_rtc_deallocate_timers(); + return -ENOMEM; + } +- spin_lock_init(&head->lock); ++ raw_spin_lock_init(&head->lock); + head->ncpus = uv_blade_nr_possible_cpus(bid); + head->next_cpu = -1; + blade_info[bid] = head; +@@ -231,7 +231,7 @@ static int uv_rtc_set_timer(int cpu, u64 + unsigned long flags; + int next_cpu; + +- spin_lock_irqsave(&head->lock, flags); ++ raw_spin_lock_irqsave(&head->lock, flags); + + next_cpu = head->next_cpu; + *t = expires; +@@ -243,12 +243,12 @@ static int uv_rtc_set_timer(int cpu, u64 + if (uv_setup_intr(cpu, expires)) { + *t = ULLONG_MAX; + uv_rtc_find_next_timer(head, pnode); +- spin_unlock_irqrestore(&head->lock, flags); ++ raw_spin_unlock_irqrestore(&head->lock, flags); + return -ETIME; + } + } + +- spin_unlock_irqrestore(&head->lock, flags); ++ raw_spin_unlock_irqrestore(&head->lock, flags); + return 0; + } + +@@ -267,7 +267,7 @@ static int uv_rtc_unset_timer(int cpu, i + unsigned long flags; + int rc = 0; + +- spin_lock_irqsave(&head->lock, flags); ++ raw_spin_lock_irqsave(&head->lock, flags); + + if ((head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t) || force) + rc = 1; +@@ -279,7 +279,7 @@ static int uv_rtc_unset_timer(int cpu, i + uv_rtc_find_next_timer(head, pnode); + } + +- spin_unlock_irqrestore(&head->lock, flags); ++ raw_spin_unlock_irqrestore(&head->lock, flags); + + return rc; + } +@@ -299,13 +299,18 @@ static int uv_rtc_unset_timer(int cpu, i + static cycle_t uv_read_rtc(struct clocksource *cs) + { + unsigned long offset; ++ cycle_t cycles; + ++ preempt_disable(); + if (uv_get_min_hub_revision_id() == 1) + offset = 0; + else + offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE; + +- return (cycle_t)uv_read_local_mmr(UVH_RTC | offset); ++ cycles = (cycle_t)uv_read_local_mmr(UVH_RTC | offset); ++ preempt_enable(); ++ ++ return cycles; + } + + /* diff --git a/patches/features/all/rt/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch b/patches/features/all/rt/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch new file mode 100644 index 00000000000..f7864ee98c6 --- /dev/null +++ b/patches/features/all/rt/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch @@ -0,0 +1,45 @@ +From 309789b8125b7eee6fd1c3a4716fcb6ea1ad32ba Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 21 Oct 2016 10:29:11 +0200 +Subject: [PATCH] x86/apic: get rid of "warning: 'acpi_ioapic_lock' defined but + not used" +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +kbuild test robot reported this against the -RT tree: + +| In file included from include/linux/mutex.h:30:0, +| from include/linux/notifier.h:13, +| from include/linux/memory_hotplug.h:6, +| from include/linux/mmzone.h:777, +| from include/linux/gfp.h:5, +| from include/linux/slab.h:14, +| from include/linux/resource_ext.h:19, +| from include/linux/acpi.h:26, +| from arch/x86/kernel/acpi/boot.c:27: +|>> arch/x86/kernel/acpi/boot.c:90:21: warning: 'acpi_ioapic_lock' defined but not used [-Wunused-variable] +| static DEFINE_MUTEX(acpi_ioapic_lock); +| ^ +| include/linux/mutex_rt.h:27:15: note: in definition of macro 'DEFINE_MUTEX' +| struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) + ^~~~~~~~~ +which is also true (as in non-used) for !RT but the compiler does not +emit a warning. + +Reported-by: kbuild test robot +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/kernel/acpi/boot.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/x86/kernel/acpi/boot.c ++++ b/arch/x86/kernel/acpi/boot.c +@@ -87,7 +87,9 @@ static u64 acpi_lapic_addr __initdata = + * ->ioapic_mutex + * ->ioapic_lock + */ ++#ifdef CONFIG_X86_IO_APIC + static DEFINE_MUTEX(acpi_ioapic_lock); ++#endif + + /* -------------------------------------------------------------------------- + Boot-time Configuration diff --git a/patches/features/all/rt/x86-crypto-reduce-preempt-disabled-regions.patch b/patches/features/all/rt/x86-crypto-reduce-preempt-disabled-regions.patch new file mode 100644 index 00000000000..9451314dd49 --- /dev/null +++ b/patches/features/all/rt/x86-crypto-reduce-preempt-disabled-regions.patch @@ -0,0 +1,113 @@ +Subject: x86: crypto: Reduce preempt disabled regions +From: Peter Zijlstra +Date: Mon, 14 Nov 2011 18:19:27 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Restrict the preempt disabled regions to the actual floating point +operations and enable preemption for the administrative actions. + +This is necessary on RT to avoid that kfree and other operations are +called with preemption disabled. + +Reported-and-tested-by: Carsten Emde +Signed-off-by: Peter Zijlstra + +Signed-off-by: Thomas Gleixner +--- + arch/x86/crypto/aesni-intel_glue.c | 24 +++++++++++++----------- + 1 file changed, 13 insertions(+), 11 deletions(-) + +--- a/arch/x86/crypto/aesni-intel_glue.c ++++ b/arch/x86/crypto/aesni-intel_glue.c +@@ -372,14 +372,14 @@ static int ecb_encrypt(struct blkcipher_ + err = blkcipher_walk_virt(desc, &walk); + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + +- kernel_fpu_begin(); + while ((nbytes = walk.nbytes)) { ++ kernel_fpu_begin(); + aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr, +- nbytes & AES_BLOCK_MASK); ++ nbytes & AES_BLOCK_MASK); ++ kernel_fpu_end(); + nbytes &= AES_BLOCK_SIZE - 1; + err = blkcipher_walk_done(desc, &walk, nbytes); + } +- kernel_fpu_end(); + + return err; + } +@@ -396,14 +396,14 @@ static int ecb_decrypt(struct blkcipher_ + err = blkcipher_walk_virt(desc, &walk); + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + +- kernel_fpu_begin(); + while ((nbytes = walk.nbytes)) { ++ kernel_fpu_begin(); + aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr, + nbytes & AES_BLOCK_MASK); ++ kernel_fpu_end(); + nbytes &= AES_BLOCK_SIZE - 1; + err = blkcipher_walk_done(desc, &walk, nbytes); + } +- kernel_fpu_end(); + + return err; + } +@@ -420,14 +420,14 @@ static int cbc_encrypt(struct blkcipher_ + err = blkcipher_walk_virt(desc, &walk); + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + +- kernel_fpu_begin(); + while ((nbytes = walk.nbytes)) { ++ kernel_fpu_begin(); + aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr, + nbytes & AES_BLOCK_MASK, walk.iv); ++ kernel_fpu_end(); + nbytes &= AES_BLOCK_SIZE - 1; + err = blkcipher_walk_done(desc, &walk, nbytes); + } +- kernel_fpu_end(); + + return err; + } +@@ -444,14 +444,14 @@ static int cbc_decrypt(struct blkcipher_ + err = blkcipher_walk_virt(desc, &walk); + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + +- kernel_fpu_begin(); + while ((nbytes = walk.nbytes)) { ++ kernel_fpu_begin(); + aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr, + nbytes & AES_BLOCK_MASK, walk.iv); ++ kernel_fpu_end(); + nbytes &= AES_BLOCK_SIZE - 1; + err = blkcipher_walk_done(desc, &walk, nbytes); + } +- kernel_fpu_end(); + + return err; + } +@@ -503,18 +503,20 @@ static int ctr_crypt(struct blkcipher_de + err = blkcipher_walk_virt_block(desc, &walk, AES_BLOCK_SIZE); + desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; + +- kernel_fpu_begin(); + while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) { ++ kernel_fpu_begin(); + aesni_ctr_enc_tfm(ctx, walk.dst.virt.addr, walk.src.virt.addr, + nbytes & AES_BLOCK_MASK, walk.iv); ++ kernel_fpu_end(); + nbytes &= AES_BLOCK_SIZE - 1; + err = blkcipher_walk_done(desc, &walk, nbytes); + } + if (walk.nbytes) { ++ kernel_fpu_begin(); + ctr_crypt_final(ctx, &walk); ++ kernel_fpu_end(); + err = blkcipher_walk_done(desc, &walk, 0); + } +- kernel_fpu_end(); + + return err; + } diff --git a/patches/features/all/rt/x86-highmem-add-a-already-used-pte-check.patch b/patches/features/all/rt/x86-highmem-add-a-already-used-pte-check.patch new file mode 100644 index 00000000000..c82668b54f4 --- /dev/null +++ b/patches/features/all/rt/x86-highmem-add-a-already-used-pte-check.patch @@ -0,0 +1,23 @@ +From: Sebastian Andrzej Siewior +Date: Mon, 11 Mar 2013 17:09:55 +0100 +Subject: x86/highmem: Add a "already used pte" check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +This is a copy from kmap_atomic_prot(). + +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/mm/iomap_32.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/x86/mm/iomap_32.c ++++ b/arch/x86/mm/iomap_32.c +@@ -66,6 +66,8 @@ void *kmap_atomic_prot_pfn(unsigned long + type = kmap_atomic_idx_push(); + idx = type + KM_TYPE_NR * smp_processor_id(); + vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); ++ WARN_ON(!pte_none(*(kmap_pte - idx))); ++ + #ifdef CONFIG_PREEMPT_RT_FULL + current->kmap_pte[type] = pte; + #endif diff --git a/patches/features/all/rt/x86-io-apic-migra-no-unmask.patch b/patches/features/all/rt/x86-io-apic-migra-no-unmask.patch new file mode 100644 index 00000000000..95e06ca5135 --- /dev/null +++ b/patches/features/all/rt/x86-io-apic-migra-no-unmask.patch @@ -0,0 +1,28 @@ +From: Ingo Molnar +Date: Fri, 3 Jul 2009 08:29:27 -0500 +Subject: x86/ioapic: Do not unmask io_apic when interrupt is in progress +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +With threaded interrupts we might see an interrupt in progress on +migration. Do not unmask it when this is the case. + +Signed-off-by: Ingo Molnar +Signed-off-by: Thomas Gleixner + +--- +xXx + arch/x86/kernel/apic/io_apic.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/apic/io_apic.c ++++ b/arch/x86/kernel/apic/io_apic.c +@@ -1712,7 +1712,8 @@ static bool io_apic_level_ack_pending(st + static inline bool ioapic_irqd_mask(struct irq_data *data) + { + /* If we are moving the irq we need to mask it */ +- if (unlikely(irqd_is_setaffinity_pending(data))) { ++ if (unlikely(irqd_is_setaffinity_pending(data) && ++ !irqd_irq_inprogress(data))) { + mask_ioapic_irq(data); + return true; + } diff --git a/patches/features/all/rt/x86-kvm-require-const-tsc-for-rt.patch b/patches/features/all/rt/x86-kvm-require-const-tsc-for-rt.patch new file mode 100644 index 00000000000..ae15797298b --- /dev/null +++ b/patches/features/all/rt/x86-kvm-require-const-tsc-for-rt.patch @@ -0,0 +1,31 @@ +Subject: x86: kvm Require const tsc for RT +From: Thomas Gleixner +Date: Sun, 06 Nov 2011 12:26:18 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Non constant TSC is a nightmare on bare metal already, but with +virtualization it becomes a complete disaster because the workarounds +are horrible latency wise. That's also a preliminary for running RT in +a guest on top of a RT host. + +Signed-off-by: Thomas Gleixner +--- + arch/x86/kvm/x86.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/arch/x86/kvm/x86.c ++++ b/arch/x86/kvm/x86.c +@@ -5925,6 +5925,13 @@ int kvm_arch_init(void *opaque) + goto out; + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++ if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { ++ printk(KERN_ERR "RT requires X86_FEATURE_CONSTANT_TSC\n"); ++ return -EOPNOTSUPP; ++ } ++#endif ++ + r = kvm_mmu_module_init(); + if (r) + goto out_free_percpu; diff --git a/patches/features/all/rt/x86-mce-timer-hrtimer.patch b/patches/features/all/rt/x86-mce-timer-hrtimer.patch new file mode 100644 index 00000000000..11b820c8b11 --- /dev/null +++ b/patches/features/all/rt/x86-mce-timer-hrtimer.patch @@ -0,0 +1,180 @@ +From: Thomas Gleixner +Date: Mon, 13 Dec 2010 16:33:39 +0100 +Subject: x86: Convert mce timer to hrtimer +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +mce_timer is started in atomic contexts of cpu bringup. This results +in might_sleep() warnings on RT. Convert mce_timer to a hrtimer to +avoid this. + +Signed-off-by: Thomas Gleixner +fold in: +|From: Mike Galbraith +|Date: Wed, 29 May 2013 13:52:13 +0200 +|Subject: [PATCH] x86/mce: fix mce timer interval +| +|Seems mce timer fire at the wrong frequency in -rt kernels since roughly +|forever due to 32 bit overflow. 3.8-rt is also missing a multiplier. +| +|Add missing us -> ns conversion and 32 bit overflow prevention. +| +|Signed-off-by: Mike Galbraith +|[bigeasy: use ULL instead of u64 cast] +|Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/kernel/cpu/mcheck/mce.c | 52 +++++++++++++++------------------------ + 1 file changed, 20 insertions(+), 32 deletions(-) + +--- a/arch/x86/kernel/cpu/mcheck/mce.c ++++ b/arch/x86/kernel/cpu/mcheck/mce.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -1317,7 +1318,7 @@ void mce_log_therm_throt_event(__u64 sta + static unsigned long check_interval = INITIAL_CHECK_INTERVAL; + + static DEFINE_PER_CPU(unsigned long, mce_next_interval); /* in jiffies */ +-static DEFINE_PER_CPU(struct timer_list, mce_timer); ++static DEFINE_PER_CPU(struct hrtimer, mce_timer); + + static unsigned long mce_adjust_timer_default(unsigned long interval) + { +@@ -1326,32 +1327,18 @@ static unsigned long mce_adjust_timer_de + + static unsigned long (*mce_adjust_timer)(unsigned long interval) = mce_adjust_timer_default; + +-static void __restart_timer(struct timer_list *t, unsigned long interval) ++static enum hrtimer_restart __restart_timer(struct hrtimer *timer, unsigned long interval) + { +- unsigned long when = jiffies + interval; +- unsigned long flags; +- +- local_irq_save(flags); +- +- if (timer_pending(t)) { +- if (time_before(when, t->expires)) +- mod_timer(t, when); +- } else { +- t->expires = round_jiffies(when); +- add_timer_on(t, smp_processor_id()); +- } +- +- local_irq_restore(flags); ++ if (!interval) ++ return HRTIMER_NORESTART; ++ hrtimer_forward_now(timer, ns_to_ktime(jiffies_to_nsecs(interval))); ++ return HRTIMER_RESTART; + } + +-static void mce_timer_fn(unsigned long data) ++static enum hrtimer_restart mce_timer_fn(struct hrtimer *timer) + { +- struct timer_list *t = this_cpu_ptr(&mce_timer); +- int cpu = smp_processor_id(); + unsigned long iv; + +- WARN_ON(cpu != data); +- + iv = __this_cpu_read(mce_next_interval); + + if (mce_available(this_cpu_ptr(&cpu_info))) { +@@ -1374,7 +1361,7 @@ static void mce_timer_fn(unsigned long d + + done: + __this_cpu_write(mce_next_interval, iv); +- __restart_timer(t, iv); ++ return __restart_timer(timer, iv); + } + + /* +@@ -1382,7 +1369,7 @@ static void mce_timer_fn(unsigned long d + */ + void mce_timer_kick(unsigned long interval) + { +- struct timer_list *t = this_cpu_ptr(&mce_timer); ++ struct hrtimer *t = this_cpu_ptr(&mce_timer); + unsigned long iv = __this_cpu_read(mce_next_interval); + + __restart_timer(t, interval); +@@ -1397,7 +1384,7 @@ static void mce_timer_delete_all(void) + int cpu; + + for_each_online_cpu(cpu) +- del_timer_sync(&per_cpu(mce_timer, cpu)); ++ hrtimer_cancel(&per_cpu(mce_timer, cpu)); + } + + static void mce_do_trigger(struct work_struct *work) +@@ -1732,7 +1719,7 @@ static void __mcheck_cpu_clear_vendor(st + } + } + +-static void mce_start_timer(unsigned int cpu, struct timer_list *t) ++static void mce_start_timer(unsigned int cpu, struct hrtimer *t) + { + unsigned long iv = check_interval * HZ; + +@@ -1741,16 +1728,17 @@ static void mce_start_timer(unsigned int + + per_cpu(mce_next_interval, cpu) = iv; + +- t->expires = round_jiffies(jiffies + iv); +- add_timer_on(t, cpu); ++ hrtimer_start_range_ns(t, ns_to_ktime(jiffies_to_usecs(iv) * 1000ULL), ++ 0, HRTIMER_MODE_REL_PINNED); + } + + static void __mcheck_cpu_init_timer(void) + { +- struct timer_list *t = this_cpu_ptr(&mce_timer); ++ struct hrtimer *t = this_cpu_ptr(&mce_timer); + unsigned int cpu = smp_processor_id(); + +- setup_pinned_timer(t, mce_timer_fn, cpu); ++ hrtimer_init(t, CLOCK_MONOTONIC, HRTIMER_MODE_REL); ++ t->function = mce_timer_fn; + mce_start_timer(cpu, t); + } + +@@ -2475,6 +2463,8 @@ static void mce_disable_cpu(void *h) + if (!mce_available(raw_cpu_ptr(&cpu_info))) + return; + ++ hrtimer_cancel(this_cpu_ptr(&mce_timer)); ++ + if (!(action & CPU_TASKS_FROZEN)) + cmci_clear(); + +@@ -2497,6 +2487,7 @@ static void mce_reenable_cpu(void *h) + if (b->init) + wrmsrl(msr_ops.ctl(i), b->ctl); + } ++ __mcheck_cpu_init_timer(); + } + + /* Get notified when a cpu comes on/off. Be hotplug friendly. */ +@@ -2504,7 +2495,6 @@ static int + mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) + { + unsigned int cpu = (unsigned long)hcpu; +- struct timer_list *t = &per_cpu(mce_timer, cpu); + + switch (action & ~CPU_TASKS_FROZEN) { + case CPU_ONLINE: +@@ -2524,11 +2514,9 @@ mce_cpu_callback(struct notifier_block * + break; + case CPU_DOWN_PREPARE: + smp_call_function_single(cpu, mce_disable_cpu, &action, 1); +- del_timer_sync(t); + break; + case CPU_DOWN_FAILED: + smp_call_function_single(cpu, mce_reenable_cpu, &action, 1); +- mce_start_timer(cpu, t); + break; + } + diff --git a/patches/features/all/rt/x86-mce-use-swait-queue-for-mce-wakeups.patch b/patches/features/all/rt/x86-mce-use-swait-queue-for-mce-wakeups.patch new file mode 100644 index 00000000000..470c45f05ce --- /dev/null +++ b/patches/features/all/rt/x86-mce-use-swait-queue-for-mce-wakeups.patch @@ -0,0 +1,160 @@ +Subject: x86/mce: use swait queue for mce wakeups +From: Steven Rostedt +Date: Fri, 27 Feb 2015 15:20:37 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +We had a customer report a lockup on a 3.0-rt kernel that had the +following backtrace: + +[ffff88107fca3e80] rt_spin_lock_slowlock at ffffffff81499113 +[ffff88107fca3f40] rt_spin_lock at ffffffff81499a56 +[ffff88107fca3f50] __wake_up at ffffffff81043379 +[ffff88107fca3f80] mce_notify_irq at ffffffff81017328 +[ffff88107fca3f90] intel_threshold_interrupt at ffffffff81019508 +[ffff88107fca3fa0] smp_threshold_interrupt at ffffffff81019fc1 +[ffff88107fca3fb0] threshold_interrupt at ffffffff814a1853 + +It actually bugged because the lock was taken by the same owner that +already had that lock. What happened was the thread that was setting +itself on a wait queue had the lock when an MCE triggered. The MCE +interrupt does a wake up on its wait list and grabs the same lock. + +NOTE: THIS IS NOT A BUG ON MAINLINE + +Sorry for yelling, but as I Cc'd mainline maintainers I want them to +know that this is an PREEMPT_RT bug only. I only Cc'd them for advice. + +On PREEMPT_RT the wait queue locks are converted from normal +"spin_locks" into an rt_mutex (see the rt_spin_lock_slowlock above). +These are not to be taken by hard interrupt context. This usually isn't +a problem as most all interrupts in PREEMPT_RT are converted into +schedulable threads. Unfortunately that's not the case with the MCE irq. + +As wait queue locks are notorious for long hold times, we can not +convert them to raw_spin_locks without causing issues with -rt. But +Thomas has created a "simple-wait" structure that uses raw spin locks +which may have been a good fit. + +Unfortunately, wait queues are not the only issue, as the mce_notify_irq +also does a schedule_work(), which grabs the workqueue spin locks that +have the exact same issue. + +Thus, this patch I'm proposing is to move the actual work of the MCE +interrupt into a helper thread that gets woken up on the MCE interrupt +and does the work in a schedulable context. + +NOTE: THIS PATCH ONLY CHANGES THE BEHAVIOR WHEN PREEMPT_RT IS SET + +Oops, sorry for yelling again, but I want to stress that I keep the same +behavior of mainline when PREEMPT_RT is not set. Thus, this only changes +the MCE behavior when PREEMPT_RT is configured. + +Signed-off-by: Steven Rostedt +[bigeasy@linutronix: make mce_notify_work() a proper prototype, use + kthread_run()] +Signed-off-by: Sebastian Andrzej Siewior +[wagi: use work-simple framework to defer work to a kthread] +Signed-off-by: Daniel Wagner +--- + arch/x86/kernel/cpu/mcheck/mce.c | 68 ++++++++++++++++++++++++++++++++------- + 1 file changed, 56 insertions(+), 12 deletions(-) + +--- a/arch/x86/kernel/cpu/mcheck/mce.c ++++ b/arch/x86/kernel/cpu/mcheck/mce.c +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -1394,6 +1395,56 @@ static void mce_do_trigger(struct work_s + + static DECLARE_WORK(mce_trigger_work, mce_do_trigger); + ++static void __mce_notify_work(struct swork_event *event) ++{ ++ /* Not more than two messages every minute */ ++ static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2); ++ ++ /* wake processes polling /dev/mcelog */ ++ wake_up_interruptible(&mce_chrdev_wait); ++ ++ /* ++ * There is no risk of missing notifications because ++ * work_pending is always cleared before the function is ++ * executed. ++ */ ++ if (mce_helper[0] && !work_pending(&mce_trigger_work)) ++ schedule_work(&mce_trigger_work); ++ ++ if (__ratelimit(&ratelimit)) ++ pr_info(HW_ERR "Machine check events logged\n"); ++} ++ ++#ifdef CONFIG_PREEMPT_RT_FULL ++static bool notify_work_ready __read_mostly; ++static struct swork_event notify_work; ++ ++static int mce_notify_work_init(void) ++{ ++ int err; ++ ++ err = swork_get(); ++ if (err) ++ return err; ++ ++ INIT_SWORK(¬ify_work, __mce_notify_work); ++ notify_work_ready = true; ++ return 0; ++} ++ ++static void mce_notify_work(void) ++{ ++ if (notify_work_ready) ++ swork_queue(¬ify_work); ++} ++#else ++static void mce_notify_work(void) ++{ ++ __mce_notify_work(NULL); ++} ++static inline int mce_notify_work_init(void) { return 0; } ++#endif ++ + /* + * Notify the user(s) about new machine check events. + * Can be called from interrupt context, but not from machine check/NMI +@@ -1401,19 +1452,8 @@ static DECLARE_WORK(mce_trigger_work, mc + */ + int mce_notify_irq(void) + { +- /* Not more than two messages every minute */ +- static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2); +- + if (test_and_clear_bit(0, &mce_need_notify)) { +- /* wake processes polling /dev/mcelog */ +- wake_up_interruptible(&mce_chrdev_wait); +- +- if (mce_helper[0]) +- schedule_work(&mce_trigger_work); +- +- if (__ratelimit(&ratelimit)) +- pr_info(HW_ERR "Machine check events logged\n"); +- ++ mce_notify_work(); + return 1; + } + return 0; +@@ -2555,6 +2595,10 @@ static __init int mcheck_init_device(voi + goto err_out; + } + ++ err = mce_notify_work_init(); ++ if (err) ++ goto err_out; ++ + if (!zalloc_cpumask_var(&mce_device_initialized, GFP_KERNEL)) { + err = -ENOMEM; + goto err_out; diff --git a/patches/features/all/rt/x86-preempt-lazy.patch b/patches/features/all/rt/x86-preempt-lazy.patch new file mode 100644 index 00000000000..40d662a3429 --- /dev/null +++ b/patches/features/all/rt/x86-preempt-lazy.patch @@ -0,0 +1,221 @@ +Subject: x86: Support for lazy preemption +From: Thomas Gleixner +Date: Thu, 01 Nov 2012 11:03:47 +0100 +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Implement the x86 pieces for lazy preempt. + +Signed-off-by: Thomas Gleixner +--- + arch/x86/Kconfig | 1 + + arch/x86/entry/common.c | 4 ++-- + arch/x86/entry/entry_32.S | 17 +++++++++++++++++ + arch/x86/entry/entry_64.S | 16 ++++++++++++++++ + arch/x86/include/asm/preempt.h | 31 ++++++++++++++++++++++++++++++- + arch/x86/include/asm/thread_info.h | 11 +++++++++++ + arch/x86/kernel/asm-offsets.c | 2 ++ + 7 files changed, 79 insertions(+), 3 deletions(-) + +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -17,6 +17,7 @@ config X86_64 + ### Arch settings + config X86 + def_bool y ++ select HAVE_PREEMPT_LAZY + select ACPI_LEGACY_TABLES_LOOKUP if ACPI + select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI + select ANON_INODES +--- a/arch/x86/entry/common.c ++++ b/arch/x86/entry/common.c +@@ -129,7 +129,7 @@ static long syscall_trace_enter(struct p + + #define EXIT_TO_USERMODE_LOOP_FLAGS \ + (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ +- _TIF_NEED_RESCHED | _TIF_USER_RETURN_NOTIFY) ++ _TIF_NEED_RESCHED_MASK | _TIF_USER_RETURN_NOTIFY) + + static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags) + { +@@ -145,7 +145,7 @@ static void exit_to_usermode_loop(struct + /* We have work to do. */ + local_irq_enable(); + +- if (cached_flags & _TIF_NEED_RESCHED) ++ if (cached_flags & _TIF_NEED_RESCHED_MASK) + schedule(); + + #ifdef ARCH_RT_DELAYS_SIGNAL_SEND +--- a/arch/x86/entry/entry_32.S ++++ b/arch/x86/entry/entry_32.S +@@ -308,8 +308,25 @@ END(ret_from_exception) + ENTRY(resume_kernel) + DISABLE_INTERRUPTS(CLBR_ANY) + need_resched: ++ # preempt count == 0 + NEED_RS set? + cmpl $0, PER_CPU_VAR(__preempt_count) ++#ifndef CONFIG_PREEMPT_LAZY + jnz restore_all ++#else ++ jz test_int_off ++ ++ # atleast preempt count == 0 ? ++ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count) ++ jne restore_all ++ ++ movl PER_CPU_VAR(current_task), %ebp ++ cmpl $0,TASK_TI_preempt_lazy_count(%ebp) # non-zero preempt_lazy_count ? ++ jnz restore_all ++ ++ testl $_TIF_NEED_RESCHED_LAZY, TASK_TI_flags(%ebp) ++ jz restore_all ++test_int_off: ++#endif + testl $X86_EFLAGS_IF, PT_EFLAGS(%esp) # interrupts off (exception path) ? + jz restore_all + call preempt_schedule_irq +--- a/arch/x86/entry/entry_64.S ++++ b/arch/x86/entry/entry_64.S +@@ -546,7 +546,23 @@ GLOBAL(retint_user) + bt $9, EFLAGS(%rsp) /* were interrupts off? */ + jnc 1f + 0: cmpl $0, PER_CPU_VAR(__preempt_count) ++#ifndef CONFIG_PREEMPT_LAZY + jnz 1f ++#else ++ jz do_preempt_schedule_irq ++ ++ # atleast preempt count == 0 ? ++ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count) ++ jnz 1f ++ ++ movq PER_CPU_VAR(current_task), %rcx ++ cmpl $0, TASK_TI_preempt_lazy_count(%rcx) ++ jnz 1f ++ ++ bt $TIF_NEED_RESCHED_LAZY,TASK_TI_flags(%rcx) ++ jnc 1f ++do_preempt_schedule_irq: ++#endif + call preempt_schedule_irq + jmp 0b + 1: +--- a/arch/x86/include/asm/preempt.h ++++ b/arch/x86/include/asm/preempt.h +@@ -79,17 +79,46 @@ static __always_inline void __preempt_co + * a decrement which hits zero means we have no preempt_count and should + * reschedule. + */ +-static __always_inline bool __preempt_count_dec_and_test(void) ++static __always_inline bool ____preempt_count_dec_and_test(void) + { + GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), e); + } + ++static __always_inline bool __preempt_count_dec_and_test(void) ++{ ++ if (____preempt_count_dec_and_test()) ++ return true; ++#ifdef CONFIG_PREEMPT_LAZY ++ if (current_thread_info()->preempt_lazy_count) ++ return false; ++ return test_thread_flag(TIF_NEED_RESCHED_LAZY); ++#else ++ return false; ++#endif ++} ++ + /* + * Returns true when we need to resched and can (barring IRQ state). + */ + static __always_inline bool should_resched(int preempt_offset) + { ++#ifdef CONFIG_PREEMPT_LAZY ++ u32 tmp; ++ ++ tmp = raw_cpu_read_4(__preempt_count); ++ if (tmp == preempt_offset) ++ return true; ++ ++ /* preempt count == 0 ? */ ++ tmp &= ~PREEMPT_NEED_RESCHED; ++ if (tmp) ++ return false; ++ if (current_thread_info()->preempt_lazy_count) ++ return false; ++ return test_thread_flag(TIF_NEED_RESCHED_LAZY); ++#else + return unlikely(raw_cpu_read_4(__preempt_count) == preempt_offset); ++#endif + } + + #ifdef CONFIG_PREEMPT +--- a/arch/x86/include/asm/thread_info.h ++++ b/arch/x86/include/asm/thread_info.h +@@ -54,11 +54,14 @@ struct task_struct; + + struct thread_info { + unsigned long flags; /* low level flags */ ++ int preempt_lazy_count; /* 0 => lazy preemptable ++ <0 => BUG */ + }; + + #define INIT_THREAD_INFO(tsk) \ + { \ + .flags = 0, \ ++ .preempt_lazy_count = 0, \ + } + + #define init_stack (init_thread_union.stack) +@@ -67,6 +70,10 @@ struct thread_info { + + #include + ++#define GET_THREAD_INFO(reg) \ ++ _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \ ++ _ASM_SUB $(THREAD_SIZE),reg ; ++ + #endif + + /* +@@ -85,6 +92,7 @@ struct thread_info { + #define TIF_SYSCALL_EMU 6 /* syscall emulation active */ + #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ + #define TIF_SECCOMP 8 /* secure computing */ ++#define TIF_NEED_RESCHED_LAZY 9 /* lazy rescheduling necessary */ + #define TIF_USER_RETURN_NOTIFY 11 /* notify kernel of userspace return */ + #define TIF_UPROBE 12 /* breakpointed or singlestepping */ + #define TIF_NOTSC 16 /* TSC is not accessible in userland */ +@@ -108,6 +116,7 @@ struct thread_info { + #define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU) + #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) + #define _TIF_SECCOMP (1 << TIF_SECCOMP) ++#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY) + #define _TIF_USER_RETURN_NOTIFY (1 << TIF_USER_RETURN_NOTIFY) + #define _TIF_UPROBE (1 << TIF_UPROBE) + #define _TIF_NOTSC (1 << TIF_NOTSC) +@@ -143,6 +152,8 @@ struct thread_info { + #define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY) + #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW) + ++#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY) ++ + #define STACK_WARN (THREAD_SIZE/8) + + /* +--- a/arch/x86/kernel/asm-offsets.c ++++ b/arch/x86/kernel/asm-offsets.c +@@ -36,6 +36,7 @@ void common(void) { + + BLANK(); + OFFSET(TASK_TI_flags, task_struct, thread_info.flags); ++ OFFSET(TASK_TI_preempt_lazy_count, task_struct, thread_info.preempt_lazy_count); + OFFSET(TASK_addr_limit, task_struct, thread.addr_limit); + + BLANK(); +@@ -91,4 +92,5 @@ void common(void) { + + BLANK(); + DEFINE(PTREGS_SIZE, sizeof(struct pt_regs)); ++ DEFINE(_PREEMPT_ENABLED, PREEMPT_ENABLED); + } diff --git a/patches/features/all/rt/x86-signal-delay-calling-signals-on-32bit.patch b/patches/features/all/rt/x86-signal-delay-calling-signals-on-32bit.patch new file mode 100644 index 00000000000..3b57c14fdb4 --- /dev/null +++ b/patches/features/all/rt/x86-signal-delay-calling-signals-on-32bit.patch @@ -0,0 +1,43 @@ +From: Yang Shi +Date: Thu, 10 Dec 2015 10:58:51 -0800 +Subject: x86/signal: delay calling signals on 32bit +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +When running some ptrace single step tests on x86-32 machine, the below problem +is triggered: + +BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 +in_atomic(): 1, irqs_disabled(): 0, pid: 1041, name: dummy2 +Preemption disabled at:[] do_debug+0x1f/0x1a0 + +CPU: 10 PID: 1041 Comm: dummy2 Tainted: G W 4.1.13-rt13 #1 +Call Trace: + [] dump_stack+0x46/0x5c + [] ___might_sleep+0x137/0x220 + [] rt_spin_lock+0x1f/0x80 + [] do_force_sig_info+0x2a/0xc0 + [] force_sig_info+0xd/0x10 + [] send_sigtrap+0x6f/0x80 + [] do_debug+0x161/0x1a0 + [] debug_stack_correct+0x2e/0x35 + +This happens since 959274753857 ("x86, traps: Track entry into and exit +from IST context") which was merged in v4.1-rc1. + +Signed-off-by: Yang Shi +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/include/asm/signal.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/include/asm/signal.h ++++ b/arch/x86/include/asm/signal.h +@@ -36,7 +36,7 @@ typedef struct { + * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the + * trap. + */ +-#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_X86_64) ++#if defined(CONFIG_PREEMPT_RT_FULL) + #define ARCH_RT_DELAYS_SIGNAL_SEND + #endif + diff --git a/patches/features/all/rt/x86-stackprot-no-random-on-rt.patch b/patches/features/all/rt/x86-stackprot-no-random-on-rt.patch new file mode 100644 index 00000000000..deb2984a382 --- /dev/null +++ b/patches/features/all/rt/x86-stackprot-no-random-on-rt.patch @@ -0,0 +1,47 @@ +From: Thomas Gleixner +Date: Thu, 16 Dec 2010 14:25:18 +0100 +Subject: x86: stackprotector: Avoid random pool on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +CPU bringup calls into the random pool to initialize the stack +canary. During boot that works nicely even on RT as the might sleep +checks are disabled. During CPU hotplug the might sleep checks +trigger. Making the locks in random raw is a major PITA, so avoid the +call on RT is the only sensible solution. This is basically the same +randomness which we get during boot where the random pool has no +entropy and we rely on the TSC randomnness. + +Reported-by: Carsten Emde +Signed-off-by: Thomas Gleixner + +--- + arch/x86/include/asm/stackprotector.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/arch/x86/include/asm/stackprotector.h ++++ b/arch/x86/include/asm/stackprotector.h +@@ -59,7 +59,7 @@ + */ + static __always_inline void boot_init_stack_canary(void) + { +- u64 canary; ++ u64 uninitialized_var(canary); + u64 tsc; + + #ifdef CONFIG_X86_64 +@@ -70,8 +70,15 @@ static __always_inline void boot_init_st + * of randomness. The TSC only matters for very early init, + * there it already has some randomness on most systems. Later + * on during the bootup the random pool has true entropy too. ++ * ++ * For preempt-rt we need to weaken the randomness a bit, as ++ * we can't call into the random generator from atomic context ++ * due to locking constraints. We just leave canary ++ * uninitialized and use the TSC based randomness on top of it. + */ ++#ifndef CONFIG_PREEMPT_RT_FULL + get_random_bytes(&canary, sizeof(canary)); ++#endif + tsc = rdtsc(); + canary += tsc + (tsc << 32UL); + diff --git a/patches/features/all/rt/x86-use-gen-rwsem-spinlocks-rt.patch b/patches/features/all/rt/x86-use-gen-rwsem-spinlocks-rt.patch new file mode 100644 index 00000000000..1df736d737d --- /dev/null +++ b/patches/features/all/rt/x86-use-gen-rwsem-spinlocks-rt.patch @@ -0,0 +1,29 @@ +From: Thomas Gleixner +Date: Sun, 26 Jul 2009 02:21:32 +0200 +Subject: x86: Use generic rwsem_spinlocks on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz + +Simplifies the separation of anon_rw_semaphores and rw_semaphores for +-rt. + +Signed-off-by: Thomas Gleixner + +--- + arch/x86/Kconfig | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -232,8 +232,11 @@ config ARCH_MAY_HAVE_PC_FDC + def_bool y + depends on ISA_DMA_API + ++config RWSEM_GENERIC_SPINLOCK ++ def_bool PREEMPT_RT_FULL ++ + config RWSEM_XCHGADD_ALGORITHM +- def_bool y ++ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL + + config GENERIC_CALIBRATE_DELAY + def_bool y diff --git a/patches/features/all/securelevel/acpi-disable-acpi-table-override-if-securelevel-is-s.patch b/patches/features/all/securelevel/acpi-disable-acpi-table-override-if-securelevel-is-s.patch new file mode 100644 index 00000000000..0491b2f65d2 --- /dev/null +++ b/patches/features/all/securelevel/acpi-disable-acpi-table-override-if-securelevel-is-s.patch @@ -0,0 +1,74 @@ +From: Linn Crosetto +Date: Fri, 4 Mar 2016 16:08:24 -0700 +Subject: [16/18] acpi: Disable ACPI table override if securelevel is set +Origin: https://github.com/mjg59/linux/commit/a4a5ed2835e8ea042868b7401dced3f517cafa76 + +From the kernel documentation (initrd_table_override.txt): + + If the ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible + to override nearly any ACPI table provided by the BIOS with an + instrumented, modified one. + +When securelevel is set, the kernel should disallow any unauthenticated +changes to kernel space. ACPI tables contain code invoked by the kernel, so +do not allow ACPI tables to be overridden if securelevel is set. + +Signed-off-by: Linn Crosetto +[bwh: Forward-ported to 4.7: ACPI override code moved to drivers/acpi/tables.c] +[bwh: Forward-ported to 4.9: adjust context] +--- + arch/x86/kernel/setup.c | 12 ++++++------ + drivers/acpi/tables.c | 6 ++++++ + 2 files changed, 12 insertions(+), 6 deletions(-) + +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -1153,6 +1153,12 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + ++#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL ++ if (boot_params.secure_boot) { ++ set_securelevel(1); ++ } ++#endif ++ + reserve_initrd(); + + acpi_table_upgrade(); +@@ -1161,12 +1167,6 @@ void __init setup_arch(char **cmdline_p) + + io_delay_init(); + +-#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL +- if (boot_params.secure_boot) { +- set_securelevel(1); +- } +-#endif +- + /* + * Parse the ACPI tables for possible boot-time SMP configuration. + */ +--- a/drivers/acpi/tables.c ++++ b/drivers/acpi/tables.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include "internal.h" + + #ifdef CONFIG_ACPI_CUSTOM_DSDT +@@ -545,6 +546,12 @@ void __init acpi_table_upgrade(void) + if (table_nr == 0) + return; + ++ if (get_securelevel() > 0) { ++ pr_notice(PREFIX ++ "securelevel enabled, ignoring table override\n"); ++ return; ++ } ++ + acpi_tables_addr = + memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS, + all_tables_size, PAGE_SIZE); diff --git a/patches/features/all/securelevel/acpi-disable-apei-error-injection-if-securelevel-is-.patch b/patches/features/all/securelevel/acpi-disable-apei-error-injection-if-securelevel-is-.patch new file mode 100644 index 00000000000..2ae11002a3a --- /dev/null +++ b/patches/features/all/securelevel/acpi-disable-apei-error-injection-if-securelevel-is-.patch @@ -0,0 +1,45 @@ +From: Linn Crosetto +Date: Wed, 16 Mar 2016 14:43:33 -0600 +Subject: [17/18] acpi: Disable APEI error injection if securelevel is set +Origin: https://github.com/mjg59/linux/commit/d7a6be58edc01b1c66ecd8fcc91236bfbce0a420 + +ACPI provides an error injection mechanism, EINJ, for debugging and testing +the ACPI Platform Error Interface (APEI) and other RAS features. If +supported by the firmware, ACPI specification 5.0 and later provide for a +way to specify a physical memory address to which to inject the error. + +Injecting errors through EINJ can produce errors which to the platform are +indistinguishable from real hardware errors. This can have undesirable +side-effects, such as causing the platform to mark hardware as needing +replacement. + +While it does not provide a method to load unauthenticated privileged code, +the effect of these errors may persist across reboots and affect trust in +the underlying hardware, so disable error injection through EINJ if +securelevel is set. + +Signed-off-by: Linn Crosetto +--- + drivers/acpi/apei/einj.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/acpi/apei/einj.c ++++ b/drivers/acpi/apei/einj.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + + #include "apei-internal.h" +@@ -521,6 +522,9 @@ static int einj_error_inject(u32 type, u + int rc; + u64 base_addr, size; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + /* If user manually set "flags", make sure it is legal */ + if (flags && (flags & + ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF))) diff --git a/patches/features/all/securelevel/acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch b/patches/features/all/securelevel/acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch new file mode 100644 index 00000000000..8a26e52d731 --- /dev/null +++ b/patches/features/all/securelevel/acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch @@ -0,0 +1,36 @@ +From: Josh Boyer +Date: Mon, 25 Jun 2012 19:57:30 -0400 +Subject: [07/18] acpi: Ignore acpi_rsdp kernel parameter when securelevel is + set +Origin: https://github.com/mjg59/linux/commit/9524fadac774fbe85e2ac6abe7b957b1750c7e36 + +This option allows userspace to pass the RSDP address to the kernel, which +makes it possible for a user to execute arbitrary code in the kernel. +Disable this when securelevel is set. + +Signed-off-by: Josh Boyer +--- + drivers/acpi/osl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c +index 814d5f83b75e..242ca81bb606 100644 +--- a/drivers/acpi/osl.c ++++ b/drivers/acpi/osl.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -254,7 +255,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp); + acpi_physical_address __init acpi_os_get_root_pointer(void) + { + #ifdef CONFIG_KEXEC +- if (acpi_rsdp) ++ if (acpi_rsdp && (get_securelevel() <= 0)) + return acpi_rsdp; + #endif + diff --git a/patches/features/all/securelevel/acpi-limit-access-to-custom_method-if-securelevel-is.patch b/patches/features/all/securelevel/acpi-limit-access-to-custom_method-if-securelevel-is.patch new file mode 100644 index 00000000000..97c0b1b05c6 --- /dev/null +++ b/patches/features/all/securelevel/acpi-limit-access-to-custom_method-if-securelevel-is.patch @@ -0,0 +1,36 @@ +From: Matthew Garrett +Date: Fri, 9 Mar 2012 08:39:37 -0500 +Subject: [06/18] acpi: Limit access to custom_method if securelevel is set +Origin: https://github.com/mjg59/linux/commit/3cdc48db6b6d1b3cc1412d428389889f74cafe83 + +custom_method effectively allows arbitrary access to system memory, making +it possible for an attacker to modify the kernel at runtime. Prevent this +if securelevel has been set. + +Signed-off-by: Matthew Garrett +--- + drivers/acpi/custom_method.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c +index c68e72414a67..359f45d54543 100644 +--- a/drivers/acpi/custom_method.c ++++ b/drivers/acpi/custom_method.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "internal.h" + +@@ -29,6 +30,9 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf, + struct acpi_table_header table; + acpi_status status; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (!(*ppos)) { + /* parse the table header to get the table length */ + if (count <= sizeof(struct acpi_table_header)) diff --git a/patches/features/all/securelevel/add-bsd-style-securelevel-support.patch b/patches/features/all/securelevel/add-bsd-style-securelevel-support.patch new file mode 100644 index 00000000000..15e636ce7c8 --- /dev/null +++ b/patches/features/all/securelevel/add-bsd-style-securelevel-support.patch @@ -0,0 +1,208 @@ +From: Matthew Garrett +Date: Fri, 9 Aug 2013 17:58:15 -0400 +Subject: [01/18] Add BSD-style securelevel support +Origin: https://github.com/mjg59/linux/commit/058b8ddfe86dc90268f6dbe0ffed29ec46f1fafa + +Provide a coarse-grained runtime configuration option for restricting +userspace's ability to modify the running kernel. + +Signed-off-by: Matthew Garrett +--- + Documentation/security/securelevel.txt | 23 +++++++ + include/linux/security.h | 8 +++ + security/Kconfig | 8 +++ + security/Makefile | 1 + + security/securelevel.c | 116 +++++++++++++++++++++++++++++++++ + 5 files changed, 156 insertions(+) + create mode 100644 Documentation/security/securelevel.txt + create mode 100644 security/securelevel.c + +--- /dev/null ++++ b/Documentation/security/securelevel.txt +@@ -0,0 +1,23 @@ ++Linux securelevel interface ++--------------------------- ++ ++The Linux securelevel interface (inspired by the BSD securelevel interface) ++is a runtime mechanism for configuring coarse-grained kernel-level security ++restrictions. It provides a runtime configuration variable at ++/sys/kernel/security/securelevel which can be written to by root. The ++following values are supported: ++ ++-1: Permanently insecure mode. This level is equivalent to level 0, but once ++ set cannot be changed. ++ ++0: Insecure mode (default). This level imposes no additional kernel ++ restrictions. ++ ++1: Secure mode. If set, userspace will be unable to perform direct access ++ to PCI devices, port IO access, access system memory directly via ++ /dev/mem and /dev/kmem, perform kexec_load(), use the userspace ++ software suspend mechanism, insert new ACPI code at runtime via the ++ custom_method interface or modify CPU MSRs (on x86). Certain drivers ++ may also limit additional interfaces. ++ ++Once the securelevel value is increased, it may not be decreased. +--- a/include/linux/security.h ++++ b/include/linux/security.h +@@ -1589,6 +1589,14 @@ static inline void security_audit_rule_f + #endif /* CONFIG_SECURITY */ + #endif /* CONFIG_AUDIT */ + ++#ifdef CONFIG_SECURITY_SECURELEVEL ++extern int get_securelevel(void); ++extern int set_securelevel(int new_securelevel); ++#else ++static inline int get_securelevel(void) { return 0; } ++static inline int set_securelevel(int new_securelevel) { return 0; } ++#endif /* CONFIG_SECURELEVEL */ ++ + #ifdef CONFIG_SECURITYFS + + extern struct dentry *securityfs_create_file(const char *name, umode_t mode, +--- a/security/Kconfig ++++ b/security/Kconfig +@@ -93,6 +93,14 @@ config SECURITY_PATH + implement pathname based access controls. + If you are unsure how to answer this question, answer N. + ++config SECURITY_SECURELEVEL ++ bool "Securelevel kernel restriction interface" ++ depends on SECURITY ++ help ++ This enables support for adding a set of additional kernel security ++ restrictions at runtime. See Documentation/security/securelevel.txt ++ for further information. ++ + config INTEL_TXT + bool "Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)" + depends on HAVE_INTEL_TXT +--- a/security/Makefile ++++ b/security/Makefile +@@ -16,6 +16,7 @@ obj-$(CONFIG_MMU) += min_addr.o + # Object file lists + obj-$(CONFIG_SECURITY) += security.o + obj-$(CONFIG_SECURITYFS) += inode.o ++obj-$(CONFIG_SECURITY_SECURELEVEL) += securelevel.o + obj-$(CONFIG_SECURITY_SELINUX) += selinux/ + obj-$(CONFIG_SECURITY_SMACK) += smack/ + obj-$(CONFIG_AUDIT) += lsm_audit.o +--- /dev/null ++++ b/security/securelevel.c +@@ -0,0 +1,116 @@ ++/* ++ * securelevel.c - support for generic kernel lockdown ++ * ++ * Copyright Nebula, Inc ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++ ++static int securelevel; ++ ++static DEFINE_SPINLOCK(securelevel_lock); ++ ++#define MAX_SECURELEVEL 1 ++ ++int get_securelevel(void) ++{ ++ return securelevel; ++} ++EXPORT_SYMBOL(get_securelevel); ++ ++int set_securelevel(int new_securelevel) ++{ ++ int ret = 0; ++ ++ spin_lock(&securelevel_lock); ++ ++ if ((securelevel == -1) || (new_securelevel < securelevel) || ++ (new_securelevel > MAX_SECURELEVEL)) { ++ ret = -EINVAL; ++ goto out; ++ } ++ ++ securelevel = new_securelevel; ++out: ++ spin_unlock(&securelevel_lock); ++ return ret; ++} ++EXPORT_SYMBOL(set_securelevel); ++ ++static ssize_t securelevel_read(struct file *filp, char __user *buf, ++ size_t count, loff_t *ppos) ++{ ++ char tmpbuf[12]; ++ ssize_t length; ++ ++ length = scnprintf(tmpbuf, sizeof(tmpbuf), "%d", securelevel); ++ return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); ++} ++ ++static ssize_t securelevel_write(struct file *file, const char __user *buf, ++ size_t count, loff_t *ppos) ++{ ++ char *page = NULL; ++ ssize_t length; ++ int new_securelevel; ++ ++ length = -ENOMEM; ++ if (count >= PAGE_SIZE) ++ goto out; ++ ++ length = -EINVAL; ++ if (*ppos != 0) ++ goto out; ++ ++ length = -ENOMEM; ++ page = (char *)get_zeroed_page(GFP_KERNEL); ++ if (!page) ++ goto out; ++ ++ length = -EFAULT; ++ if (copy_from_user(page, buf, count)) ++ goto out; ++ ++ length = -EINVAL; ++ if (sscanf(page, "%d", &new_securelevel) != 1) ++ goto out; ++ ++ length = set_securelevel(new_securelevel); ++ if (length) ++ goto out; ++ ++ length = count; ++out: ++ free_page((unsigned long) page); ++ return length; ++} ++ ++static const struct file_operations securelevel_fops = { ++ .read = securelevel_read, ++ .write = securelevel_write, ++ .llseek = generic_file_llseek, ++}; ++ ++static __init int setup_securelevel(void) ++{ ++ struct dentry *securelevel_file; ++ ++ securelevel_file = securityfs_create_file("securelevel", ++ S_IWUSR | S_IRUGO, ++ NULL, NULL, ++ &securelevel_fops); ++ ++ if (IS_ERR(securelevel_file)) ++ return PTR_ERR(securelevel_file); ++ ++ return 0; ++} ++late_initcall(setup_securelevel); diff --git a/patches/features/all/securelevel/add-option-to-automatically-set-securelevel-when-in-.patch b/patches/features/all/securelevel/add-option-to-automatically-set-securelevel-when-in-.patch new file mode 100644 index 00000000000..c76d6edf161 --- /dev/null +++ b/patches/features/all/securelevel/add-option-to-automatically-set-securelevel-when-in-.patch @@ -0,0 +1,148 @@ +From: Matthew Garrett +Date: Fri, 9 Aug 2013 18:36:30 -0400 +Subject: [12/18] Add option to automatically set securelevel when in Secure + Boot mode +Origin: https://github.com/mjg59/linux/commit/e324de2d053295670f3ba8ef67289835d663aae5 + +UEFI Secure Boot provides a mechanism for ensuring that the firmware will +only load signed bootloaders and kernels. Certain use cases may also +require that the kernel prevent userspace from inserting untrusted kernel +code at runtime. Add a configuration option that enforces this automatically +when enabled. + +Signed-off-by: Matthew Garrett +--- + Documentation/x86/zero-page.txt | 2 ++ + arch/x86/Kconfig | 13 +++++++++++++ + arch/x86/boot/compressed/eboot.c | 36 +++++++++++++++++++++++++++++++++++ + arch/x86/include/uapi/asm/bootparam.h | 3 ++- + arch/x86/kernel/setup.c | 7 +++++++ + 5 files changed, 60 insertions(+), 1 deletion(-) + +--- a/Documentation/x86/zero-page.txt ++++ b/Documentation/x86/zero-page.txt +@@ -31,6 +31,8 @@ Offset Proto Name Meaning + 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) + 1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer + (below) ++1EB/001 ALL kbd_status Numlock is enabled ++1EC/001 ALL secure_boot Secure boot is enabled in the firmware + 1EF/001 ALL sentinel Used to detect broken bootloaders + 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures + 2D0/A00 ALL e820_map E820 memory map table +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -1754,6 +1754,19 @@ config EFI_MIXED + + If unsure, say N. + ++config EFI_SECURE_BOOT_SECURELEVEL ++ def_bool n ++ depends on SECURITY_SECURELEVEL ++ depends on EFI ++ prompt "Automatically set securelevel when UEFI Secure Boot is enabled" ++ ---help--- ++ UEFI Secure Boot provides a mechanism for ensuring that the ++ firmware will only load signed bootloaders and kernels. Certain ++ use cases may also require that the kernel restrict any userspace ++ mechanism that could insert untrusted code into the kernel. ++ Say Y here to automatically enable securelevel enforcement ++ when a system boots with UEFI Secure Boot enabled. ++ + config SECCOMP + def_bool y + prompt "Enable seccomp to safely compute untrusted bytecode" +--- a/arch/x86/boot/compressed/eboot.c ++++ b/arch/x86/boot/compressed/eboot.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include "../string.h" + #include "eboot.h" +@@ -1050,6 +1051,37 @@ void setup_graphics(struct boot_params * + } + } + ++static int get_secure_boot(void) ++{ ++ u8 sb, setup; ++ unsigned long datasize = sizeof(sb); ++ efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID; ++ efi_status_t status; ++ ++ status = efi_early->call((unsigned long)sys_table->runtime->get_variable, ++ L"SecureBoot", &var_guid, NULL, &datasize, &sb); ++ ++ if (status != EFI_SUCCESS) ++ return 0; ++ ++ if (sb == 0) ++ return 0; ++ ++ ++ status = efi_early->call((unsigned long)sys_table->runtime->get_variable, ++ L"SetupMode", &var_guid, NULL, &datasize, ++ &setup); ++ ++ if (status != EFI_SUCCESS) ++ return 0; ++ ++ if (setup == 1) ++ return 0; ++ ++ return 1; ++} ++ ++ + /* + * Because the x86 boot code expects to be passed a boot_params we + * need to create one ourselves (usually the bootloader would create +@@ -1432,6 +1464,10 @@ struct boot_params *efi_main(struct efi_ + else + setup_boot_services32(efi_early); + ++ sanitize_boot_params(boot_params); ++ ++ boot_params->secure_boot = get_secure_boot(); ++ + setup_graphics(boot_params); + + setup_efi_pci(boot_params); +--- a/arch/x86/include/uapi/asm/bootparam.h ++++ b/arch/x86/include/uapi/asm/bootparam.h +@@ -134,7 +134,8 @@ struct boot_params { + __u8 eddbuf_entries; /* 0x1e9 */ + __u8 edd_mbr_sig_buf_entries; /* 0x1ea */ + __u8 kbd_status; /* 0x1eb */ +- __u8 _pad5[3]; /* 0x1ec */ ++ __u8 secure_boot; /* 0x1ec */ ++ __u8 _pad5[2]; /* 0x1ed */ + /* + * The sentinel is set to a nonzero value (0xff) in header.S. + * +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1145,6 +1146,12 @@ void __init setup_arch(char **cmdline_p) + + io_delay_init(); + ++#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL ++ if (boot_params.secure_boot) { ++ set_securelevel(1); ++ } ++#endif ++ + /* + * Parse the ACPI tables for possible boot-time SMP configuration. + */ diff --git a/patches/features/all/securelevel/arm64-add-kernel-config-option-to-set-securelevel-wh.patch b/patches/features/all/securelevel/arm64-add-kernel-config-option-to-set-securelevel-wh.patch new file mode 100644 index 00000000000..92f505762e9 --- /dev/null +++ b/patches/features/all/securelevel/arm64-add-kernel-config-option-to-set-securelevel-wh.patch @@ -0,0 +1,128 @@ +From: Linn Crosetto +Date: Tue, 30 Aug 2016 11:54:38 -0600 +Subject: arm64: add kernel config option to set securelevel when in Secure Boot mode + +Add a kernel configuration option to enable securelevel, to restrict +userspace's ability to modify the running kernel when UEFI Secure Boot is +enabled. Based on the x86 patch by Matthew Garrett. + +Determine the state of Secure Boot in the EFI stub and pass this to the +kernel using the FDT. + +Signed-off-by: Linn Crosetto +--- +v2: + + - Add cpu_to_fdt32() when setting Secure Boot flag in FDT (Ben Hutchings) + + arch/arm64/Kconfig | 13 +++++++++++++ + drivers/firmware/efi/arm-init.c | 7 +++++++ + drivers/firmware/efi/efi.c | 3 ++- + drivers/firmware/efi/libstub/arm-stub.c | 2 +- + drivers/firmware/efi/libstub/efistub.h | 1 + + drivers/firmware/efi/libstub/fdt.c | 7 +++++++ + include/linux/efi.h | 1 + + 7 files changed, 32 insertions(+), 2 deletions(-) + +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -972,6 +972,19 @@ config EFI + allow the kernel to be booted as an EFI application. This + is only useful on systems that have UEFI firmware. + ++config EFI_SECURE_BOOT_SECURELEVEL ++ def_bool n ++ depends on SECURITY_SECURELEVEL ++ depends on EFI ++ prompt "Automatically set securelevel when UEFI Secure Boot is enabled" ++ ---help--- ++ UEFI Secure Boot provides a mechanism for ensuring that the ++ firmware will only load signed bootloaders and kernels. Certain ++ use cases may also require that the kernel restrict any userspace ++ mechanism that could insert untrusted code into the kernel. ++ Say Y here to automatically enable securelevel enforcement ++ when a system boots with UEFI Secure Boot enabled. ++ + config DMI + bool "Enable support for SMBIOS (DMI) tables" + depends on EFI +--- a/drivers/firmware/efi/arm-init.c ++++ b/drivers/firmware/efi/arm-init.c +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include + +@@ -243,6 +244,12 @@ void __init efi_init(void) + "Unexpected EFI_MEMORY_DESCRIPTOR version %ld", + efi.memmap.desc_version); + ++#ifdef CONFIG_EFI_SECURE_BOOT_SECURELEVEL ++ if (params.secure_boot > 0) { ++ set_securelevel(1); ++ } ++#endif ++ + if (uefi_init() < 0) + return; + +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -580,7 +580,8 @@ static __initdata struct params fdt_para + UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap), + UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size), + UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size), +- UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver) ++ UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver), ++ UEFI_PARAM("Secure Boot Enabled", "linux,uefi-secure-boot", secure_boot) + }; + + static __initdata struct params xen_fdt_params[] = { +--- a/drivers/firmware/efi/libstub/arm-stub.c ++++ b/drivers/firmware/efi/libstub/arm-stub.c +@@ -20,7 +20,7 @@ + + bool __nokaslr; + +-static int efi_get_secureboot(efi_system_table_t *sys_table_arg) ++int efi_get_secureboot(efi_system_table_t *sys_table_arg) + { + static efi_char16_t const sb_var_name[] = { + 'S', 'e', 'c', 'u', 'r', 'e', 'B', 'o', 'o', 't', 0 }; +--- a/drivers/firmware/efi/libstub/efistub.h ++++ b/drivers/firmware/efi/libstub/efistub.h +@@ -62,4 +62,5 @@ efi_status_t efi_random_alloc(efi_system + + efi_status_t check_platform_features(efi_system_table_t *sys_table_arg); + ++int efi_get_secureboot(efi_system_table_t *sys_table_arg); + #endif +--- a/drivers/firmware/efi/libstub/fdt.c ++++ b/drivers/firmware/efi/libstub/fdt.c +@@ -139,6 +139,13 @@ efi_status_t update_fdt(efi_system_table + return efi_status; + } + } ++ ++ fdt_val32 = cpu_to_fdt32(efi_get_secureboot(sys_table)); ++ status = fdt_setprop(fdt, node, "linux,uefi-secure-boot", ++ &fdt_val32, sizeof(fdt_val32)); ++ if (status) ++ goto fdt_set_fail; ++ + return EFI_SUCCESS; + + fdt_set_fail: +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -687,6 +687,7 @@ struct efi_fdt_params { + u32 mmap_size; + u32 desc_size; + u32 desc_ver; ++ u32 secure_boot; + }; + + typedef struct { diff --git a/patches/features/all/securelevel/arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch b/patches/features/all/securelevel/arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch new file mode 100644 index 00000000000..59fd4226bcb --- /dev/null +++ b/patches/features/all/securelevel/arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch @@ -0,0 +1,59 @@ +From: Linn Crosetto +Date: Mon, 22 Feb 2016 12:54:37 -0700 +Subject: arm64/efi: Disable secure boot if shim is in insecure mode + +Port to arm64 a patch originally written by Josh Boyer for the x86 EFI +stub. + +A user can manually tell the shim boot loader to disable validation of +images it loads. When a user does this, it creates a UEFI variable called +MokSBState that does not have the runtime attribute set. Given that the +user explicitly disabled validation, we can honor that and not enable +secure boot mode if that variable is set. + +Signed-off-by: Linn Crosetto +Cc: Josh Boyer +--- + drivers/firmware/efi/libstub/arm-stub.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- a/drivers/firmware/efi/libstub/arm-stub.c ++++ b/drivers/firmware/efi/libstub/arm-stub.c +@@ -26,11 +26,14 @@ static int efi_get_secureboot(efi_system + 'S', 'e', 'c', 'u', 'r', 'e', 'B', 'o', 'o', 't', 0 }; + static efi_char16_t const sm_var_name[] = { + 'S', 'e', 't', 'u', 'p', 'M', 'o', 'd', 'e', 0 }; ++ static efi_char16_t const mk_var_name[] = { ++ 'M', 'o', 'k', 'S', 'B', 'S', 't', 'a', 't', 'e', 0 }; + + efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID; + efi_get_variable_t *f_getvar = sys_table_arg->runtime->get_variable; + u8 val; + unsigned long size = sizeof(val); ++ u32 attr; + efi_status_t status; + + status = f_getvar((efi_char16_t *)sb_var_name, (efi_guid_t *)&var_guid, +@@ -51,6 +54,22 @@ static int efi_get_secureboot(efi_system + if (val == 1) + return 0; + ++ /* See if a user has put shim into insecure_mode. If so, and the variable ++ * doesn't have the runtime attribute set, we might as well honor that. ++ */ ++ var_guid = EFI_SHIM_LOCK_GUID; ++ status = f_getvar((efi_char16_t *)mk_var_name, (efi_guid_t *)&var_guid, ++ &attr, &size, &val); ++ ++ /* If it fails, we don't care why. Default to secure */ ++ if (status != EFI_SUCCESS) ++ return 1; ++ ++ if (!(attr & EFI_VARIABLE_RUNTIME_ACCESS)) { ++ if (val == 1) ++ return 0; ++ } ++ + return 1; + + out_efi_err: diff --git a/patches/features/all/securelevel/asus-wmi-restrict-debugfs-interface-when-securelevel.patch b/patches/features/all/securelevel/asus-wmi-restrict-debugfs-interface-when-securelevel.patch new file mode 100644 index 00000000000..08afb52c76a --- /dev/null +++ b/patches/features/all/securelevel/asus-wmi-restrict-debugfs-interface-when-securelevel.patch @@ -0,0 +1,57 @@ +From: Matthew Garrett +Date: Fri, 9 Mar 2012 08:46:50 -0500 +Subject: [11/18] asus-wmi: Restrict debugfs interface when securelevel is set +Origin: https://github.com/mjg59/linux/commit/f6e21827205ffcbfcce4b13d3a233427c3e742e0 + +We have no way of validating what all of the Asus WMI methods do on a +given machine, and there's a risk that some will allow hardware state to +be manipulated in such a way that arbitrary code can be executed in the +kernel. Prevent that if securelevel is set. + +Signed-off-by: Matthew Garrett +--- + drivers/platform/x86/asus-wmi.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c +index a96630d52346..93943e480a67 100644 +--- a/drivers/platform/x86/asus-wmi.c ++++ b/drivers/platform/x86/asus-wmi.c +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1867,6 +1868,9 @@ static int show_dsts(struct seq_file *m, void *data) + int err; + u32 retval = -1; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval); + + if (err < 0) +@@ -1883,6 +1887,9 @@ static int show_devs(struct seq_file *m, void *data) + int err; + u32 retval = -1; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param, + &retval); + +@@ -1907,6 +1914,9 @@ static int show_call(struct seq_file *m, void *data) + union acpi_object *obj; + acpi_status status; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID, + 1, asus->debug.method_id, + &input, &output); diff --git a/patches/features/all/securelevel/efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch b/patches/features/all/securelevel/efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch new file mode 100644 index 00000000000..98cd43c6d26 --- /dev/null +++ b/patches/features/all/securelevel/efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch @@ -0,0 +1,66 @@ +From: Josh Boyer +Date: Tue, 5 Feb 2013 19:25:05 -0500 +Subject: [13/18] efi: Disable secure boot if shim is in insecure mode +Origin: https://github.com/mjg59/linux/commit/f444a5ecb0ab09d6cf661b4520dd8e6fffacb8be + +A user can manually tell the shim boot loader to disable validation of +images it loads. When a user does this, it creates a UEFI variable called +MokSBState that does not have the runtime attribute set. Given that the +user explicitly disabled validation, we can honor that and not enable +secure boot mode if that variable is set. + +Signed-off-by: Josh Boyer +--- + arch/x86/boot/compressed/eboot.c | 20 +++++++++++++++++++- + include/linux/efi.h | 3 +++ + 2 files changed, 22 insertions(+), 1 deletion(-) + +--- a/arch/x86/boot/compressed/eboot.c ++++ b/arch/x86/boot/compressed/eboot.c +@@ -1053,8 +1053,9 @@ void setup_graphics(struct boot_params * + + static int get_secure_boot(void) + { +- u8 sb, setup; ++ u8 sb, setup, moksbstate; + unsigned long datasize = sizeof(sb); ++ u32 attr; + efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID; + efi_status_t status; + +@@ -1078,6 +1079,23 @@ static int get_secure_boot(void) + if (setup == 1) + return 0; + ++ /* See if a user has put shim into insecure_mode. If so, and the variable ++ * doesn't have the runtime attribute set, we might as well honor that. ++ */ ++ var_guid = EFI_SHIM_LOCK_GUID; ++ status = efi_early->call((unsigned long)sys_table->runtime->get_variable, ++ L"MokSBState", &var_guid, &attr, &datasize, ++ &moksbstate); ++ ++ /* If it fails, we don't care why. Default to secure */ ++ if (status != EFI_SUCCESS) ++ return 1; ++ ++ if (!(attr & EFI_VARIABLE_RUNTIME_ACCESS)) { ++ if (moksbstate == 1) ++ return 0; ++ } ++ + return 1; + } + +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -629,6 +629,9 @@ typedef struct { + #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10)) + #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02)) + ++#define EFI_SHIM_LOCK_GUID \ ++ EFI_GUID( 0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23 ) ++ + typedef struct { + efi_table_hdr_t hdr; + u64 fw_vendor; /* physical addr of CHAR16 vendor string */ diff --git a/patches/features/all/securelevel/enable-cold-boot-attack-mitigation.patch b/patches/features/all/securelevel/enable-cold-boot-attack-mitigation.patch new file mode 100644 index 00000000000..14d5a3bdaf9 --- /dev/null +++ b/patches/features/all/securelevel/enable-cold-boot-attack-mitigation.patch @@ -0,0 +1,49 @@ +From: Matthew Garrett +Date: Tue, 12 Jan 2016 12:51:27 -0800 +Subject: [18/18] Enable cold boot attack mitigation +Origin: https://github.com/mjg59/linux/commit/02d999574936dd234a508c0112a0200c135a5c34 + +--- + arch/x86/boot/compressed/eboot.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c +index 28c24d80d0a0..b0413ba639af 100644 +--- a/arch/x86/boot/compressed/eboot.c ++++ b/arch/x86/boot/compressed/eboot.c +@@ -1051,6 +1051,22 @@ void setup_graphics(struct boot_params *boot_params) + } + } + ++#define MEMORY_ONLY_RESET_CONTROL_GUID \ ++ EFI_GUID (0xe20939be, 0x32d4, 0x41be, 0xa1, 0x50, 0x89, 0x7f, 0x85, 0xd4, 0x98, 0x29) ++ ++static void enable_reset_attack_mitigation(void) ++{ ++ u8 val = 1; ++ efi_guid_t var_guid = MEMORY_ONLY_RESET_CONTROL_GUID; ++ ++ /* Ignore the return value here - there's not really a lot we can do */ ++ efi_early->call((unsigned long)sys_table->runtime->set_variable, ++ L"MemoryOverwriteRequestControl", &var_guid, ++ EFI_VARIABLE_NON_VOLATILE | ++ EFI_VARIABLE_BOOTSERVICE_ACCESS | ++ EFI_VARIABLE_RUNTIME_ACCESS, sizeof(val), val); ++} ++ + static int get_secure_boot(void) + { + u8 sb, setup, moksbstate; +@@ -1482,6 +1498,12 @@ struct boot_params *efi_main(struct efi_config *c, + else + setup_boot_services32(efi_early); + ++ /* ++ * Ask the firmware to clear memory if we don't have a clean ++ * shutdown ++ */ ++ enable_reset_attack_mitigation(); ++ + sanitize_boot_params(boot_params); + + boot_params->secure_boot = get_secure_boot(); diff --git a/patches/features/all/securelevel/enforce-module-signatures-when-securelevel-is-greate.patch b/patches/features/all/securelevel/enforce-module-signatures-when-securelevel-is-greate.patch new file mode 100644 index 00000000000..f6a295980ac --- /dev/null +++ b/patches/features/all/securelevel/enforce-module-signatures-when-securelevel-is-greate.patch @@ -0,0 +1,24 @@ +From: Matthew Garrett +Date: Mon, 9 Sep 2013 08:46:52 -0400 +Subject: [02/18] Enforce module signatures when securelevel is greater than 0 +Origin: https://github.com/mjg59/linux/commit/90e0fa532b145d1bb76c368277a3a3e3b3eb5c94 + +If securelevel has been set to 1 or greater, require that all modules have +valid signatures. + +Signed-off-by: Matthew Garrett +--- + kernel/module.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2616,7 +2616,7 @@ static int module_sig_check(struct load_ + } + + /* Not having a signature is only an error if we're strict. */ +- if (err == -ENOKEY && !sig_enforce) ++ if ((err == -ENOKEY && !sig_enforce) && (get_securelevel() <= 0)) + err = 0; + + return err; diff --git a/patches/features/all/securelevel/hibernate-disable-when-securelevel-is-set.patch b/patches/features/all/securelevel/hibernate-disable-when-securelevel-is-set.patch new file mode 100644 index 00000000000..3f22314567d --- /dev/null +++ b/patches/features/all/securelevel/hibernate-disable-when-securelevel-is-set.patch @@ -0,0 +1,36 @@ +From: Josh Boyer +Date: Fri, 20 Jun 2014 08:53:24 -0400 +Subject: [14/18] hibernate: Disable when securelevel is set +Origin: https://github.com/mjg59/linux/commit/500a87278c5c0608ba88ed8af7a35fcfa955c492 + +There is currently no way to verify the resume image when returning +from hibernate. This might compromise the securelevel trust model, +so until we can work with signed hibernate images we disable it in +a secure modules environment. + +Signed-off-by: Josh Boyer +--- + kernel/power/hibernate.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c +index fca9254280ee..7bf7f723a27f 100644 +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + + #include "power.h" +@@ -66,7 +67,7 @@ static const struct platform_hibernation_ops *hibernation_ops; + + bool hibernation_available(void) + { +- return (nohibernate == 0); ++ return ((nohibernate == 0) && (get_securelevel() <= 0)); + } + + /** diff --git a/patches/features/all/securelevel/kexec-disable-at-runtime-if-securelevel-has-been-set.patch b/patches/features/all/securelevel/kexec-disable-at-runtime-if-securelevel-has-been-set.patch new file mode 100644 index 00000000000..3969a8e7ea9 --- /dev/null +++ b/patches/features/all/securelevel/kexec-disable-at-runtime-if-securelevel-has-been-set.patch @@ -0,0 +1,36 @@ +From: Matthew Garrett +Date: Fri, 9 Aug 2013 03:33:56 -0400 +Subject: [08/18] kexec: Disable at runtime if securelevel has been set. +Origin: https://github.com/mjg59/linux/commit/ec87b6aac76fd553578cec2c05674e22b79afe3e + +kexec permits the loading and execution of arbitrary code in ring 0, which +permits the modification of the running kernel. Prevent this if securelevel +has been set. + +Signed-off-by: Matthew Garrett +--- + kernel/kexec.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/kernel/kexec.c b/kernel/kexec.c +index ee70aef5cd81..542655ea297c 100644 +--- a/kernel/kexec.c ++++ b/kernel/kexec.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + #include "kexec_internal.h" + +@@ -134,6 +135,9 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments, + if (!capable(CAP_SYS_BOOT) || kexec_load_disabled) + return -EPERM; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + /* + * Verify we have a legal set of flags + * This leaves us room for future extensions. diff --git a/patches/features/all/securelevel/kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch b/patches/features/all/securelevel/kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch new file mode 100644 index 00000000000..445aa636958 --- /dev/null +++ b/patches/features/all/securelevel/kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch @@ -0,0 +1,32 @@ +From: Dave Young +Date: Tue, 6 Oct 2015 13:31:31 +0100 +Subject: [15/18] kexec/uefi: copy secure_boot flag in boot params across kexec + reboot +Origin: https://github.com/mjg59/linux/commit/4b2b64d5a6ebc84214755ebccd599baef7c1b798 + +Kexec reboot in case secure boot being enabled does not keep the secure +boot mode in new kernel, so later one can load unsigned kernel via legacy +kexec_load. In this state, the system is missing the protections provided +by secure boot. Adding a patch to fix this by retain the secure_boot flag +in original kernel. + +secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the +stub. Fixing this issue by copying secure_boot flag across kexec reboot. + +Signed-off-by: Dave Young +--- + arch/x86/kernel/kexec-bzimage64.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c +index 2af478e3fd4e..61827eeb6881 100644 +--- a/arch/x86/kernel/kexec-bzimage64.c ++++ b/arch/x86/kernel/kexec-bzimage64.c +@@ -180,6 +180,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr, + if (efi_enabled(EFI_OLD_MEMMAP)) + return 0; + ++ params->secure_boot = boot_params.secure_boot; + ei->efi_loader_signature = current_ei->efi_loader_signature; + ei->efi_systab = current_ei->efi_systab; + ei->efi_systab_hi = current_ei->efi_systab_hi; diff --git a/patches/features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch b/patches/features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch new file mode 100644 index 00000000000..b8b2e33e822 --- /dev/null +++ b/patches/features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch @@ -0,0 +1,52 @@ +From: Ben Hutchings +Date: Fri, 03 Jun 2016 00:48:39 +0100 +Subject: mtd: Disable slram and phram when securelevel is enabled + +The slram and phram drivers both allow mapping regions of physical +address space such that they can then be read and written by userland +through the MTD interface. This is probably usable to manipulate +hardware into overwriting kernel code on many systems. Prevent that +if securelevel is set. + +Signed-off-by: Ben Hutchings +--- +--- a/drivers/mtd/devices/phram.c ++++ b/drivers/mtd/devices/phram.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + struct phram_mtd_list { + struct mtd_info mtd; +@@ -226,6 +227,9 @@ static int phram_setup(const char *val) + uint64_t len; + int i, ret; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (strnlen(val, sizeof(buf)) >= sizeof(buf)) + parse_err("parameter too long\n"); + +--- a/drivers/mtd/devices/slram.c ++++ b/drivers/mtd/devices/slram.c +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + + #include + +@@ -230,6 +231,9 @@ static int parse_cmdline(char *devname, + unsigned long devstart; + unsigned long devlength; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if ((!devname) || (!szstart) || (!szlength)) { + unregister_devices(); + return(-EINVAL); diff --git a/patches/features/all/securelevel/pci-lock-down-bar-access-when-securelevel-is-enabled.patch b/patches/features/all/securelevel/pci-lock-down-bar-access-when-securelevel-is-enabled.patch new file mode 100644 index 00000000000..06e2136d634 --- /dev/null +++ b/patches/features/all/securelevel/pci-lock-down-bar-access-when-securelevel-is-enabled.patch @@ -0,0 +1,108 @@ +From: Matthew Garrett +Date: Thu, 8 Mar 2012 10:10:38 -0500 +Subject: [03/18] PCI: Lock down BAR access when securelevel is enabled +Origin: https://github.com/mjg59/linux/commit/2533a3844cf8c43bf58b653334f8925cd1e7d405 + +Any hardware that can potentially generate DMA has to be locked down from +userspace in order to avoid it being possible for an attacker to modify +kernel code. This should be prevented if securelevel has been set. Default +to paranoid - in future we can potentially relax this for sufficiently +IOMMU-isolated devices. + +Signed-off-by: Matthew Garrett +--- + drivers/pci/pci-sysfs.c | 9 +++++++++ + drivers/pci/proc.c | 9 ++++++++- + drivers/pci/syscall.c | 3 ++- + 3 files changed, 19 insertions(+), 2 deletions(-) + +--- a/drivers/pci/pci-sysfs.c ++++ b/drivers/pci/pci-sysfs.c +@@ -716,6 +716,9 @@ static ssize_t pci_write_config(struct f + loff_t init_off = off; + u8 *data = (u8 *) buf; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (off > dev->cfg_size) + return 0; + if (off + count > dev->cfg_size) { +@@ -1007,6 +1010,9 @@ static int pci_mmap_resource(struct kobj + resource_size_t start, end; + int i; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + for (i = 0; i < PCI_ROM_RESOURCE; i++) + if (res == &pdev->resource[i]) + break; +@@ -1106,6 +1112,9 @@ static ssize_t pci_write_resource_io(str + struct bin_attribute *attr, char *buf, + loff_t off, size_t count) + { ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + return pci_resource_io(filp, kobj, attr, buf, off, count, true); + } + +--- a/drivers/pci/proc.c ++++ b/drivers/pci/proc.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include "pci.h" +@@ -116,6 +117,9 @@ static ssize_t proc_bus_pci_write(struct + int size = dev->cfg_size; + int cnt; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (pos >= size) + return 0; + if (nbytes >= size) +@@ -195,6 +199,9 @@ static long proc_bus_pci_ioctl(struct fi + #endif /* HAVE_PCI_MMAP */ + int ret = 0; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + switch (cmd) { + case PCIIOC_CONTROLLER: + ret = pci_domain_nr(dev->bus); +@@ -233,7 +240,7 @@ static int proc_bus_pci_mmap(struct file + struct pci_filp_private *fpriv = file->private_data; + int i, ret, write_combine; + +- if (!capable(CAP_SYS_RAWIO)) ++ if (!capable(CAP_SYS_RAWIO) || (get_securelevel() > 0)) + return -EPERM; + + /* Make sure the caller is mapping a real resource for this device */ +--- a/drivers/pci/syscall.c ++++ b/drivers/pci/syscall.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + #include + #include "pci.h" + +@@ -92,7 +93,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigne + u32 dword; + int err = 0; + +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_SYS_ADMIN) || (get_securelevel() > 0)) + return -EPERM; + + dev = pci_get_bus_and_slot(bus, dfn); diff --git a/patches/features/all/securelevel/restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch b/patches/features/all/securelevel/restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch new file mode 100644 index 00000000000..dd8676dab9d --- /dev/null +++ b/patches/features/all/securelevel/restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch @@ -0,0 +1,37 @@ +From: Matthew Garrett +Date: Fri, 9 Mar 2012 09:28:15 -0500 +Subject: [05/18] Restrict /dev/mem and /dev/kmem when securelevel is set. +Origin: https://github.com/mjg59/linux/commit/401996625d478c814fe9e736ca9e6c5c5f055f06 + +Allowing users to write to address space provides mechanisms that may permit +modification of the kernel at runtime. Prevent this if securelevel has been +set. + +Signed-off-by: Matthew Garrett +[bwh: Forward-ported to 4.9: adjust context] +--- + drivers/char/mem.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/char/mem.c ++++ b/drivers/char/mem.c +@@ -164,6 +164,9 @@ static ssize_t write_mem(struct file *fi + if (p != *ppos) + return -EFBIG; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (!valid_phys_addr_range(p, count)) + return -EFAULT; + +@@ -513,6 +516,9 @@ static ssize_t write_kmem(struct file *f + char *kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ + int err = 0; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (!pfn_valid(PFN_DOWN(p))) + return -EIO; + diff --git a/patches/features/all/securelevel/uswsusp-disable-when-securelevel-is-set.patch b/patches/features/all/securelevel/uswsusp-disable-when-securelevel-is-set.patch new file mode 100644 index 00000000000..88129ec7b48 --- /dev/null +++ b/patches/features/all/securelevel/uswsusp-disable-when-securelevel-is-set.patch @@ -0,0 +1,36 @@ +From: Matthew Garrett +Date: Tue, 3 Sep 2013 11:23:29 -0400 +Subject: [09/18] uswsusp: Disable when securelevel is set +Origin: https://github.com/mjg59/linux/commit/504f45f7cc9b4265a4d89728c4f8254295e81977 + +uswsusp allows a user process to dump and then restore kernel state, which +makes it possible to modify the running kernel. Disable this if securelevel +has been set. + +Signed-off-by: Matthew Garrett +--- + kernel/power/user.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/kernel/power/user.c b/kernel/power/user.c +index 526e8911460a..40618bf41620 100644 +--- a/kernel/power/user.c ++++ b/kernel/power/user.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include + +@@ -52,6 +53,9 @@ static int snapshot_open(struct inode *inode, struct file *filp) + if (!hibernation_available()) + return -EPERM; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + lock_system_sleep(); + + if (!atomic_add_unless(&snapshot_device_available, -1, 0)) { diff --git a/patches/features/all/securelevel/x86-lock-down-io-port-access-when-securelevel-is-ena.patch b/patches/features/all/securelevel/x86-lock-down-io-port-access-when-securelevel-is-ena.patch new file mode 100644 index 00000000000..8201450f283 --- /dev/null +++ b/patches/features/all/securelevel/x86-lock-down-io-port-access-when-securelevel-is-ena.patch @@ -0,0 +1,74 @@ +From: Matthew Garrett +Date: Thu, 8 Mar 2012 10:35:59 -0500 +Subject: [04/18] x86: Lock down IO port access when securelevel is enabled +Origin: https://github.com/mjg59/linux/commit/2ad64f6ea1f1164c8b552860faa27392d9da9928 + +IO port access would permit users to gain access to PCI configuration +registers, which in turn (on a lot of hardware) give access to MMIO register +space. This would potentially permit root to trigger arbitrary DMA, so lock +it down when securelevel is set. + +Signed-off-by: Matthew Garrett +--- + arch/x86/kernel/ioport.c | 5 +++-- + drivers/char/mem.c | 7 +++++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +--- a/arch/x86/kernel/ioport.c ++++ b/arch/x86/kernel/ioport.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + + /* +@@ -28,7 +29,7 @@ asmlinkage long sys_ioperm(unsigned long + + if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) + return -EINVAL; +- if (turn_on && !capable(CAP_SYS_RAWIO)) ++ if (turn_on && (!capable(CAP_SYS_RAWIO) || (get_securelevel() > 0))) + return -EPERM; + + /* +@@ -108,7 +109,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, leve + return -EINVAL; + /* Trying to gain more privileges? */ + if (level > old) { +- if (!capable(CAP_SYS_RAWIO)) ++ if (!capable(CAP_SYS_RAWIO) || (get_securelevel() > 0)) + return -EPERM; + } + regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | +--- a/drivers/char/mem.c ++++ b/drivers/char/mem.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include + +@@ -559,6 +560,9 @@ static ssize_t read_port(struct file *fi + unsigned long i = *ppos; + char __user *tmp = buf; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (!access_ok(VERIFY_WRITE, buf, count)) + return -EFAULT; + while (count-- > 0 && i < 65536) { +@@ -577,6 +581,9 @@ static ssize_t write_port(struct file *f + unsigned long i = *ppos; + const char __user *tmp = buf; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (!access_ok(VERIFY_READ, buf, count)) + return -EFAULT; + while (count-- > 0 && i < 65536) { diff --git a/patches/features/all/securelevel/x86-restrict-msr-access-when-securelevel-is-set.patch b/patches/features/all/securelevel/x86-restrict-msr-access-when-securelevel-is-set.patch new file mode 100644 index 00000000000..40263e17cd4 --- /dev/null +++ b/patches/features/all/securelevel/x86-restrict-msr-access-when-securelevel-is-set.patch @@ -0,0 +1,46 @@ +From: Matthew Garrett +Date: Fri, 8 Feb 2013 11:12:13 -0800 +Subject: [10/18] x86: Restrict MSR access when securelevel is set +Origin: https://github.com/mjg59/linux/commit/c6ad37822699967e60fae57a64ae89676f543182 + +Permitting write access to MSRs allows userspace to modify the running +kernel. Prevent this if securelevel has been set. Based on a patch by Kees +Cook. + +Cc: Kees Cook +Signed-off-by: Matthew Garrett +--- + arch/x86/kernel/msr.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/x86/kernel/msr.c ++++ b/arch/x86/kernel/msr.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -83,6 +84,9 @@ static ssize_t msr_write(struct file *fi + int err = 0; + ssize_t bytes = 0; + ++ if (get_securelevel() > 0) ++ return -EPERM; ++ + if (count % 8) + return -EINVAL; /* Invalid chunk size */ + +@@ -130,6 +134,10 @@ static long msr_ioctl(struct file *file, + err = -EBADF; + break; + } ++ if (get_securelevel() > 0) { ++ err = -EPERM; ++ break; ++ } + if (copy_from_user(®s, uregs, sizeof regs)) { + err = -EFAULT; + break; diff --git a/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch b/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch new file mode 100644 index 00000000000..6acd429db46 --- /dev/null +++ b/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch @@ -0,0 +1,75 @@ +From: Ben Hutchings +Date: Mon, 11 Jan 2016 15:23:55 +0000 +Subject: security,perf: Allow further restriction of perf_event_open +Forwarded: https://lkml.org/lkml/2016/1/11/587 + +When kernel.perf_event_open is set to 3 (or greater), disallow all +access to performance events by users without CAP_SYS_ADMIN. +Add a Kconfig symbol CONFIG_SECURITY_PERF_EVENTS_RESTRICT that +makes this value the default. + +This is based on a similar feature in grsecurity +(CONFIG_GRKERNSEC_PERF_HARDEN). This version doesn't include making +the variable read-only. It also allows enabling further restriction +at run-time regardless of whether the default is changed. + +Signed-off-by: Ben Hutchings +--- +--- a/include/linux/perf_event.h ++++ b/include/linux/perf_event.h +@@ -1145,6 +1145,11 @@ extern int perf_cpu_time_max_percent_han + int perf_event_max_stack_handler(struct ctl_table *table, int write, + void __user *buffer, size_t *lenp, loff_t *ppos); + ++static inline bool perf_paranoid_any(void) ++{ ++ return sysctl_perf_event_paranoid > 2; ++} ++ + static inline bool perf_paranoid_tracepoint_raw(void) + { + return sysctl_perf_event_paranoid > -1; +--- a/kernel/events/core.c ++++ b/kernel/events/core.c +@@ -389,8 +389,13 @@ static struct srcu_struct pmus_srcu; + * 0 - disallow raw tracepoint access for unpriv + * 1 - disallow cpu events for unpriv + * 2 - disallow kernel profiling for unpriv ++ * 3 - disallow all unpriv perf event use + */ ++#ifdef CONFIG_SECURITY_PERF_EVENTS_RESTRICT ++int sysctl_perf_event_paranoid __read_mostly = 3; ++#else + int sysctl_perf_event_paranoid __read_mostly = 2; ++#endif + + /* Minimum for 512 kiB + 1 user control page */ + int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ +@@ -9395,6 +9400,9 @@ SYSCALL_DEFINE5(perf_event_open, + if (flags & ~PERF_FLAG_ALL) + return -EINVAL; + ++ if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN)) ++ return -EACCES; ++ + err = perf_copy_attr(attr_uptr, &attr); + if (err) + return err; +--- a/security/Kconfig ++++ b/security/Kconfig +@@ -18,6 +18,15 @@ config SECURITY_DMESG_RESTRICT + + If you are unsure how to answer this question, answer N. + ++config SECURITY_PERF_EVENTS_RESTRICT ++ bool "Restrict unprivileged use of performance events" ++ depends on PERF_EVENTS ++ help ++ If you say Y here, the kernel.perf_event_paranoid sysctl ++ will be set to 3 by default, and no unprivileged use of the ++ perf_event_open syscall will be permitted unless it is ++ changed. ++ + config SECURITY + bool "Enable different security models" + depends on SYSFS diff --git a/patches/features/arm/arm-dts-add-support-for-turris-omnia.patch b/patches/features/arm/arm-dts-add-support-for-turris-omnia.patch new file mode 100644 index 00000000000..2650e513e96 --- /dev/null +++ b/patches/features/arm/arm-dts-add-support-for-turris-omnia.patch @@ -0,0 +1,376 @@ +From: Uwe Kleine-König +Date: Fri, 25 Nov 2016 15:26:58 +0100 +Subject: ARM: dts: add support for Turris Omnia +Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=26ca8b52d6e18c10109cabda0f775dd9345bbfdf + +This machine is an open hardware router by cz.nic driven by a +Marvell Armada 385. + +Signed-off-by: Uwe Kleine-König +Signed-off-by: Tomas Hlavacek +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/armada-385-turris-omnia.dts | 340 ++++++++++++++++++++++++++ + 2 files changed, 341 insertions(+) + create mode 100644 arch/arm/boot/dts/armada-385-turris-omnia.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 485304914916..9a3f07e86a5a 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -921,6 +921,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \ + armada-385-db-ap.dtb \ + armada-385-linksys-caiman.dtb \ + armada-385-linksys-cobra.dtb \ ++ armada-385-turris-omnia.dtb \ + armada-388-clearfog.dtb \ + armada-388-db.dtb \ + armada-388-gp.dtb \ +diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts +new file mode 100644 +index 000000000000..ab49acb2d452 +--- /dev/null ++++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts +@@ -0,0 +1,340 @@ ++/* ++ * Device Tree file for the Turris Omnia ++ * ++ * Copyright (C) 2016 Uwe Kleine-König ++ * Copyright (C) 2016 Tomas Hlavacek ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without ++ * any warranty of any kind, whether express or implied. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* ++ * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf ++ */ ++ ++/dts-v1/; ++ ++#include ++#include ++#include "armada-385.dtsi" ++ ++/ { ++ model = "Turris Omnia"; ++ compatible = "cznic,turris-omnia", "marvell,armada385", "marvell,armada380"; ++ ++ chosen { ++ stdout-path = &uart0; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x00000000 0x40000000>; /* 1024 MB */ ++ }; ++ ++ soc { ++ ranges = ; ++ ++ internal-regs { ++ ++ /* USB part of the PCIe2/USB 2.0 port */ ++ usb@58000 { ++ status = "okay"; ++ }; ++ ++ sata@a8000 { ++ status = "okay"; ++ }; ++ ++ sdhci@d8000 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhci_pins>; ++ status = "okay"; ++ ++ bus-width = <8>; ++ no-1-8-v; ++ non-removable; ++ }; ++ ++ usb3@f0000 { ++ status = "okay"; ++ }; ++ ++ usb3@f8000 { ++ status = "okay"; ++ }; ++ }; ++ ++ pcie-controller { ++ status = "okay"; ++ ++ pcie@1,0 { ++ /* Port 0, Lane 0 */ ++ status = "okay"; ++ }; ++ ++ pcie@2,0 { ++ /* Port 1, Lane 0 */ ++ status = "okay"; ++ }; ++ ++ pcie@3,0 { ++ /* Port 2, Lane 0 */ ++ status = "okay"; ++ }; ++ }; ++ }; ++}; ++ ++/* Connected to 88E6176 switch, port 6 */ ++ð0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&ge0_rgmii_pins>; ++ status = "okay"; ++ phy-mode = "rgmii-id"; ++ ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++}; ++ ++/* Connected to 88E6176 switch, port 5 */ ++ð1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&ge1_rgmii_pins>; ++ status = "okay"; ++ phy-mode = "rgmii-id"; ++ ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++}; ++ ++/* WAN port */ ++ð2 { ++ status = "okay"; ++ phy-mode = "sgmii"; ++ phy = <&phy1>; ++}; ++ ++&i2c0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins>; ++ status = "okay"; ++ ++ i2cmux@70 { ++ compatible = "nxp,pca9547"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0x70>; ++ status = "okay"; ++ ++ i2c@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0>; ++ ++ /* STM32F0 command interface at address 0x2a */ ++ /* leds device (in STM32F0) at address 0x2b */ ++ ++ eeprom@54 { ++ compatible = "at,24c64"; ++ reg = <0x54>; ++ ++ /* The EEPROM contains data for bootloader. ++ * Contents: ++ * struct omnia_eeprom { ++ * u32 magic; (=0x0341a034 in LE) ++ * u32 ramsize; (in GiB) ++ * char regdomain[4]; ++ * u32 crc32; ++ * }; ++ */ ++ }; ++ }; ++ ++ i2c@1 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <1>; ++ ++ /* routed to PCIe0/mSATA connector (CN7A) */ ++ }; ++ ++ i2c@2 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <2>; ++ ++ /* routed to PCIe1/USB2 connector (CN61A) */ ++ }; ++ ++ i2c@3 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <3>; ++ ++ /* routed to PCIe2 connector (CN62A) */ ++ }; ++ ++ i2c@4 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <4>; ++ ++ /* routed to SFP+ */ ++ }; ++ ++ i2c@5 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <5>; ++ ++ /* ATSHA204A at address 0x64 */ ++ }; ++ ++ i2c@6 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <6>; ++ ++ /* exposed on pin header */ ++ }; ++ ++ i2c@7 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <7>; ++ ++ pcawan: gpio@71 { ++ /* ++ * GPIO expander for SFP+ signals and ++ * and phy irq ++ */ ++ compatible = "nxp,pca9538"; ++ reg = <0x71>; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcawan_pins>; ++ ++ interrupt-parent = <&gpio1>; ++ interrupts = <14 IRQ_TYPE_LEVEL_LOW>; ++ ++ gpio-controller; ++ #gpio-cells = <2>; ++ }; ++ }; ++ }; ++}; ++ ++&mdio { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mdio_pins>; ++ status = "okay"; ++ ++ phy1: phy@1 { ++ status = "okay"; ++ compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ ++ /* irq is connected to &pcawan pin 7 */ ++ }; ++ ++ /* Switch MV88E7176 at address 0x10 */ ++}; ++ ++&pinctrl { ++ pcawan_pins: pcawan-pins { ++ marvell,pins = "mpp46"; ++ marvell,function = "gpio"; ++ }; ++ ++ spi0cs0_pins: spi0cs0-pins { ++ marvell,pins = "mpp25"; ++ marvell,function = "spi0"; ++ }; ++ ++ spi0cs1_pins: spi0cs1-pins { ++ marvell,pins = "mpp26"; ++ marvell,function = "spi0"; ++ }; ++}; ++ ++&spi0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi0_pins &spi0cs0_pins>; ++ status = "okay"; ++ ++ spi-nor@0 { ++ compatible = "spansion,s25fl164k", "jedec,spi-nor"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ reg = <0>; ++ spi-max-frequency = <40000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ reg = <0x0 0x00100000>; ++ label = "U-Boot"; ++ }; ++ ++ partition@100000 { ++ reg = <0x00100000 0x00700000>; ++ label = "Rescue system"; ++ }; ++ }; ++ }; ++ ++ /* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */ ++}; ++ ++&uart0 { ++ /* Pin header CN10 */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_pins>; ++ status = "okay"; ++}; ++ ++&uart1 { ++ /* Pin header CN11 */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart1_pins>; ++ status = "okay"; ++}; diff --git a/patches/features/arm/arm-dts-turris-omnia-add-support-for-ethernet-switch.patch b/patches/features/arm/arm-dts-turris-omnia-add-support-for-ethernet-switch.patch new file mode 100644 index 00000000000..80b7a7ad382 --- /dev/null +++ b/patches/features/arm/arm-dts-turris-omnia-add-support-for-ethernet-switch.patch @@ -0,0 +1,102 @@ +From: Uwe Kleine-König +Date: Tue, 3 Jan 2017 20:35:01 +0100 +Subject: [PATCH] ARM: dts: turris-omnia: add support for ethernet switch +Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=7b7db5ab33d2292d9b037cda0c41a795b094d940 + +The Turris Omnia features a Marvell MV88E6176 ethernet switch. Add it to +the dts. + +Signed-off-by: Uwe Kleine-König +Reviewed-by: Andrew Lunn +Tested-by: Andreas Färber +Signed-off-by: Gregory CLEMENT +--- + arch/arm/boot/dts/armada-385-turris-omnia.dts | 58 +++++++++++++++++++++++++-- + 1 file changed, 55 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts +index ab49acb2d452..28eede180e4f 100644 +--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts ++++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts +@@ -122,7 +122,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&ge0_rgmii_pins>; + status = "okay"; +- phy-mode = "rgmii-id"; ++ phy-mode = "rgmii"; + + fixed-link { + speed = <1000>; +@@ -135,7 +135,7 @@ + pinctrl-names = "default"; + pinctrl-0 = <&ge1_rgmii_pins>; + status = "okay"; +- phy-mode = "rgmii-id"; ++ phy-mode = "rgmii"; + + fixed-link { + speed = <1000>; +@@ -273,7 +273,59 @@ + /* irq is connected to &pcawan pin 7 */ + }; + +- /* Switch MV88E7176 at address 0x10 */ ++ /* Switch MV88E6176 at address 0x10 */ ++ switch@10 { ++ compatible = "marvell,mv88e6085"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ dsa,member = <0 0>; ++ ++ reg = <0x10>; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ ports@0 { ++ reg = <0>; ++ label = "lan0"; ++ }; ++ ++ ports@1 { ++ reg = <1>; ++ label = "lan1"; ++ }; ++ ++ ports@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ ports@3 { ++ reg = <3>; ++ label = "lan3"; ++ }; ++ ++ ports@4 { ++ reg = <4>; ++ label = "lan4"; ++ }; ++ ++ ports@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <ð1>; ++ phy-mode = "rgmii-id"; ++ ++ fixed-link { ++ speed = <1000>; ++ full-duplex; ++ }; ++ }; ++ ++ /* port 6 is connected to eth0 */ ++ }; ++ }; + }; + + &pinctrl { +-- +2.11.0 + diff --git a/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch b/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch new file mode 100644 index 00000000000..a40d273dca0 --- /dev/null +++ b/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch @@ -0,0 +1,57 @@ +From: Aurelien Jarno +Date: Sun, 20 Jul 2014 19:16:31 +0200 +Subject: MIPS: Loongson 3: Add Loongson LS3A RS780E 1-way machine definition +Forwarded: no + +Add a Loongson LS3A RS780E 1-way machine definition, which only differs +from other Loongson 3 based machines by the UART base clock speed. + +Signed-off-by: Aurelien Jarno +[bwh: Forward-ported to 4.2] +--- + arch/mips/include/asm/bootinfo.h | 1 + + arch/mips/loongson64/common/machtype.c | 1 + + arch/mips/loongson64/common/serial.c | 1 + + arch/mips/loongson64/common/uart_base.c | 1 + + 4 files changed, 4 insertions(+) + +--- a/arch/mips/include/asm/bootinfo.h ++++ b/arch/mips/include/asm/bootinfo.h +@@ -71,6 +71,7 @@ enum loongson_machine_type { + MACH_LEMOTE_NAS, + MACH_LEMOTE_LL2F, + MACH_LOONGSON_GENERIC, ++ MACH_LOONGSON_3A780E1W, + MACH_LOONGSON_END + }; + +--- a/arch/mips/loongson64/common/machtype.c ++++ b/arch/mips/loongson64/common/machtype.c +@@ -28,6 +28,7 @@ static const char *system_types[] = { + [MACH_LEMOTE_NAS] = "lemote-nas-2f", + [MACH_LEMOTE_LL2F] = "lemote-lynloong-2f", + [MACH_LOONGSON_GENERIC] = "generic-loongson-machine", ++ [MACH_LOONGSON_3A780E1W] = "loongson-ls3a-rs780e-1w", + [MACH_LOONGSON_END] = NULL, + }; + +--- a/arch/mips/loongson64/common/serial.c ++++ b/arch/mips/loongson64/common/serial.c +@@ -48,6 +48,7 @@ static struct plat_serial8250_port uart8 + [MACH_LEMOTE_NAS] = {PORT_M(3, 3686400), {} }, + [MACH_LEMOTE_LL2F] = {PORT(3, 1843200), {} }, + [MACH_LOONGSON_GENERIC] = {PORT_M(2, 25000000), {} }, ++ [MACH_LOONGSON_3A780E1W] = {PORT_M(2, 33177600), {} }, + [MACH_LOONGSON_END] = {}, + }; + +--- a/arch/mips/loongson64/common/uart_base.c ++++ b/arch/mips/loongson64/common/uart_base.c +@@ -25,6 +25,7 @@ void prom_init_loongson_uart_base(void) + { + switch (mips_machtype) { + case MACH_LOONGSON_GENERIC: ++ case MACH_LOONGSON_3A780E1W: + /* The CPU provided serial port (CPU) */ + loongson_uart_base[0] = LOONGSON_REG_BASE + 0x1e0; + break; diff --git a/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch b/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch new file mode 100644 index 00000000000..320c651decb --- /dev/null +++ b/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch @@ -0,0 +1,29 @@ +From: Aurelien Jarno +Subject: MIPS: increase MAX_PHYSMEM_BITS on Loongson 3 only +Bug-Debian: https://bugs.debian.org/764223 +Forwarded: no + +Commit c4617318 broke Loongson-2 support and maybe even more by increasing +the value of MAX_PHYSMEM_BITS. At it is currently only needed on +Loongson-3, define it conditionally. + +Note: this should be replace by upstream fix when available. + +diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h +index b1071c1..778dca7 100644 +--- a/arch/mips/include/asm/sparsemem.h ++++ b/arch/mips/include/asm/sparsemem.h +@@ -11,7 +11,12 @@ + #else + # define SECTION_SIZE_BITS 28 + #endif +-#define MAX_PHYSMEM_BITS 48 ++ ++#if defined(CONFIG_CPU_LOONGSON3) ++# define MAX_PHYSMEM_BITS 48 ++#else ++# define MAX_PHYSMEM_BITS 35 ++#endif + + #endif /* CONFIG_SPARSEMEM */ + #endif /* _MIPS_SPARSEMEM_H */ diff --git a/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch b/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch new file mode 100644 index 00000000000..744f560ed76 --- /dev/null +++ b/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch @@ -0,0 +1,52 @@ +From: Markos Chandras +Date: Fri, 28 Mar 2014 17:22:52 +0000 +Subject: [PATCH 01/12] MIPS: octeon: Add support for the UBNT E200 board +Origin: not submitted yet + +Add support for the UBNT E200 board (EdgeRouter/EdgeRouter Pro 8 port). + +Signed-off-by: Markos Chandras +[bwh: Forward-ported to 3.17: adjust context] +--- + arch/mips/cavium-octeon/executive/cvmx-helper-board.c | 3 +++ + arch/mips/include/asm/octeon/cvmx-bootinfo.h | 2 ++ + arch/mips/include/asm/octeon/octeon-model.h | 3 +++ + 3 files changed, 8 insertions(+) + +--- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c ++++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c +@@ -186,6 +186,8 @@ int cvmx_helper_board_get_mii_address(in + return 7 - ipd_port; + else + return -1; ++ case CVMX_BOARD_TYPE_UBNT_E200: ++ return -1; + case CVMX_BOARD_TYPE_KONTRON_S1901: + if (ipd_port == CVMX_HELPER_BOARD_MGMT_IPD_PORT) + return 1; +@@ -744,6 +746,7 @@ enum cvmx_helper_board_usb_clock_types _ + case CVMX_BOARD_TYPE_LANAI2_G: + case CVMX_BOARD_TYPE_NIC10E_66: + case CVMX_BOARD_TYPE_UBNT_E100: ++ case CVMX_BOARD_TYPE_UBNT_E200: + return USB_CLOCK_TYPE_CRYSTAL_12; + case CVMX_BOARD_TYPE_NIC10E: + return USB_CLOCK_TYPE_REF_12; +--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h ++++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h +@@ -295,6 +295,7 @@ enum cvmx_board_types_enum { + */ + CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, + CVMX_BOARD_TYPE_UBNT_E100 = 20002, ++ CVMX_BOARD_TYPE_UBNT_E200 = 20003, + CVMX_BOARD_TYPE_CUST_DSR1000N = 20006, + CVMX_BOARD_TYPE_KONTRON_S1901 = 21901, + CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, +@@ -396,6 +397,7 @@ static inline const char *cvmx_board_typ + /* Customer private range */ + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100) ++ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) diff --git a/patches/features/x86/x86-make-x32-syscall-support-conditional.patch b/patches/features/x86/x86-make-x32-syscall-support-conditional.patch new file mode 100644 index 00000000000..d606fbfc66d --- /dev/null +++ b/patches/features/x86/x86-make-x32-syscall-support-conditional.patch @@ -0,0 +1,212 @@ +From: Ben Hutchings +Date: Fri, 25 Jul 2014 01:16:15 +0100 +Subject: x86: Make x32 syscall support conditional on a kernel parameter +Bug-Debian: https://bugs.debian.org/708070 +Forwarded: http://mid.gmane.org/1415245982.3398.53.camel@decadent.org.uk + +Enabling x32 in the standard amd64 kernel would increase its attack +surface while provide no benefit to the vast majority of its users. +No-one seems interested in regularly checking for vulnerabilities +specific to x32 (at least no-one with a white hat). + +Still, adding another flavour just to turn on x32 seems wasteful. And +the only differences on syscall entry are two instructions (mask out +the x32 flag and compare the syscall number). + +So pad the standard comparison with a nop and add a kernel parameter +"syscall.x32" which controls whether this is replaced with the x32 +version at boot time. Add a Kconfig parameter to set the default. + +Signed-off-by: Ben Hutchings +--- + Documentation/kernel-parameters.txt | 4 ++++ + arch/x86/Kconfig | 8 +++++++ + arch/x86/include/asm/elf.h | 8 ++++++- + arch/x86/entry/entry_64.S | 36 ++++++++++++++++++++++--------- + arch/x86/entry/syscall_64.c | 43 +++++++++++++++++++++++++++++++++++++ + 5 files changed, 88 insertions(+), 11 deletions(-) + +--- a/Documentation/kernel-parameters.txt ++++ b/Documentation/kernel-parameters.txt +@@ -4005,6 +4005,10 @@ bytes respectively. Such letter suffixes + + switches= [HW,M68k] + ++ syscall.x32= [KNL,x86_64] Enable/disable use of x32 syscalls on ++ an x86_64 kernel where CONFIG_X86_X32 is enabled. ++ Default depends on CONFIG_X86_X32_DISABLED. ++ + sysfs.deprecated=0|1 [KNL] + Enable/disable old style sysfs layout for old udev + on older distributions. When this option is enabled +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -2721,6 +2721,14 @@ config X86_X32 + elf32_x86_64 support enabled to compile a kernel with this + option set. + ++config X86_X32_DISABLED ++ bool "x32 ABI disabled by default" ++ depends on X86_X32 ++ default n ++ help ++ Disable the x32 ABI unless explicitly enabled using the ++ kernel paramter "syscall.x32=y". ++ + config COMPAT + def_bool y + depends on IA32_EMULATION || X86_X32 +--- a/arch/x86/include/asm/elf.h ++++ b/arch/x86/include/asm/elf.h +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + typedef unsigned long elf_greg_t; + +@@ -162,7 +163,7 @@ do { \ + + #define compat_elf_check_arch(x) \ + (elf_check_arch_ia32(x) || \ +- (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64)) ++ (x32_enabled && (x)->e_machine == EM_X86_64)) + + #if __USER32_DS != __USER_DS + # error "The following code assumes __USER32_DS == __USER_DS" +--- a/arch/x86/entry/entry_64.S ++++ b/arch/x86/entry/entry_64.S +@@ -195,8 +195,12 @@ entry_SYSCALL_64_fastpath: + #if __SYSCALL_MASK == ~0 + cmpq $__NR_syscall_max, %rax + #else +- andl $__SYSCALL_MASK, %eax +- cmpl $__NR_syscall_max, %eax ++.global system_call_fast_compare ++.global system_call_fast_compare_end ++system_call_fast_compare: ++ cmpq $511, %rax /* x32 syscalls start at 512 */ ++ .byte P6_NOP4 ++system_call_fast_compare_end: + #endif + ja 1f /* return -ENOSYS (already in pt_regs->ax) */ + movq %r10, %rcx +@@ -331,6 +335,16 @@ opportunistic_sysret_failed: + jmp restore_c_regs_and_iret + END(entry_SYSCALL_64) + ++#if __SYSCALL_MASK != ~0 ++ /* This replaces the usual comparisons if syscall.x32 is set */ ++.global system_call_mask_compare ++.global system_call_mask_compare_end ++system_call_mask_compare: ++ andl $__SYSCALL_MASK, %eax ++ cmpl $__NR_syscall_max, %eax ++system_call_mask_compare_end: ++#endif ++ + ENTRY(stub_ptregs_64) + /* + * Syscalls marked as needing ptregs land here. +--- a/arch/x86/entry/syscall_64.c ++++ b/arch/x86/entry/syscall_64.c +@@ -3,8 +3,14 @@ + #include + #include + #include ++#include ++#undef MODULE_PARAM_PREFIX ++#define MODULE_PARAM_PREFIX "syscall." ++#include ++#include + #include + #include ++#include + + #define __SYSCALL_64_QUAL_(sym) sym + #define __SYSCALL_64_QUAL_ptregs(sym) ptregs_##sym +@@ -25,3 +31,36 @@ asmlinkage const sys_call_ptr_t sys_call + [0 ... __NR_syscall_max] = &sys_ni_syscall, + #include + }; ++ ++#ifdef CONFIG_X86_X32_ABI ++ ++/* Maybe enable x32 syscalls */ ++ ++bool x32_enabled = !IS_ENABLED(CONFIG_X86_X32_DISABLED); ++module_param_named(x32, x32_enabled, bool, 0444); ++ ++extern char system_call_fast_compare_end[], system_call_fast_compare[], ++ system_call_mask_compare_end[], system_call_mask_compare[]; ++ ++static int __init x32_enable(void) ++{ ++ BUG_ON(system_call_fast_compare_end - system_call_fast_compare != 10); ++ BUG_ON(system_call_mask_compare_end - system_call_mask_compare != 10); ++ ++ if (x32_enabled) { ++ text_poke_early(system_call_fast_compare, ++ system_call_mask_compare, 10); ++#ifdef CONFIG_X86_X32_DISABLED ++ pr_info("Enabled x32 syscalls\n"); ++#endif ++ } ++#ifndef CONFIG_X86_X32_DISABLED ++ else ++ pr_info("Disabled x32 syscalls\n"); ++#endif ++ ++ return 0; ++} ++late_initcall(x32_enable); ++ ++#endif +--- a/arch/x86/entry/common.c ++++ b/arch/x86/entry/common.c +@@ -264,6 +264,7 @@ __visible void do_syscall_64(struct pt_r + { + struct thread_info *ti = current_thread_info(); + unsigned long nr = regs->orig_ax; ++ unsigned int syscall_mask, nr_syscalls_enabled; + + enter_from_user_mode(); + local_irq_enable(); +@@ -276,8 +277,19 @@ __visible void do_syscall_64(struct pt_r + * table. The only functional difference is the x32 bit in + * regs->orig_ax, which changes the behavior of some syscalls. + */ +- if (likely((nr & __SYSCALL_MASK) < NR_syscalls)) { +- regs->ax = sys_call_table[nr & __SYSCALL_MASK]( ++ if (__SYSCALL_MASK == ~0U || x32_enabled) { ++ syscall_mask = __SYSCALL_MASK; ++ nr_syscalls_enabled = NR_syscalls; ++ } else { ++ /* ++ * x32 syscalls present but not enabled. Don't mask out ++ * the x32 flag and don't enable any x32-specific calls. ++ */ ++ syscall_mask = ~0U; ++ nr_syscalls_enabled = 512; ++ } ++ if (likely((nr & syscall_mask) < nr_syscalls_enabled)) { ++ regs->ax = sys_call_table[nr & syscall_mask]( + regs->di, regs->si, regs->dx, + regs->r10, regs->r8, regs->r9); + } +--- a/arch/x86/include/asm/syscall.h ++++ b/arch/x86/include/asm/syscall.h +@@ -35,6 +35,12 @@ extern const sys_call_ptr_t sys_call_tab + extern const sys_call_ptr_t ia32_sys_call_table[]; + #endif + ++#if defined(CONFIG_X86_X32_ABI) ++extern bool x32_enabled; ++#else ++#define x32_enabled 0 ++#endif ++ + /* + * Only the low 32 bits of orig_ax are meaningful, so we return int. + * This importantly ignores the high bits on 64-bit, so comparisons diff --git a/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch b/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch new file mode 100644 index 00000000000..7a795200322 --- /dev/null +++ b/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch @@ -0,0 +1,28 @@ +From: Ben Hutchings +Date: Mon, 5 Dec 2011 04:00:58 +0000 +Subject: x86: memtest: WARN if bad RAM found +Bug-Debian: https://bugs.debian.org/613321 +Forwarded: http://thread.gmane.org/gmane.linux.kernel/1286471 + +Since this is not a particularly thorough test, if we find any bad +bits of RAM then there is a fair chance that there are other bad bits +we fail to detect. + +Signed-off-by: Ben Hutchings +--- + mm/memtest.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +--- a/mm/memtest.c ++++ b/mm/memtest.c +@@ -26,6 +26,10 @@ static u64 patterns[] __initdata = { + + static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad) + { ++#ifdef CONFIG_X86 ++ WARN_ONCE(1, "Bad RAM detected. Use memtest86+ to perform a thorough test\n" ++ "and the memmap= parameter to reserve the bad areas."); ++#endif + pr_info(" %016llx bad mem addr %pa - %pa reserved\n", + cpu_to_be64(pattern), &start_bad, &end_bad); + memblock_reserve(start_bad, end_bad - start_bad); diff --git a/patches/series b/patches/series new file mode 100644 index 00000000000..4682eeaae0e --- /dev/null +++ b/patches/series @@ -0,0 +1,131 @@ +# Changes to support package build system +debian/version.patch +debian/uname-version-timestamp.patch +debian/kernelvariables.patch +debian/gitignore.patch +debian/mips-disable-werror.patch +debian/arch-sh4-fix-uimage-build.patch +debian/powerpcspe-omit-uimage.patch +features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch +debian/modpost-symbol-prefix.patch +debian/tools-perf-version.patch +debian/tools-perf-install.patch + +# Fixes/improvements to firmware loading +features/all/drivers-media-dvb-usb-af9005-request_firmware.patch +debian/iwlwifi-do-not-request-unreleased-firmware.patch +bugfix/all/firmware_class-log-every-success-and-failure.patch +bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch +bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch + +# Patches from aufs4 repository, imported with +# debian/patches/features/all/aufs4/gen-patch. These are only the +# changes needed to allow aufs to be built out-of-tree. +features/all/aufs4/aufs4-base.patch +features/all/aufs4/aufs4-mmap.patch +features/all/aufs4/aufs4-standalone.patch + +# Change some defaults for security reasons +debian/af_802154-Disable-auto-loading-as-mitigation-against.patch +debian/rds-Disable-auto-loading-as-mitigation-against-local.patch +debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch +debian/fs-enable-link-security-restrictions-by-default.patch + +# Set various features runtime-disabled by default +debian/sched-autogroup-disabled.patch +debian/yama-disable-by-default.patch +debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch +features/all/security-perf-allow-further-restriction-of-perf_event_open.patch + +# Disable autoloading/probing of various drivers by default +debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch +debian/snd-pcsp-disable-autoload.patch +bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch + +# Taint if dangerous features are used +debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch + +# Arch bug fixes + +# Arch features +features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch +features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch +features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch +features/x86/x86-memtest-WARN-if-bad-RAM-found.patch +features/x86/x86-make-x32-syscall-support-conditional.patch +features/arm/arm-dts-add-support-for-turris-omnia.patch +features/arm/arm-dts-turris-omnia-add-support-for-ethernet-switch.patch + +# Miscellaneous bug fixes +bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch +bugfix/all/disable-some-marvell-phys.patch +bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch +bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch +bugfix/all/ext4-fix-bug-838544.patch +bugfix/all/mm-memcontrol-use-special-workqueue-for-creating-per-memcg-caches.patch +bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch + +# Miscellaneous features + +# Securelevel patchset from mjg59 +features/all/securelevel/add-bsd-style-securelevel-support.patch +features/all/securelevel/enforce-module-signatures-when-securelevel-is-greate.patch +features/all/securelevel/pci-lock-down-bar-access-when-securelevel-is-enabled.patch +features/all/securelevel/x86-lock-down-io-port-access-when-securelevel-is-ena.patch +features/all/securelevel/restrict-dev-mem-and-dev-kmem-when-securelevel-is-se.patch +features/all/securelevel/acpi-limit-access-to-custom_method-if-securelevel-is.patch +features/all/securelevel/acpi-ignore-acpi_rsdp-kernel-parameter-when-securele.patch +features/all/securelevel/kexec-disable-at-runtime-if-securelevel-has-been-set.patch +features/all/securelevel/uswsusp-disable-when-securelevel-is-set.patch +features/all/securelevel/x86-restrict-msr-access-when-securelevel-is-set.patch +features/all/securelevel/asus-wmi-restrict-debugfs-interface-when-securelevel.patch +features/all/securelevel/add-option-to-automatically-set-securelevel-when-in-.patch +features/all/securelevel/efi-disable-secure-boot-if-shim-is-in-insecure-mode.patch +features/all/securelevel/hibernate-disable-when-securelevel-is-set.patch +features/all/securelevel/kexec-uefi-copy-secure_boot-flag-in-boot-params-acro.patch +features/all/securelevel/acpi-disable-acpi-table-override-if-securelevel-is-s.patch +features/all/securelevel/acpi-disable-apei-error-injection-if-securelevel-is-.patch +features/all/securelevel/enable-cold-boot-attack-mitigation.patch +features/all/securelevel/mtd-disable-slram-and-phram-when-securelevel-is-enabled.patch +# same for arm64 +features/all/securelevel/arm64-efi-disable-secure-boot-if-shim-is-in-insecure.patch +features/all/securelevel/arm64-add-kernel-config-option-to-set-securelevel-wh.patch + +# Security fixes +debian/i386-686-pae-pci-set-pci-nobios-by-default.patch + +# Fix exported symbol versions +bugfix/ia64/revert-ia64-move-exports-to-definitions.patch +bugfix/sparc/revert-sparc-move-exports-to-definitions.patch +bugfix/s390/revert-s390-move-exports-to-definitions.patch +bugfix/m68k/revert-m68k-move-exports-to-definitions.patch +bugfix/alpha/revert-alpha-move-exports-to-actual-definitions.patch +bugfix/powerpc/powerpc-remove-mac-on-linux-hooks.patch +bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch +bugfix/all/module-disable-matching-missing-version-crc.patch + +# ABI maintenance + +# Tools bug fixes +bugfix/all/usbip-document-tcp-wrappers.patch +bugfix/all/kbuild-fix-recordmcount-dependency.patch +bugfix/all/tools-perf-man-date.patch +bugfix/all/lockdep-fix-oot-build.patch +bugfix/all/lockdep-fix-soname.patch +bugfix/all/tools-perf-remove-shebangs.patch +bugfix/all/tools-lib-traceevent-use-ldflags.patch +bugfix/all/tools-lib-lockdep-use-ldflags.patch +bugfix/x86/tools-hv-fix-fortify-format-warning.patch +bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch +bugfix/alpha/alpha-uapi-add-support-for-__sane_userspace_types__.patch +bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch +bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch +bugfix/all/cpupower-bump-soname-version.patch +bugfix/all/cpupower-fix-checks-for-cpu-existence.patch +bugfix/all/liblockdep-fix-undefined-symbol-prandom_u32.patch +bugfix/all/liblockdep-reduce-max_lock_depth-to-avoid-overflowin.patch +bugfix/all/liblockdep-define-the-array_size-macro.patch +bugfix/all/liblockdep-enable-wall-by-default.patch +bugfix/all/liblockdep-fix-unused-value-warnings.patch +bugfix/all/liblockdep-fix-set-but-not-used-warnings.patch +bugfix/all/liblockdep-fix-defined-but-not-used-warning-for-init.patch diff --git a/patches/series-orig b/patches/series-orig new file mode 100644 index 00000000000..3294794fe19 --- /dev/null +++ b/patches/series-orig @@ -0,0 +1,7 @@ ++ debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch ++ debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch ++ debian/dfsg/vs6624-disable.patch ++ debian/dfsg/drivers-net-appletalk-cops.patch ++ debian/dfsg/video-remove-nvidiafb-and-rivafb.patch ++ debian/dfsg/firmware-cleanup.patch +X debian/dfsg/files-1 diff --git a/patches/series-rt b/patches/series-rt new file mode 100644 index 00000000000..f4b6dc254b1 --- /dev/null +++ b/patches/series-rt @@ -0,0 +1,574 @@ +########################################################### +# DELTA against a known Linus release +########################################################### + +############################################################ +# UPSTREAM changes queued +############################################################ + +############################################################ +# UPSTREAM FIXES, patches pending +############################################################ +features/all/rt/timer-make-the-base-lock-raw.patch + +############################################################ +# Stuff broken upstream, patches submitted +############################################################ + +# Those two should vanish soon (not use PIT during bootup) +features/all/rt/at91_dont_enable_disable_clock.patch + +############################################################ +# Stuff which needs addressing upstream, but requires more +# information +############################################################ +features/all/rt/rfc-arm-smp-__cpu_disable-fix-sleeping-function-called-from-invalid-context.patch + +############################################################ +# Stuff broken upstream, need to be sent +############################################################ +features/all/rt/rtmutex--Handle-non-enqueued-waiters-gracefully.patch +features/all/rt/fs-dcache-include-wait.h.patch +features/all/rt/rbtree-include-rcu.h-because-we-use-it.patch +features/all/rt/fs-dcache-init-in_lookup_hashtable.patch +features/all/rt/iommu-iova-don-t-disable-preempt-around-this_cpu_ptr.patch +features/all/rt/iommu-vt-d-don-t-disable-preemption-while-accessing-.patch +features/all/rt/x86-apic-get-rid-of-warning-acpi_ioapic_lock-defined.patch +features/all/rt/rxrpc-remove-unused-static-variables.patch +features/all/rt/rcu-update-make-RCU_EXPEDITE_BOOT-default.patch +features/all/rt/locking-percpu-rwsem-use-swait-for-the-wating-writer.patch +features/all/rt/btrfs-drop-trace_btrfs_all_work_done-from-normal_wor.patch +features/all/rt/btrfs-swap-free-and-trace-point-in-run_ordered_work.patch + +# Wants a different fix for upstream +features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch + +############################################################ +# Submitted on LKML +############################################################ + +# SPARC part of erly printk consolidation +features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch + +# SRCU +features/all/rt/kernel-SRCU-provide-a-static-initializer.patch + +############################################################ +# Submitted to mips ML +############################################################ + +############################################################ +# Submitted to ARM ML +############################################################ + +############################################################ +# Submitted to PPC ML +############################################################ + +############################################################ +# Submitted on LKML +############################################################ + +############################################################ +# Submitted to net-dev +############################################################ + +############################################################ +# Pending in tip +############################################################ + +############################################################ +# Stuff which should go upstream ASAP +############################################################ + +# SCHED BLOCK/WQ +features/all/rt/block-shorten-interrupt-disabled-regions.patch + +# Timekeeping split jiffies lock. Needs a good argument :) +features/all/rt/timekeeping-split-jiffies-lock.patch + +# Tracing +features/all/rt/tracing-account-for-preempt-off-in-preempt_schedule.patch + +# PTRACE/SIGNAL crap +features/all/rt/signal-revert-ptrace-preempt-magic.patch + +# ARM lock annotation +features/all/rt/arm-convert-boot-lock-to-raw.patch +features/all/rt/arm-kprobe-replace-patch_lock-to-raw-lock.patch + +# PREEMPT_ENABLE_NO_RESCHED + +# SIGNALS / POSIXTIMERS +features/all/rt/posix-timers-no-broadcast.patch +features/all/rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch + +# SCHED + +# GENERIC CMPXCHG + +# SHORTEN PREEMPT DISABLED +features/all/rt/drivers-random-reduce-preempt-disabled-region.patch + +# CLOCKSOURCE +features/all/rt/arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch +features/all/rt/clockevents-drivers-timer-atmel-pit-fix-double-free_.patch +features/all/rt/clocksource-tclib-allow-higher-clockrates.patch + +# DRIVERS NET +features/all/rt/drivers-net-8139-disable-irq-nosync.patch + +# PREEMPT + +# PM +features/all/rt/suspend-prevernt-might-sleep-splats.patch + +# NETWORKING +features/all/rt/net-prevent-abba-deadlock.patch +features/all/rt/net-sched-dev_deactivate_many-use-msleep-1-instead-o.patch + +# X86 +features/all/rt/x86-io-apic-migra-no-unmask.patch + +# RCU + +# LOCKING INIT FIXES + +# PCI +features/all/rt/pci-access-use-__wake_up_all_locked.patch + +# WORKQUEUE + + +##################################################### +# Stuff which should go mainline, but wants some care +##################################################### + +# SEQLOCK + +# ANON RW SEMAPHORES + +# TRACING +features/all/rt/latencyhist-disable-jump-labels.patch +features/all/rt/latency-hist.patch +features/all/rt/latency_hist-update-sched_wakeup-probe.patch +features/all/rt/trace-latency-hist-Consider-new-argument-when-probin.patch +features/all/rt/trace_Use_rcuidle_version_for_preemptoff_hist_trace_point.patch + +################################################## +# REAL RT STUFF starts here +################################################## + +# PRINTK +features/all/rt/printk-kill.patch +features/all/rt/printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch + +# Enable RT CONFIG +features/all/rt/rt-preempt-base-config.patch +features/all/rt/kconfig-disable-a-few-options-rt.patch +features/all/rt/kconfig-preempt-rt-full.patch + +# WARN/BUG_ON_RT +features/all/rt/bug-rt-dependend-variants.patch +features/all/rt/iommu-amd--Use-WARN_ON_NORT.patch + +# LOCAL_IRQ_RT/NON_RT +features/all/rt/local-irq-rt-depending-variants.patch + +# PREEMPT NORT +features/all/rt/preempt-nort-rt-variants.patch + +# local locks & migrate disable +features/all/rt/introduce_migrate_disable_cpu_light.patch +features/all/rt/rt-local-irq-lock.patch +features/all/rt/locallock-add-local_lock_on.patch + +# ANNOTATE local_irq_disable sites +features/all/rt/ata-disable-interrupts-if-non-rt.patch +features/all/rt/ide-use-nort-local-irq-variants.patch +features/all/rt/infiniband-mellanox-ib-use-nort-irq.patch +features/all/rt/inpt-gameport-use-local-irq-nort.patch +features/all/rt/user-use-local-irq-nort.patch +features/all/rt/usb-use-_nort-in-giveback.patch +features/all/rt/mm-scatterlist-dont-disable-irqs-on-RT.patch +features/all/rt/mm-workingset-do-not-protect-workingset_shadow_nodes.patch + +# Sigh +features/all/rt/signal-fix-up-rcu-wreckage.patch +features/all/rt/oleg-signal-rt-fix.patch +features/all/rt/x86-signal-delay-calling-signals-on-32bit.patch + +# ANNOTATE BUG/WARNON +features/all/rt/net-wireless-warn-nort.patch + +# BIT SPINLOCKS - SIGH +features/all/rt/fs-replace-bh_uptodate_lock-for-rt.patch +features/all/rt/fs-jbd-replace-bh_state-lock.patch + +# GENIRQ +features/all/rt/list_bl.h-make-list-head-locking-RT-safe.patch +features/all/rt/list_bl-fixup-bogus-lockdep-warning.patch +features/all/rt/genirq-disable-irqpoll-on-rt.patch +features/all/rt/genirq-force-threading.patch + +# DRIVERS NET +features/all/rt/drivers-net-vortex-fix-locking-issues.patch + +# MM PAGE_ALLOC +features/all/rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch +features/all/rt/mm-page_alloc-reduce-lock-sections-further.patch + +# MM SWAP +features/all/rt/mm-convert-swap-to-percpu-locked.patch +features/all/rt/mm-perform-lru_add_drain_all-remotely.patch + +# MM vmstat +features/all/rt/mm-make-vmstat-rt-aware.patch + +# MM memory +features/all/rt/re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch + +# MM bounce +features/all/rt/mm-bounce-local-irq-save-nort.patch + +# MM SLxB +features/all/rt/mm-disable-sloub-rt.patch +features/all/rt/mm-enable-slub.patch +features/all/rt/slub-enable-irqs-for-no-wait.patch +features/all/rt/slub-disable-SLUB_CPU_PARTIAL.patch + +# MM +features/all/rt/mm-page-alloc-use-local-lock-on-target-cpu.patch +features/all/rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +features/all/rt/mm-memcontrol-do_not_disable_irq.patch +features/all/rt/mm-memcontrol-mem_cgroup_migrate-replace-another-loc.patch +features/all/rt/mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch +features/all/rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch + +# RADIX TREE +features/all/rt/radix-tree-rt-aware.patch + +# PANIC +features/all/rt/panic-disable-random-on-rt.patch + +# TIMERS +features/all/rt/timers-prepare-for-full-preemption.patch +features/all/rt/timer-delay-waking-softirqs-from-the-jiffy-tick.patch + +# HRTIMERS +features/all/rt/hrtimers-prepare-full-preemption.patch +features/all/rt/hrtimer-enfore-64byte-alignment.patch +features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch +features/all/rt/sched-deadline-dl_task_timer-has-to-be-irqsafe.patch +features/all/rt/timer-fd-avoid-live-lock.patch +features/all/rt/tick-broadcast--Make-hrtimer-irqsafe.patch + +# POSIX-CPU-TIMERS +features/all/rt/posix-timers-thread-posix-cpu-timers-on-rt.patch + +# SCHEDULER +features/all/rt/sched-delay-put-task.patch +features/all/rt/sched-limit-nr-migrate.patch +features/all/rt/sched-mmdrop-delayed.patch +features/all/rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +features/all/rt/sched-rt-mutex-wakeup.patch +features/all/rt/sched-might-sleep-do-not-account-rcu-depth.patch +features/all/rt/cond-resched-softirq-rt.patch +features/all/rt/cond-resched-lock-rt-tweak.patch +features/all/rt/sched-disable-ttwu-queue.patch +features/all/rt/sched-disable-rt-group-sched-on-rt.patch +features/all/rt/sched-ttwu-ensure-success-return-is-correct.patch +features/all/rt/sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch + +# STOP MACHINE +features/all/rt/stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch +features/all/rt/stop-machine-raw-lock.patch + +# MIGRATE DISABLE AND PER CPU +features/all/rt/hotplug-light-get-online-cpus.patch +features/all/rt/hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch +features/all/rt/re-migrate_disable-race-with-cpu-hotplug-3f.patch +features/all/rt/ftrace-migrate-disable-tracing.patch +features/all/rt/hotplug-use-migrate-disable.patch + +# NOHZ + +# LOCKDEP +features/all/rt/lockdep-no-softirq-accounting-on-rt.patch + +# SOFTIRQ +features/all/rt/mutex-no-spin-on-rt.patch +features/all/rt/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch +features/all/rt/softirq-preempt-fix-3-re.patch +features/all/rt/softirq-disable-softirq-stacks-for-rt.patch +features/all/rt/softirq-split-locks.patch +features/all/rt/kernel-softirq-unlock-with-irqs-on.patch +features/all/rt/kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch +features/all/rt/irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch +features/all/rt/softirq-split-timer-softirqs-out-of-ksoftirqd.patch +features/all/rt/rtmutex-trylock-is-okay-on-RT.patch + +# compile fix due to rtmutex locks +features/all/rt/gpu_don_t_check_for_the_lock_owner.patch +features/all/rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch + +# FUTEX/RTMUTEX +features/all/rt/rtmutex-futex-prepare-rt.patch +features/all/rt/futex-requeue-pi-fix.patch +features/all/rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch + +# RTMUTEX +features/all/rt/pid.h-include-atomic.h.patch +features/all/rt/arm-include-definition-for-cpumask_t.patch +features/all/rt/locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +features/all/rt/rtmutex-lock-killable.patch +features/all/rt/spinlock-types-separate-raw.patch +features/all/rt/rtmutex-avoid-include-hell.patch +features/all/rt/rtmutex_dont_include_rcu.patch +features/all/rt/rt-add-rt-locks.patch +features/all/rt/kernel-futex-don-t-deboost-too-early.patch +features/all/rt/rtmutex-add-a-first-shot-of-ww_mutex.patch +features/all/rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch + +# RCU +features/all/rt/peter_zijlstra-frob-rcu.patch +features/all/rt/rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch +features/all/rt/patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch +features/all/rt/rcutree-rcu_bh_qs-disable-irq-while-calling-rcu_pree.patch + +# DRIVERS SERIAL +features/all/rt/drivers-tty-fix-omap-lock-crap.patch +features/all/rt/drivers-tty-pl011-irq-disable-madness.patch +features/all/rt/rt-serial-warn-fix.patch +features/all/rt/tty-serial-8250-don-t-take-the-trylock-during-oops.patch + +# SIMPLE WAITQUEUE +features/all/rt/wait.h-include-atomic.h.patch +features/all/rt/work-simple-Simple-work-queue-implemenation.patch +features/all/rt/completion-use-simple-wait-queues.patch +features/all/rt/fs-aio-simple-simple-work.patch +features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch +features/all/rt/hrtimer-Move-schedule_work-call-to-helper-thread.patch + +# FS +features/all/rt/peterz-percpu-rwsem-rt.patch +features/all/rt/fs-namespace-preemption-fix.patch +features/all/rt/mm-protect-activate-switch-mm.patch +features/all/rt/fs-block-rt-support.patch +features/all/rt/fs-ntfs-disable-interrupt-non-rt.patch +features/all/rt/fs-jbd2-pull-your-plug-when-waiting-for-space.patch + +# X86 +features/all/rt/x86-mce-timer-hrtimer.patch +features/all/rt/x86-mce-use-swait-queue-for-mce-wakeups.patch +features/all/rt/x86-stackprot-no-random-on-rt.patch +features/all/rt/x86-use-gen-rwsem-spinlocks-rt.patch +features/all/rt/x86-UV-raw_spinlock-conversion.patch +features/all/rt/thermal-Defer-thermal-wakups-to-threads.patch + +# CPU get light +features/all/rt/epoll-use-get-cpu-light.patch +features/all/rt/mm-vmalloc-use-get-cpu-light.patch +features/all/rt/block-mq-use-cpu_light.patch +features/all/rt/block-mq-drop-preempt-disable.patch +features/all/rt/block-mq-don-t-complete-requests-via-IPI.patch +features/all/rt/md-raid5-percpu-handling-rt-aware.patch + +# CPU CHILL +features/all/rt/rt-introduce-cpu-chill.patch +features/all/rt/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch + +# block +features/all/rt/block-blk-mq-use-swait.patch + +# BLOCK LIVELOCK PREVENTION +features/all/rt/block-use-cpu-chill.patch + +# FS LIVELOCK PREVENTION +features/all/rt/fs-dcache-use-cpu-chill-in-trylock-loops.patch +features/all/rt/net-use-cpu-chill.patch +features/all/rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch + +# WORKQUEUE more fixes +features/all/rt/workqueue-use-rcu.patch +features/all/rt/workqueue-use-locallock.patch +features/all/rt/work-queue-work-around-irqsafe-timer-optimization.patch +features/all/rt/workqueue-distangle-from-rq-lock.patch + +# IDR +features/all/rt/idr-use-local-lock-for-protection.patch +features/all/rt/percpu_ida-use-locklocks.patch + +# DEBUGOBJECTS +features/all/rt/debugobjects-rt.patch + +# JUMPLABEL +features/all/rt/jump-label-rt.patch + +# SEQLOCKS +features/all/rt/seqlock-prevent-rt-starvation.patch + +# NETWORKING +features/all/rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch +features/all/rt/skbufhead-raw-lock.patch +features/all/rt/net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch +features/all/rt/net-move-xmit_recursion-to-per-task-variable-on-RT.patch +features/all/rt/net-provide-a-way-to-delegate-processing-a-softirq-t.patch +features/all/rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +features/all/rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch +features/all/rt/net-add-back-the-missing-serialization-in-ip_send_un.patch +features/all/rt/net-add-a-lock-around-icmp_sk.patch +features/all/rt/net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch + +# NETWORK DEBUGGING AID +features/all/rt/ping-sysrq.patch + +# irqwork +features/all/rt/irqwork-push_most_work_into_softirq_context.patch +features/all/rt/irqwork-Move-irq-safe-work-to-irq-context.patch + +# Sound +features/all/rt/snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch + +# CONSOLE. NEEDS more thought !!! +features/all/rt/printk-rt-aware.patch +features/all/rt/kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +features/all/rt/HACK-printk-drop-the-logbuf_lock-more-often.patch + +# POWERC +features/all/rt/power-use-generic-rwsem-on-rt.patch +features/all/rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +features/all/rt/powerpc-ps3-device-init.c-adapt-to-completions-using.patch + +# ARM +features/all/rt/arm-at91-tclib-default-to-tclib-timer-for-rt.patch +features/all/rt/arm-unwind-use_raw_lock.patch +features/all/rt/ARM-enable-irq-in-translation-section-permission-fau.patch +features/all/rt/genirq-update-irq_set_irqchip_state-documentation.patch +features/all/rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch + +# ARM64 +features/all/rt/arm64-xen--Make-XEN-depend-on-non-rt.patch + +# KGDB +features/all/rt/kgb-serial-hackaround.patch + +# SYSFS - RT indicator +features/all/rt/sysfs-realtime-entry.patch + +# KMAP/HIGHMEM +features/all/rt/power-disable-highmem-on-rt.patch +features/all/rt/mips-disable-highmem-on-rt.patch +features/all/rt/mm-rt-kmap-atomic-scheduling.patch +features/all/rt/mm--rt--Fix-generic-kmap_atomic-for-RT.patch +features/all/rt/x86-highmem-add-a-already-used-pte-check.patch +features/all/rt/arm-highmem-flush-tlb-on-unmap.patch +features/all/rt/arm-enable-highmem-for-rt.patch + +# IPC +features/all/rt/ipc-sem-rework-semaphore-wakeups.patch + +# SYSRQ + +# KVM require constant freq TSC (smp function call -> cpufreq) +features/all/rt/x86-kvm-require-const-tsc-for-rt.patch +features/all/rt/KVM-lapic-mark-LAPIC-timer-handler-as-irqsafe.patch + +# SCSI/FCOE +features/all/rt/scsi-fcoe-rt-aware.patch +features/all/rt/sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch + +# X86 crypto +features/all/rt/x86-crypto-reduce-preempt-disabled-regions.patch +features/all/rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch + +# Device mapper +features/all/rt/dm-make-rt-aware.patch + +# ACPI +features/all/rt/acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch + +# CPUMASK OFFSTACK +features/all/rt/cpumask-disable-offstack-on-rt.patch + +# RANDOM +features/all/rt/random-make-it-work-on-rt.patch + +# HOTPLUG +features/all/rt/cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch +features/all/rt/cpu-rt-rework-cpu-down.patch +features/all/rt/cpu-hotplug-Document-why-PREEMPT_RT-uses-a-spinlock.patch +features/all/rt/kernel-cpu-fix-cpu-down-problem-if-kthread-s-cpu-is-.patch +features/all/rt/kernel-hotplug-restore-original-cpu-mask-oncpu-down.patch +features/all/rt/cpu_down_move_migrate_enable_back.patch +features/all/rt/hotplug-Use-set_cpus_allowed_ptr-in-sync_unplug_thre.patch + +features/all/rt/rt-locking-Reenable-migration-accross-schedule.patch + +# SCSCI QLA2xxx +features/all/rt/scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch + +# NET +features/all/rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch +features/all/rt/net-another-local-irq-disable-alloc-atomic-headache.patch +features/all/rt/net-core-protect-users-of-napi_alloc_cache-against-r.patch +features/all/rt/net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch +features/all/rt/net-make-devnet_rename_seq-a-mutex.patch + +# CRYPTO +features/all/rt/peterz-srcu-crypto-chain.patch + +# LOCKDEP +features/all/rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch +features/all/rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch + +# PERF +features/all/rt/perf-make-swevent-hrtimer-irqsafe.patch +features/all/rt/kernel-perf-mark-perf_cpu_context-s-timer-as-irqsafe.patch + +# RCU +features/all/rt/rcu-disable-rcu-fast-no-hz-on-rt.patch +features/all/rt/rcu-Eliminate-softirq-processing-from-rcutree.patch +features/all/rt/rcu-make-RCU_BOOST-default-on-RT.patch +features/all/rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch + +# PREEMPT LAZY +features/all/rt/preempt-lazy-support.patch +features/all/rt/ftrace-Fix-trace-header-alignment.patch +features/all/rt/x86-preempt-lazy.patch +features/all/rt/arm-preempt-lazy-support.patch +features/all/rt/powerpc-preempt-lazy-support.patch +features/all/rt/arch-arm64-Add-lazy-preempt-support.patch + +# LEDS +features/all/rt/leds-trigger-disable-CPU-trigger-on-RT.patch + +# DRIVERS +features/all/rt/mmci-remove-bogus-irq-save.patch +features/all/rt/cpufreq-drop-K8-s-driver-from-beeing-selected.patch +features/all/rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +features/all/rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +features/all/rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch + +# I915 +features/all/rt/drm-i915-drop-trace_i915_gem_ring_dispatch-onrt.patch +features/all/rt/i915-bogus-warning-from-i915-when-running-on-PREEMPT.patch +features/all/rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch +features/all/rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch + +# CGROUPS +features/all/rt/cgroups-use-simple-wait-in-css_release.patch +features/all/rt/cgroups-scheduling-while-atomic-in-cgroup-code.patch + +# New stuff +# Revisit: We need this in other places as well +features/all/rt/move_sched_delayed_work_to_helper.patch + +# MD +features/all/rt/md-disable-bcache.patch + +# WORKQUEUE SIGH +features/all/rt/workqueue-prevent-deadlock-stall.patch + +# Add RT to version +features/all/rt/localversion.patch diff --git a/rules b/rules new file mode 100755 index 00000000000..8ee38b6059d --- /dev/null +++ b/rules @@ -0,0 +1,119 @@ +#!/usr/bin/make -f + +SHELL := sh -e +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +SOURCE := $(shell dpkg-parsechangelog -SSource) +VERSION := $(shell dpkg-parsechangelog -SVersion) +VERSION_UPSTREAM := $(shell echo "$(VERSION)" | sed -e 's,-[^-]*$$,,') +VERSION_BINNMU := $(shell echo "$(VERSION)" | sed -rne 's,.*\+b([0-9]+)$$,\1,p') + +include debian/rules.defs + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + DEBIAN_KERNEL_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif +ifdef DEBIAN_KERNEL_JOBS + MAKEFLAGS += -j$(DEBIAN_KERNEL_JOBS) +endif +BUILD_STAGE1 := $(filter stage1,$(DEB_BUILD_PROFILES)) +ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) +# This only disables building the linux-doc and linux-manual packages. +# The rules for tools packages check separately for the 'nodoc' profile. + MAKEFLAGS += DO_DOCS=False +endif +ifneq (,$(filter pkg.linux.notools,$(DEB_BUILD_PROFILES))) + MAKEFLAGS += DO_TOOLS=False +endif + +.NOTPARALLEL: + +source: debian/control + dh_testdir + $(MAKE) -f debian/rules.gen source + +setup: debian/control + dh_testdir + $(MAKE) -f debian/rules.gen setup_$(DEB_HOST_ARCH) + +build: build-arch build-indep + +build-arch: debian/control + dh_testdir +ifndef BUILD_STAGE1 + $(MAKE) -f debian/rules.gen build-arch_$(DEB_HOST_ARCH) +endif + +build-indep: debian/control + dh_testdir +ifndef BUILD_STAGE1 + $(MAKE) -f debian/rules.gen build-indep +endif + +binary: binary-indep binary-arch + +binary-arch: + dh_testdir +ifdef BUILD_STAGE1 + $(MAKE) -f debian/rules.gen binary-libc-dev_$(DEB_HOST_ARCH) +else + $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH) +endif + +binary-indep: + dh_testdir +ifndef BUILD_STAGE1 + $(MAKE) -f debian/rules.gen binary-indep +endif + +DIR_ORIG = ../orig/$(SOURCE)-$(VERSION_UPSTREAM) +TAR_ORIG_NAME = $(SOURCE)_$(VERSION_UPSTREAM).orig.tar.xz +TAR_ORIG = $(firstword $(wildcard ../$(TAR_ORIG_NAME)) $(wildcard ../orig/$(TAR_ORIG_NAME))) + +orig: $(DIR_ORIG) + rsync --delete --exclude /debian --exclude .svk --exclude .svn --exclude .git --link-dest=$(DIR_ORIG)/ -a $(DIR_ORIG)/ . + QUILT_PATCHES='$(CURDIR)/debian/patches' QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0 + +$(DIR_ORIG): +ifeq ($(TAR_ORIG),) + $(error Cannot find orig tarball $(TAR_ORIG_NAME)) +else + mkdir -p ../orig + tar -C ../orig -xaf $(TAR_ORIG) +endif + +maintainerclean: + rm -f debian/config.defines.dump debian/control debian/control.md5sum debian/linux-headers-* debian/linux-image-* debian/rules.gen + rm -rf $(filter-out debian .svk .svn .git, $(wildcard * .[^.]*)) + +clean: debian/control + dh_testdir + rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_linux/*.pyc debian/lib/python/debian_linux/__pycache__ $$(find debian -maxdepth 1 -type d -name 'linux-*') debian/*-modules-*-di* debian/kernel-image-*-di* debian/xen-linux-system-* debian/*-tmp + dh_clean + +CONTROL_FILES = debian/changelog $(wildcard debian/templates/*.in) +CONTROL_FILES += debian/config/defines $(wildcard debian/config/*/defines) $(wildcard debian/config/*/*/defines) +CONTROL_FILES += $(wildcard debian/installer/*/kernel-versions) $(wildcard debian/installer/*/package-list) debian/installer/package-list +debian/control debian/rules.gen: debian/bin/gencontrol.py $(CONTROL_FILES) +ifeq ($(wildcard debian/control.md5sum),) + $(MAKE) -f debian/rules debian/control-real +else ifeq ($(VERSION_BINNMU),) + md5sum --check debian/control.md5sum --status || \ + $(MAKE) -f debian/rules debian/control-real +else + grep -v debian/changelog debian/control.md5sum | md5sum --check - --status || \ + $(MAKE) -f debian/rules debian/control-real +endif + +debian/control-real: debian/bin/gencontrol.py $(CONTROL_FILES) +# Hash randomisation makes the pickled config unreproducible + PYTHONHASHSEED=0 $< + md5sum $^ > debian/control.md5sum + @echo + @echo This target is made to fail intentionally, to make sure + @echo that it is NEVER run during the automated build. Please + @echo ignore the following error, the debian/control file has + @echo been generated SUCCESSFULLY. + @echo + exit 1 + +.PHONY: clean build setup binary-indep binary-arch binary diff --git a/rules.d/Makefile b/rules.d/Makefile new file mode 100644 index 00000000000..c7506d3e447 --- /dev/null +++ b/rules.d/Makefile @@ -0,0 +1,17 @@ +DATA = \ + Kbuild \ + Makefile \ + +SUBDIRS = \ + scripts \ + tools + +include $(top_rulesdir)/Makefile.inc + +# Build userland headers first +unexport VERSION +all-local: + mkdir -p headers-tools + $(MAKE) -C $(top_srcdir) ARCH=$(KERNEL_ARCH) O=$(CURDIR)/headers-tools \ + INSTALL_HDR_PATH=$(CURDIR) headers_install +all-recursive: all-local diff --git a/rules.d/Makefile.inc b/rules.d/Makefile.inc new file mode 100644 index 00000000000..48f8c2e7ca1 --- /dev/null +++ b/rules.d/Makefile.inc @@ -0,0 +1,57 @@ +# Normalise OUTDIR to avoid triggering rebuilds +override OUTDIR := $(patsubst ./%,%,$(OUTDIR)) + +VPATH = $(top_rulesdir)/$(OUTDIR) $(top_srcdir)/$(OUTDIR) + +SHELL = /bin/sh -e + +CC = $(CROSS_COMPILE)gcc +CXX = $(CROSS_COMPILE)g++ +CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall +CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) \ + -I$(top_srcdir)/$(OUTDIR) \ + -I$(top_srcdir)/debian/build/build-tools/$(OUTDIR) \ + -isystem $(top_srcdir)/debian/build/build-tools/include +CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) -Wall +LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) + +installdir ?= $(prefix)/$(OUTDIR) + +all: all-local all-recursive +clean: clean-recursive +install: install-local install-recursive + +%-recursive: + +@list='$(SUBDIRS)'; \ + for subdir in $$list; do \ + echo "Making $* in $$subdir"; \ + mkdir -p $$subdir; \ + $(MAKE) -C $$subdir -f $(top_rulesdir)/$(OUTDIR)/$$subdir/Makefile OUTDIR=$(OUTDIR)/$$subdir $*; \ + done + +all-local: $(PROGS) + +install-local: install-local-progs install-local-scripts install-local-data + +install-local-progs: $(PROGS) + @for p in $^; do \ + echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \ + install -D -m755 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \ + done + +SCRIPTS_REAL = $(wildcard $(addprefix $(top_srcdir)/$(OUTDIR)/,$(SCRIPTS))) + +install-local-scripts: $(SCRIPTS_REAL) + @for p in $^; do \ + echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \ + install -D -m755 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \ + done + +DATA_REAL = $(wildcard $(addprefix $(top_srcdir)/$(OUTDIR)/,$(DATA))) + +install-local-data: $(DATA_REAL) + @for p in $^; do \ + echo " install -m644 '$$p' '$(DESTDIR)/$(installdir)'"; \ + install -D -m644 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \ + done + diff --git a/rules.d/scripts/Makefile b/rules.d/scripts/Makefile new file mode 100644 index 00000000000..fc8c6818645 --- /dev/null +++ b/rules.d/scripts/Makefile @@ -0,0 +1,44 @@ +PROGS = \ + conmakehash \ + extract-cert \ + kallsyms \ + pnmtologo \ + recordmcount \ + sign-file \ + unifdef + +DATA = \ + Kbuild.include \ + Makefile.* \ + mkversion \ + module-common.lds + +SCRIPTS = \ + checkincludes.pl \ + checkstack.pl \ + checkversion.pl \ + depmod.sh \ + gcc-*.sh \ + gen_initramfs_list.sh \ + headers_install.sh \ + kernel-doc \ + Lindent \ + makelst \ + mksysmap \ + mkuboot.sh \ + namespace.pl \ + patch-kernel \ + recordmcount.pl \ + setlocalversion \ + ver_linux + +SUBDIRS = \ + basic \ + genksyms \ + kconfig \ + mod + +include $(top_rulesdir)/Makefile.inc + +CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +extract-cert sign-file: LDLIBS += -lcrypto diff --git a/rules.d/scripts/basic/Makefile b/rules.d/scripts/basic/Makefile new file mode 100644 index 00000000000..86b86a84969 --- /dev/null +++ b/rules.d/scripts/basic/Makefile @@ -0,0 +1,5 @@ +PROGS = \ + bin2c \ + fixdep + +include $(top_rulesdir)/Makefile.inc diff --git a/rules.d/scripts/genksyms/Makefile b/rules.d/scripts/genksyms/Makefile new file mode 100644 index 00000000000..8e416da4488 --- /dev/null +++ b/rules.d/scripts/genksyms/Makefile @@ -0,0 +1,13 @@ +PROGS = genksyms + +include $(top_rulesdir)/Makefile.inc + +genksyms: genksyms.o parse.tab.o lex.lex.o + +lex.lex.o: keywords.hash.c parse.tab.h + +%.c: %.c_shipped + ln -s $< $@ + +%.h: %.h_shipped + ln -s $< $@ diff --git a/rules.d/scripts/kconfig/Makefile b/rules.d/scripts/kconfig/Makefile new file mode 100644 index 00000000000..b6e25214403 --- /dev/null +++ b/rules.d/scripts/kconfig/Makefile @@ -0,0 +1,13 @@ +PROGS = conf + +include $(top_rulesdir)/Makefile.inc + +conf: conf.o zconf.tab.o + +zconf.tab.c: zconf.hash.c zconf.lex.c + +%.c: %.c_shipped + ln -sf $< $@ + +%.h: %.h_shipped + ln -sf $< $@ diff --git a/rules.d/scripts/mod/Makefile b/rules.d/scripts/mod/Makefile new file mode 100644 index 00000000000..e57e262aa12 --- /dev/null +++ b/rules.d/scripts/mod/Makefile @@ -0,0 +1,22 @@ +PROGS = \ + modpost \ + modpost.real-lsb-32 \ + modpost.real-lsb-64 \ + modpost.real-msb-32 \ + modpost.real-msb-64 + +include $(top_rulesdir)/Makefile.inc + +wrapperdir = $(top_rulesdir)/$(OUTDIR) + +modpost.real-%: + $(MAKE) -f $(wrapperdir)/Makefile.real TYPE=$* SOURCEDIR=$(top_srcdir)/scripts/mod + +%: %.o + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + +modpost-opts.h: $(top_srcdir)/scripts/mod/modpost.c + python $(wrapperdir)/gendef.py $< > $@ + +modpost.o: modpost.c modpost-opts.h + $(CC) $(CFLAGS) -I $(CURDIR) -c -o $@ $< diff --git a/rules.d/scripts/mod/Makefile.real b/rules.d/scripts/mod/Makefile.real new file mode 100644 index 00000000000..489ea4f7b55 --- /dev/null +++ b/rules.d/scripts/mod/Makefile.real @@ -0,0 +1,23 @@ +PROGS = modpost.real-$(TYPE) + +include $(top_rulesdir)/Makefile.inc + +wrapperdir = $(top_rulesdir)/$(OUTDIR) +CFLAGS += -I $(CURDIR)/real-$(TYPE) -I $(wrapperdir)/real-$(TYPE) + +modpost.real-$(TYPE): file2alias.real-$(TYPE).o modpost.real-$(TYPE).o sumversion.real-$(TYPE).o + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + +%.real-$(TYPE).o: $(SOURCEDIR)/%.c real-$(TYPE)/devicetable-offsets.h + $(CC) $(CFLAGS) -c -o $@ $< + +real-$(TYPE)/devicetable-offsets.s: $(SOURCEDIR)/devicetable-offsets.c + mkdir -p real-$(TYPE) + $(CC) -include $(wrapperdir)/real-$(TYPE)/types.h $(CFLAGS) -nostdinc -I$(top_srcdir)/include -S -o $@ $< + +real-$(TYPE)/devicetable-offsets.h: real-$(TYPE)/devicetable-offsets.s + echo >$@ "#define __DEVICEVTABLE_OFFSETS_H__" + sed -ne "/^->/{s:->#\(.*\):/* \1 */:; \ + s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:->::; p;}" $< >>$@ diff --git a/rules.d/scripts/mod/elfconfig.h b/rules.d/scripts/mod/elfconfig.h new file mode 100644 index 00000000000..8c90ea6002c --- /dev/null +++ b/rules.d/scripts/mod/elfconfig.h @@ -0,0 +1,7 @@ +#include + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HOST_ELFDATA ELFDATA2LSB +#elif __BYTE_ORDER == __BIG_ENDIAN +#define HOST_ELFDATA ELFDATA2MSB +#endif diff --git a/rules.d/scripts/mod/gendef.py b/rules.d/scripts/mod/gendef.py new file mode 100755 index 00000000000..6e1bdf41bf7 --- /dev/null +++ b/rules.d/scripts/mod/gendef.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +import re +import sys + +for line in open(sys.argv[1]): + match = re.search('getopt\(argc, argv, "([\w:]*?)"\)', line) + if match: + options = match.group(1) + break +else: + raise RuntimeError + +print '#define GETOPT_OPTIONS "%s"' % options + +print '#define GETOPT_CASE', +for c in options: + if c == ':' or c == 'T': + continue + print "case '%c':" % c, +print diff --git a/rules.d/scripts/mod/modpost.c b/rules.d/scripts/mod/modpost.c new file mode 100644 index 00000000000..d574957ae3c --- /dev/null +++ b/rules.d/scripts/mod/modpost.c @@ -0,0 +1,136 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "modpost-opts.h" + +int main (int argc, char *argv[]) +{ + char const *data, *class; + char *list_name = NULL; + char *name = NULL; + char prog[1024]; + unsigned char ei[EI_NIDENT]; + int opt; + FILE *file; + + while ((opt = getopt (argc, argv, GETOPT_OPTIONS)) != -1) + { + switch(opt) + { + GETOPT_CASE + break; + case 'T': + list_name = optarg; + break; + default: + return EXIT_FAILURE; + } + } + + if (optind != argc) + { + name = argv[optind]; + } + else if (list_name) + { + size_t name_len; + int is_stdin = strcmp (list_name, "-") == 0; + + /* Read first line of list file */ + if (is_stdin) + { + file = stdin; + setvbuf(stdin, NULL, _IONBF, 0); /* don't over-read */ + } + else + { + file = fopen (list_name, "r"); + if (!file) + { + fprintf (stderr, "Can't open \"%s\"\n", list_name); + return EXIT_FAILURE; + } + } + if (getline (&name, &name_len, file) < 0) + { + if (errno) + { + fprintf (stderr, "Can't read \"%s\"\n", list_name); + return EXIT_FAILURE; + } + else + { + /* Empty list */ + return EXIT_SUCCESS; + } + } + if (!is_stdin) + fclose(file); + + /* Remove new-line */ + name [strcspn (name, "\n")] = 0; + + /* If this came from stdin, we need to add the first name to the + * arguments, because the upstream modpost can't read it again. + */ + if (is_stdin) + { + char **new_argv = malloc (sizeof(*argv) * (argc + 2)); + memcpy(new_argv, argv, sizeof(*argv) * argc); + new_argv [argc] = name; + new_argv [argc + 1] = NULL; + argv = new_argv; + } + } + else + { + /* Empty list */ + return EXIT_SUCCESS; + } + + if (!(file = fopen (name, "r"))) + { + fprintf (stderr, "Can't open \"%s\"\n", name); + return EXIT_FAILURE; + } + + if (fread (ei, 1, EI_NIDENT, file) != EI_NIDENT) + { + fprintf (stderr, "Error: input truncated\n"); + return EXIT_FAILURE; + } + + if (memcmp (ei, ELFMAG, SELFMAG) != 0) + { + fprintf (stderr, "Error: not ELF\n"); + return EXIT_FAILURE; + } + switch (ei[EI_DATA]) { + case ELFDATA2LSB: + data = "lsb"; + break; + case ELFDATA2MSB: + data = "msb"; + break; + default: + return EXIT_FAILURE; + } + switch (ei[EI_CLASS]) { + case ELFCLASS32: + class = "32"; + break; + case ELFCLASS64: + class = "64"; + break; + default: + return EXIT_FAILURE; + } + snprintf (prog, sizeof prog, "%s.real-%s-%s", argv[0], data, class); + + return execv (prog, argv); +} diff --git a/rules.d/scripts/mod/real-lsb-32/elfconfig.h b/rules.d/scripts/mod/real-lsb-32/elfconfig.h new file mode 100644 index 00000000000..1f7a7321aab --- /dev/null +++ b/rules.d/scripts/mod/real-lsb-32/elfconfig.h @@ -0,0 +1,4 @@ +#define KERNEL_ELFCLASS ELFCLASS32 +#define KERNEL_ELFDATA ELFDATA2LSB +#define MODULE_SYMBOL_PREFIX "" +#include "../elfconfig.h" diff --git a/rules.d/scripts/mod/real-lsb-32/types.h b/rules.d/scripts/mod/real-lsb-32/types.h new file mode 100644 index 00000000000..bad6dcccd90 --- /dev/null +++ b/rules.d/scripts/mod/real-lsb-32/types.h @@ -0,0 +1,3 @@ +#include "../types.h" +typedef __u32 kernel_ulong_t; +#define BITS_PER_LONG 32 diff --git a/rules.d/scripts/mod/real-lsb-64/elfconfig.h b/rules.d/scripts/mod/real-lsb-64/elfconfig.h new file mode 100644 index 00000000000..e6f519fcc8d --- /dev/null +++ b/rules.d/scripts/mod/real-lsb-64/elfconfig.h @@ -0,0 +1,4 @@ +#define KERNEL_ELFCLASS ELFCLASS64 +#define KERNEL_ELFDATA ELFDATA2LSB +#define MODULE_SYMBOL_PREFIX "" +#include "../elfconfig.h" diff --git a/rules.d/scripts/mod/real-lsb-64/types.h b/rules.d/scripts/mod/real-lsb-64/types.h new file mode 100644 index 00000000000..8d7b8759164 --- /dev/null +++ b/rules.d/scripts/mod/real-lsb-64/types.h @@ -0,0 +1,3 @@ +#include "../types.h" +typedef __u64 __attribute__((aligned(8))) kernel_ulong_t; +#define BITS_PER_LONG 64 diff --git a/rules.d/scripts/mod/real-msb-32/elfconfig.h b/rules.d/scripts/mod/real-msb-32/elfconfig.h new file mode 100644 index 00000000000..a9ae561aba8 --- /dev/null +++ b/rules.d/scripts/mod/real-msb-32/elfconfig.h @@ -0,0 +1,4 @@ +#define KERNEL_ELFCLASS ELFCLASS32 +#define KERNEL_ELFDATA ELFDATA2MSB +#define MODULE_SYMBOL_PREFIX "" +#include "../elfconfig.h" diff --git a/rules.d/scripts/mod/real-msb-32/types.h b/rules.d/scripts/mod/real-msb-32/types.h new file mode 100644 index 00000000000..bad6dcccd90 --- /dev/null +++ b/rules.d/scripts/mod/real-msb-32/types.h @@ -0,0 +1,3 @@ +#include "../types.h" +typedef __u32 kernel_ulong_t; +#define BITS_PER_LONG 32 diff --git a/rules.d/scripts/mod/real-msb-64/elfconfig.h b/rules.d/scripts/mod/real-msb-64/elfconfig.h new file mode 100644 index 00000000000..844d22f5c58 --- /dev/null +++ b/rules.d/scripts/mod/real-msb-64/elfconfig.h @@ -0,0 +1,4 @@ +#define KERNEL_ELFCLASS ELFCLASS64 +#define KERNEL_ELFDATA ELFDATA2MSB +#define MODULE_SYMBOL_PREFIX "" +#include "../elfconfig.h" diff --git a/rules.d/scripts/mod/real-msb-64/types.h b/rules.d/scripts/mod/real-msb-64/types.h new file mode 100644 index 00000000000..8d7b8759164 --- /dev/null +++ b/rules.d/scripts/mod/real-msb-64/types.h @@ -0,0 +1,3 @@ +#include "../types.h" +typedef __u64 __attribute__((aligned(8))) kernel_ulong_t; +#define BITS_PER_LONG 64 diff --git a/rules.d/scripts/mod/types.h b/rules.d/scripts/mod/types.h new file mode 100644 index 00000000000..aba3827f44c --- /dev/null +++ b/rules.d/scripts/mod/types.h @@ -0,0 +1,9 @@ +/* Minimal definitions for mod_devicetable.h and devicetable-offsets.c */ +typedef unsigned char __u8; +typedef unsigned short __u16; +typedef unsigned int __u32; +typedef unsigned long long __u64; +typedef struct { + __u8 b[16]; +} uuid_le; +#define offsetof(a,b) __builtin_offsetof(a,b) diff --git a/rules.d/tools/Makefile b/rules.d/tools/Makefile new file mode 100644 index 00000000000..e529f6b2b40 --- /dev/null +++ b/rules.d/tools/Makefile @@ -0,0 +1,8 @@ +SUBDIRS = \ + hv \ + perf \ + power/cpupower \ + usb/usbip +#SUBDIRS += lib/lockdep + +include $(top_rulesdir)/Makefile.inc diff --git a/rules.d/tools/hv/Makefile b/rules.d/tools/hv/Makefile new file mode 100644 index 00000000000..3393517f50e --- /dev/null +++ b/rules.d/tools/hv/Makefile @@ -0,0 +1,22 @@ +ifeq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),) + +# Build nothing +include $(top_rulesdir)/Makefile.inc + +else + +PROGS = \ + hv_fcopy_daemon \ + hv_kvp_daemon \ + hv_vss_daemon + +installdir = /usr/sbin + +include $(top_rulesdir)/Makefile.inc + +# Handle check-hyperv separately since it's installed in a different directory +all-local: check-hyperv +install-local: + install -D -m755 check-hyperv '$(DESTDIR)/lib/hyperv-daemons/check-hyperv' + +endif diff --git a/rules.d/tools/hv/check-hyperv.c b/rules.d/tools/hv/check-hyperv.c new file mode 100644 index 00000000000..4d2b6f515d0 --- /dev/null +++ b/rules.d/tools/hv/check-hyperv.c @@ -0,0 +1,103 @@ +/* + * This program is derived from systemd. + * + * Copyright 2011 Lennart Poettering + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; If not, see . + */ + +#include +#include +#include + +#define streq(a, b) (!strcmp(a, b)) +#define ELEMENTSOF(a) (sizeof(a) / sizeof((a)[0])) + +enum { + VIRTUALIZATION_NONE, + VIRTUALIZATION_VM_OTHER, + VIRTUALIZATION_MICROSOFT, +}; + +static int detect_vm_cpuid(void) { + + static const struct { + const char *cpuid; + int id; + } cpuid_vendor_table[] = { + /* http://msdn.microsoft.com/en-us/library/ff542428.aspx */ + { "Microsoft Hv", VIRTUALIZATION_MICROSOFT }, + }; + + uint32_t eax, ecx; + bool hypervisor; + + /* http://lwn.net/Articles/301888/ */ + +#if defined (__i386__) +#define REG_a "eax" +#define REG_b "ebx" +#elif defined (__amd64__) +#define REG_a "rax" +#define REG_b "rbx" +#endif + + /* First detect whether there is a hypervisor */ + eax = 1; + __asm__ __volatile__ ( + /* ebx/rbx is being used for PIC! */ + " push %%"REG_b" \n\t" + " cpuid \n\t" + " pop %%"REG_b" \n\t" + + : "=a" (eax), "=c" (ecx) + : "0" (eax) + ); + + hypervisor = !!(ecx & 0x80000000U); + + if (hypervisor) { + union { + uint32_t sig32[3]; + char text[13]; + } sig = {}; + unsigned j; + + /* There is a hypervisor, see what it is */ + eax = 0x40000000U; + __asm__ __volatile__ ( + /* ebx/rbx is being used for PIC! */ + " push %%"REG_b" \n\t" + " cpuid \n\t" + " mov %%ebx, %1 \n\t" + " pop %%"REG_b" \n\t" + + : "=a" (eax), "=r" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) + : "0" (eax) + ); + + for (j = 0; j < ELEMENTSOF(cpuid_vendor_table); j ++) + if (streq(sig.text, cpuid_vendor_table[j].cpuid)) + return cpuid_vendor_table[j].id; + + return VIRTUALIZATION_VM_OTHER; + } + + return VIRTUALIZATION_NONE; +} + +int main(void) +{ + return detect_vm_cpuid() != VIRTUALIZATION_MICROSOFT; +} diff --git a/rules.d/tools/lib/lockdep/Makefile b/rules.d/tools/lib/lockdep/Makefile new file mode 100644 index 00000000000..cb8c122f851 --- /dev/null +++ b/rules.d/tools/lib/lockdep/Makefile @@ -0,0 +1,20 @@ +include $(top_rulesdir)/Makefile.inc + +DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +MAKE_LOCKDEP := +$(MAKE) -C $(top_srcdir)/$(OUTDIR) O=$(CURDIR) V=1 \ + prefix=/usr libdir_relative=lib/$(DEB_HOST_MULTIARCH) \ + LIBLOCKDEP_VERSION=$(VERSION) \ + CONFIG_FLAGS='$(CFLAGS) $(filter -D%,$(CPPFLAGS))' LDFLAGS='$(LDFLAGS)' + +unexport CFLAGS + +all: + $(MAKE_LOCKDEP) + +install: + $(MAKE_LOCKDEP) install + mkdir -p $(DESTDIR)/usr/include + cp -R $(top_srcdir)/$(OUTDIR)/include/liblockdep $(DESTDIR)/usr/include/ + ln -s liblockdep.so.$(VERSION) \ + $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/liblockdep.so diff --git a/rules.d/tools/lib/lockdep/lockdep.in b/rules.d/tools/lib/lockdep/lockdep.in new file mode 100644 index 00000000000..4a0d03ac521 --- /dev/null +++ b/rules.d/tools/lib/lockdep/lockdep.in @@ -0,0 +1,2 @@ +#!/bin/sh +LD_PRELOAD="liblockdep.so.@VERSION@ $LD_PRELOAD" exec "$@" diff --git a/rules.d/tools/perf/Makefile b/rules.d/tools/perf/Makefile new file mode 100644 index 00000000000..ec0c9e97486 --- /dev/null +++ b/rules.d/tools/perf/Makefile @@ -0,0 +1,88 @@ +include $(top_rulesdir)/Makefile.inc + +ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) + +DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) + +ifeq ($(DEB_HOST_ARCH_CPU),alpha) + KERNEL_ARCH_PERF = alpha +else ifeq ($(DEB_HOST_ARCH_CPU),arm) + KERNEL_ARCH_PERF = arm +else ifeq ($(DEB_HOST_ARCH_CPU),arm64) + KERNEL_ARCH_PERF = arm64 +else ifneq ($(filter mips%,$(DEB_HOST_ARCH_CPU)),) + KERNEL_ARCH_PERF = mips +else ifeq ($(DEB_HOST_ARCH_CPU),hppa) + KERNEL_ARCH_PERF = parisc +else ifneq ($(filter powerpc% ppc%,$(DEB_HOST_ARCH_CPU)),) + KERNEL_ARCH_PERF = powerpc +else ifneq ($(filter s390%,$(DEB_HOST_ARCH_CPU)),) + KERNEL_ARCH_PERF = s390 +else ifeq ($(DEB_HOST_ARCH_CPU),sh4) + KERNEL_ARCH_PERF = sh +else ifneq ($(filter sparc%,$(DEB_HOST_ARCH_CPU)),) + KERNEL_ARCH_PERF = sparc +else ifneq ($(filter amd64 i386,$(DEB_HOST_ARCH_CPU)),) + # But x32 isn't supported yet + ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),x32) + KERNEL_ARCH_PERF = x86 + endif +endif + +MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 ARCH=$(KERNEL_ARCH_PERF) EXTRA_WARNINGS=-Wno-error EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' + +# Disable Gtk UI until it's more usable +MAKE_PERF += NO_GTK2=1 + +# Include version in all directory names +MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups tipdir=share/doc/linux-perf-$(VERSION) + +# perf can link against libbfd if available, but the result is +# undistributable as they are licenced under GPL v2 and v3+ +# respectively. Override detection of libbfd and insist that +# cplus_demangle() can be found in libiberty (LGPL v2.1+). +MAKE_PERF += feature-libbfd=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1 + +# perf can link against libcrypto if available, but the result is +# undistributable as GPL v2 and OpenSSL are not compatible without +# an explicit exception. Override detection of libcrypto. +MAKE_PERF += NO_LIBCRYPTO=1 + +# Currently babeltrace support for `perf data' is not automatically detected. +MAKE_PERF += LIBBABELTRACE=1 + +all: +ifdef KERNEL_ARCH_PERF +# perf changes some default directories depending on whether DESTDIR is +# set. We must define it even when building to avoid a rebuild when we +# run 'make install'. + +$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf all VERSION=$(VERSION) DESTDIR=dummy +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + +$(MAKE_PERF) -C $(top_srcdir)/tools/perf/Documentation man VERSION=$(VERSION) +endif +# Check that perf didn't get linked against libbfd or libcrypto + type ldd + ! ldd $(CURDIR)/perf | grep -E '\blib(bfd|crypto)' +# Check that it includes cplus_demangle from libiberty + grep cplus_demangle $(CURDIR)/perf +endif + +install: +ifdef KERNEL_ARCH_PERF + +$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf install VERSION=$(VERSION) +# Don't install a 'trace' alias yet: +# - We need a wrapper for it anyway, so there's little point adding a +# versioned link +# - It doesn't work out-of-the-box as non-root (it depends on debugfs), +# so it's less widely useful than strace +# - 'perf trace' doesn't take much more typing + rm -f $(DESTDIR)/usr/bin/trace_$(VERSION) +endif + mkdir -p $(DESTDIR)/usr/share/bash-completion/ + mv $(DESTDIR)/etc/bash_completion.d \ + $(DESTDIR)/usr/share/bash-completion/completions + rmdir --ignore-fail-on-non-empty $(DESTDIR)/etc +# Check for unversioned files that are likely to result in file conflicts + ! find $(DESTDIR) -name '*perf*' \! -path '*[_-]$(VERSION)*' | grep . + +endif # !nopython diff --git a/rules.d/tools/power/cpupower/Makefile b/rules.d/tools/power/cpupower/Makefile new file mode 100644 index 00000000000..23193b5b3a2 --- /dev/null +++ b/rules.d/tools/power/cpupower/Makefile @@ -0,0 +1,21 @@ +include $(top_rulesdir)/Makefile.inc + +MAKE_CPUPOWER := $(shell dpkg-buildflags --export=cmdline) $(MAKE) O=$(CURDIR) CPUFREQ_BENCH=false V=true mandir=/usr/share/man + +MAKE_CPUPOWER += DEBUG=$(if $(findstring nostrip,$(DEB_BUILD_OPTIONS)),true,) + +MAKE_CPUPOWER += CROSS='$(CROSS_COMPILE)' + +MAKE_CPUPOWER += PACKAGE_BUGREPORT='Debian\ \(reportbug\ linux-cpupower\)' + +all: + $(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower + +install: + $(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower install DESTDIR=$(DESTDIR) +ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + rm -rf $(DESTDIR)/usr/share/man +endif + +clean: + $(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower clean diff --git a/rules.d/tools/usb/usbip/Makefile b/rules.d/tools/usb/usbip/Makefile new file mode 100644 index 00000000000..f17ce56166a --- /dev/null +++ b/rules.d/tools/usb/usbip/Makefile @@ -0,0 +1,30 @@ +srcdir := $(top_srcdir)/tools/usb/usbip + +# Make sure we don't override top_srcdir in the sub-make. 'unexport +# top_srcdir' is *not* sufficient; nor is adding 'MAKEFLAGS=' to the +# sub-make command line. +unexport MAKEFLAGS + +all: export CFLAGS := $(shell dpkg-buildflags --get CFLAGS) +all: export CPPFLAGS := $(shell dpkg-buildflags --get CFLAGS) \ + -isystem $(top_srcdir)/debian/build/build-tools/include +all: export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) +all: + rsync -a $(srcdir)/ . + ./autogen.sh + ./configure \ + --prefix=/usr \ + --with-tcp-wrappers \ + --with-usbids-dir=/usr/share/misc \ + --disable-shared \ + --host=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + $(MAKE) + +install: + $(MAKE) install +ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + rm -rf $(DESTDIR)/usr/share/man +endif + +clean: + rm -rf * diff --git a/rules.defs b/rules.defs new file mode 100644 index 00000000000..1990ae9a1e5 --- /dev/null +++ b/rules.defs @@ -0,0 +1,6 @@ +include /usr/share/dpkg/default.mk + +BUILD_DIR = debian/build +STAMPS_DIR = debian/stamps + +-include debian/rules.defs.local diff --git a/rules.gen b/rules.gen new file mode 100644 index 00000000000..43ca493fbec --- /dev/null +++ b/rules.gen @@ -0,0 +1,837 @@ +.NOTPARALLEL: +binary-arch: binary-arch_alpha binary-arch_amd64 binary-arch_arm64 binary-arch_armel binary-arch_armhf binary-arch_hppa binary-arch_i386 binary-arch_m68k binary-arch_mips binary-arch_mips64 binary-arch_mips64el binary-arch_mipsel binary-arch_mipsn32 binary-arch_mipsn32el binary-arch_or1k binary-arch_powerpc binary-arch_powerpcspe binary-arch_ppc64 binary-arch_ppc64el binary-arch_s390 binary-arch_s390x binary-arch_sh3 binary-arch_sh4 binary-arch_sparc binary-arch_sparc64 binary-arch_tilegx binary-arch_x32 +binary-arch_alpha:: binary-arch_alpha_none binary-arch_alpha_real +binary-arch_alpha:: + $(MAKE) -f debian/rules.real install-udeb_alpha ABINAME='4.9.0-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-alpha-generic-di nic-modules-4.9.0-1-alpha-generic-di nic-wireless-modules-4.9.0-1-alpha-generic-di nic-shared-modules-4.9.0-1-alpha-generic-di serial-modules-4.9.0-1-alpha-generic-di usb-serial-modules-4.9.0-1-alpha-generic-di ppp-modules-4.9.0-1-alpha-generic-di pata-modules-4.9.0-1-alpha-generic-di cdrom-core-modules-4.9.0-1-alpha-generic-di scsi-core-modules-4.9.0-1-alpha-generic-di scsi-modules-4.9.0-1-alpha-generic-di loop-modules-4.9.0-1-alpha-generic-di btrfs-modules-4.9.0-1-alpha-generic-di ext4-modules-4.9.0-1-alpha-generic-di isofs-modules-4.9.0-1-alpha-generic-di jfs-modules-4.9.0-1-alpha-generic-di xfs-modules-4.9.0-1-alpha-generic-di fat-modules-4.9.0-1-alpha-generic-di md-modules-4.9.0-1-alpha-generic-di multipath-modules-4.9.0-1-alpha-generic-di usb-modules-4.9.0-1-alpha-generic-di usb-storage-modules-4.9.0-1-alpha-generic-di fb-modules-4.9.0-1-alpha-generic-di input-modules-4.9.0-1-alpha-generic-di event-modules-4.9.0-1-alpha-generic-di mouse-modules-4.9.0-1-alpha-generic-di nic-pcmcia-modules-4.9.0-1-alpha-generic-di pcmcia-modules-4.9.0-1-alpha-generic-di nic-usb-modules-4.9.0-1-alpha-generic-di sata-modules-4.9.0-1-alpha-generic-di crc-modules-4.9.0-1-alpha-generic-di crypto-modules-4.9.0-1-alpha-generic-di crypto-dm-modules-4.9.0-1-alpha-generic-di ata-modules-4.9.0-1-alpha-generic-di nbd-modules-4.9.0-1-alpha-generic-di squashfs-modules-4.9.0-1-alpha-generic-di virtio-modules-4.9.0-1-alpha-generic-di zlib-modules-4.9.0-1-alpha-generic-di fuse-modules-4.9.0-1-alpha-generic-di srm-modules-4.9.0-1-alpha-generic-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_alpha_none: binary-arch_alpha_none_alpha-generic binary-arch_alpha_none_alpha-smp binary-arch_alpha_none_real +binary-arch_alpha_none_alpha-generic: binary-arch_alpha_none_alpha-generic_real +binary-arch_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_alpha_none_alpha-smp: binary-arch_alpha_none_alpha-smp_real +binary-arch_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_alpha_none_real: +binary-arch_alpha_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_amd64:: binary-arch_amd64_extra binary-arch_amd64_none binary-arch_amd64_real binary-arch_amd64_rt +binary-arch_amd64:: + $(MAKE) -f debian/rules.real install-udeb_amd64 ABINAME='4.9.0-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-amd64-di nic-modules-4.9.0-1-amd64-di nic-wireless-modules-4.9.0-1-amd64-di nic-shared-modules-4.9.0-1-amd64-di serial-modules-4.9.0-1-amd64-di usb-serial-modules-4.9.0-1-amd64-di ppp-modules-4.9.0-1-amd64-di pata-modules-4.9.0-1-amd64-di cdrom-core-modules-4.9.0-1-amd64-di firewire-core-modules-4.9.0-1-amd64-di scsi-core-modules-4.9.0-1-amd64-di scsi-modules-4.9.0-1-amd64-di loop-modules-4.9.0-1-amd64-di btrfs-modules-4.9.0-1-amd64-di ext4-modules-4.9.0-1-amd64-di isofs-modules-4.9.0-1-amd64-di jfs-modules-4.9.0-1-amd64-di ntfs-modules-4.9.0-1-amd64-di xfs-modules-4.9.0-1-amd64-di fat-modules-4.9.0-1-amd64-di md-modules-4.9.0-1-amd64-di multipath-modules-4.9.0-1-amd64-di usb-modules-4.9.0-1-amd64-di usb-storage-modules-4.9.0-1-amd64-di pcmcia-storage-modules-4.9.0-1-amd64-di fb-modules-4.9.0-1-amd64-di input-modules-4.9.0-1-amd64-di event-modules-4.9.0-1-amd64-di mouse-modules-4.9.0-1-amd64-di nic-pcmcia-modules-4.9.0-1-amd64-di pcmcia-modules-4.9.0-1-amd64-di nic-usb-modules-4.9.0-1-amd64-di sata-modules-4.9.0-1-amd64-di acpi-modules-4.9.0-1-amd64-di i2c-modules-4.9.0-1-amd64-di crc-modules-4.9.0-1-amd64-di crypto-modules-4.9.0-1-amd64-di crypto-dm-modules-4.9.0-1-amd64-di efi-modules-4.9.0-1-amd64-di ata-modules-4.9.0-1-amd64-di mmc-core-modules-4.9.0-1-amd64-di mmc-modules-4.9.0-1-amd64-di nbd-modules-4.9.0-1-amd64-di squashfs-modules-4.9.0-1-amd64-di speakup-modules-4.9.0-1-amd64-di virtio-modules-4.9.0-1-amd64-di uinput-modules-4.9.0-1-amd64-di sound-modules-4.9.0-1-amd64-di hyperv-modules-4.9.0-1-amd64-di udf-modules-4.9.0-1-amd64-di fuse-modules-4.9.0-1-amd64-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_amd64_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='amd64' DH_OPTIONS='-plinux-compiler-gcc-6-x86' +binary-arch_amd64_none: binary-arch_amd64_none_amd64 binary-arch_amd64_none_real +binary-arch_amd64_none_amd64: binary-arch_amd64_none_amd64_real +binary-arch_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_amd64_none_real: +binary-arch_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_amd64_rt: binary-arch_amd64_rt_amd64 binary-arch_amd64_rt_real +binary-arch_amd64_rt_amd64: binary-arch_amd64_rt_amd64_real +binary-arch_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_amd64_rt_real: +binary-arch_arm64:: binary-arch_arm64_none binary-arch_arm64_real +binary-arch_arm64:: + $(MAKE) -f debian/rules.real install-udeb_arm64 ABINAME='4.9.0-1' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-arm64-di nic-modules-4.9.0-1-arm64-di nic-wireless-modules-4.9.0-1-arm64-di nic-shared-modules-4.9.0-1-arm64-di ppp-modules-4.9.0-1-arm64-di cdrom-core-modules-4.9.0-1-arm64-di scsi-core-modules-4.9.0-1-arm64-di scsi-modules-4.9.0-1-arm64-di loop-modules-4.9.0-1-arm64-di btrfs-modules-4.9.0-1-arm64-di ext4-modules-4.9.0-1-arm64-di isofs-modules-4.9.0-1-arm64-di jfs-modules-4.9.0-1-arm64-di xfs-modules-4.9.0-1-arm64-di fat-modules-4.9.0-1-arm64-di md-modules-4.9.0-1-arm64-di multipath-modules-4.9.0-1-arm64-di usb-modules-4.9.0-1-arm64-di usb-storage-modules-4.9.0-1-arm64-di fb-modules-4.9.0-1-arm64-di input-modules-4.9.0-1-arm64-di event-modules-4.9.0-1-arm64-di nic-usb-modules-4.9.0-1-arm64-di sata-modules-4.9.0-1-arm64-di i2c-modules-4.9.0-1-arm64-di crc-modules-4.9.0-1-arm64-di crypto-modules-4.9.0-1-arm64-di crypto-dm-modules-4.9.0-1-arm64-di efi-modules-4.9.0-1-arm64-di ata-modules-4.9.0-1-arm64-di mmc-modules-4.9.0-1-arm64-di nbd-modules-4.9.0-1-arm64-di squashfs-modules-4.9.0-1-arm64-di virtio-modules-4.9.0-1-arm64-di uinput-modules-4.9.0-1-arm64-di leds-modules-4.9.0-1-arm64-di udf-modules-4.9.0-1-arm64-di fuse-modules-4.9.0-1-arm64-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_arm64_none: binary-arch_arm64_none_arm64 binary-arch_arm64_none_real +binary-arch_arm64_none_arm64: binary-arch_arm64_none_arm64_real +binary-arch_arm64_none_arm64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='arm64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_arm64_none_real: +binary-arch_arm64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_armel:: binary-arch_armel_extra binary-arch_armel_none binary-arch_armel_real +binary-arch_armel:: + $(MAKE) -f debian/rules.real install-udeb_armel ABINAME='4.9.0-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-marvell-di nic-modules-4.9.0-1-marvell-di nic-shared-modules-4.9.0-1-marvell-di usb-serial-modules-4.9.0-1-marvell-di ppp-modules-4.9.0-1-marvell-di cdrom-core-modules-4.9.0-1-marvell-di scsi-core-modules-4.9.0-1-marvell-di loop-modules-4.9.0-1-marvell-di ipv6-modules-4.9.0-1-marvell-di btrfs-modules-4.9.0-1-marvell-di ext4-modules-4.9.0-1-marvell-di isofs-modules-4.9.0-1-marvell-di jffs2-modules-4.9.0-1-marvell-di jfs-modules-4.9.0-1-marvell-di fat-modules-4.9.0-1-marvell-di minix-modules-4.9.0-1-marvell-di md-modules-4.9.0-1-marvell-di multipath-modules-4.9.0-1-marvell-di usb-modules-4.9.0-1-marvell-di usb-storage-modules-4.9.0-1-marvell-di fb-modules-4.9.0-1-marvell-di input-modules-4.9.0-1-marvell-di event-modules-4.9.0-1-marvell-di mouse-modules-4.9.0-1-marvell-di nic-usb-modules-4.9.0-1-marvell-di sata-modules-4.9.0-1-marvell-di crc-modules-4.9.0-1-marvell-di crypto-modules-4.9.0-1-marvell-di crypto-dm-modules-4.9.0-1-marvell-di mmc-modules-4.9.0-1-marvell-di nbd-modules-4.9.0-1-marvell-di squashfs-modules-4.9.0-1-marvell-di uinput-modules-4.9.0-1-marvell-di zlib-modules-4.9.0-1-marvell-di leds-modules-4.9.0-1-marvell-di udf-modules-4.9.0-1-marvell-di fuse-modules-4.9.0-1-marvell-di mtd-modules-4.9.0-1-marvell-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_armel_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='armel' DH_OPTIONS='-plinux-compiler-gcc-6-arm' +binary-arch_armel_none: binary-arch_armel_none_marvell binary-arch_armel_none_real +binary-arch_armel_none_marvell: binary-arch_armel_none_marvell_real +binary-arch_armel_none_marvell_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='armel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_armel_none_real: +binary-arch_armel_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_armhf:: binary-arch_armhf_extra binary-arch_armhf_none binary-arch_armhf_real +binary-arch_armhf:: + $(MAKE) -f debian/rules.real install-udeb_armhf ABINAME='4.9.0-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-armmp-di nic-modules-4.9.0-1-armmp-di nic-wireless-modules-4.9.0-1-armmp-di nic-shared-modules-4.9.0-1-armmp-di ppp-modules-4.9.0-1-armmp-di pata-modules-4.9.0-1-armmp-di scsi-core-modules-4.9.0-1-armmp-di scsi-modules-4.9.0-1-armmp-di loop-modules-4.9.0-1-armmp-di btrfs-modules-4.9.0-1-armmp-di ext4-modules-4.9.0-1-armmp-di isofs-modules-4.9.0-1-armmp-di jfs-modules-4.9.0-1-armmp-di fat-modules-4.9.0-1-armmp-di md-modules-4.9.0-1-armmp-di multipath-modules-4.9.0-1-armmp-di usb-modules-4.9.0-1-armmp-di usb-storage-modules-4.9.0-1-armmp-di fb-modules-4.9.0-1-armmp-di input-modules-4.9.0-1-armmp-di event-modules-4.9.0-1-armmp-di nic-usb-modules-4.9.0-1-armmp-di sata-modules-4.9.0-1-armmp-di crc-modules-4.9.0-1-armmp-di crypto-modules-4.9.0-1-armmp-di crypto-dm-modules-4.9.0-1-armmp-di efi-modules-4.9.0-1-armmp-di ata-modules-4.9.0-1-armmp-di mmc-modules-4.9.0-1-armmp-di nbd-modules-4.9.0-1-armmp-di squashfs-modules-4.9.0-1-armmp-di virtio-modules-4.9.0-1-armmp-di uinput-modules-4.9.0-1-armmp-di zlib-modules-4.9.0-1-armmp-di leds-modules-4.9.0-1-armmp-di udf-modules-4.9.0-1-armmp-di fuse-modules-4.9.0-1-armmp-di mtd-modules-4.9.0-1-armmp-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_armhf_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='armhf' DH_OPTIONS='-plinux-compiler-gcc-6-arm' +binary-arch_armhf_none: binary-arch_armhf_none_armmp binary-arch_armhf_none_armmp-lpae binary-arch_armhf_none_real +binary-arch_armhf_none_armmp: binary-arch_armhf_none_armmp_real +binary-arch_armhf_none_armmp-lpae: binary-arch_armhf_none_armmp-lpae_real +binary-arch_armhf_none_armmp-lpae_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-lpae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_armhf_none_armmp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_armhf_none_real: +binary-arch_armhf_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_hppa:: binary-arch_hppa_none binary-arch_hppa_real +binary-arch_hppa:: + $(MAKE) -f debian/rules.real install-udeb_hppa ABINAME='4.9.0-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-parisc-di nic-modules-4.9.0-1-parisc-di nic-shared-modules-4.9.0-1-parisc-di serial-modules-4.9.0-1-parisc-di usb-serial-modules-4.9.0-1-parisc-di ppp-modules-4.9.0-1-parisc-di pata-modules-4.9.0-1-parisc-di cdrom-core-modules-4.9.0-1-parisc-di scsi-core-modules-4.9.0-1-parisc-di scsi-modules-4.9.0-1-parisc-di loop-modules-4.9.0-1-parisc-di btrfs-modules-4.9.0-1-parisc-di ext4-modules-4.9.0-1-parisc-di isofs-modules-4.9.0-1-parisc-di jfs-modules-4.9.0-1-parisc-di xfs-modules-4.9.0-1-parisc-di fat-modules-4.9.0-1-parisc-di md-modules-4.9.0-1-parisc-di multipath-modules-4.9.0-1-parisc-di usb-modules-4.9.0-1-parisc-di usb-storage-modules-4.9.0-1-parisc-di input-modules-4.9.0-1-parisc-di event-modules-4.9.0-1-parisc-di mouse-modules-4.9.0-1-parisc-di nic-usb-modules-4.9.0-1-parisc-di sata-modules-4.9.0-1-parisc-di crc-modules-4.9.0-1-parisc-di crypto-modules-4.9.0-1-parisc-di crypto-dm-modules-4.9.0-1-parisc-di ata-modules-4.9.0-1-parisc-di nbd-modules-4.9.0-1-parisc-di squashfs-modules-4.9.0-1-parisc-di virtio-modules-4.9.0-1-parisc-di zlib-modules-4.9.0-1-parisc-di fuse-modules-4.9.0-1-parisc-di kernel-image-4.9.0-1-parisc64-smp-di nic-modules-4.9.0-1-parisc64-smp-di nic-shared-modules-4.9.0-1-parisc64-smp-di serial-modules-4.9.0-1-parisc64-smp-di usb-serial-modules-4.9.0-1-parisc64-smp-di ppp-modules-4.9.0-1-parisc64-smp-di pata-modules-4.9.0-1-parisc64-smp-di cdrom-core-modules-4.9.0-1-parisc64-smp-di scsi-core-modules-4.9.0-1-parisc64-smp-di scsi-modules-4.9.0-1-parisc64-smp-di loop-modules-4.9.0-1-parisc64-smp-di btrfs-modules-4.9.0-1-parisc64-smp-di ext4-modules-4.9.0-1-parisc64-smp-di isofs-modules-4.9.0-1-parisc64-smp-di jfs-modules-4.9.0-1-parisc64-smp-di xfs-modules-4.9.0-1-parisc64-smp-di fat-modules-4.9.0-1-parisc64-smp-di md-modules-4.9.0-1-parisc64-smp-di multipath-modules-4.9.0-1-parisc64-smp-di usb-modules-4.9.0-1-parisc64-smp-di usb-storage-modules-4.9.0-1-parisc64-smp-di fb-modules-4.9.0-1-parisc64-smp-di input-modules-4.9.0-1-parisc64-smp-di event-modules-4.9.0-1-parisc64-smp-di mouse-modules-4.9.0-1-parisc64-smp-di nic-usb-modules-4.9.0-1-parisc64-smp-di sata-modules-4.9.0-1-parisc64-smp-di crc-modules-4.9.0-1-parisc64-smp-di crypto-modules-4.9.0-1-parisc64-smp-di crypto-dm-modules-4.9.0-1-parisc64-smp-di ata-modules-4.9.0-1-parisc64-smp-di nbd-modules-4.9.0-1-parisc64-smp-di squashfs-modules-4.9.0-1-parisc64-smp-di virtio-modules-4.9.0-1-parisc64-smp-di zlib-modules-4.9.0-1-parisc64-smp-di fuse-modules-4.9.0-1-parisc64-smp-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_hppa_none: binary-arch_hppa_none_parisc binary-arch_hppa_none_parisc64-smp binary-arch_hppa_none_real +binary-arch_hppa_none_parisc: binary-arch_hppa_none_parisc_real +binary-arch_hppa_none_parisc64-smp: binary-arch_hppa_none_parisc64-smp_real +binary-arch_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_hppa_none_real: +binary-arch_hppa_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_i386:: binary-arch_i386_extra binary-arch_i386_none binary-arch_i386_real binary-arch_i386_rt +binary-arch_i386:: + $(MAKE) -f debian/rules.real install-udeb_i386 ABINAME='4.9.0-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-686-di nic-modules-4.9.0-1-686-di nic-wireless-modules-4.9.0-1-686-di nic-shared-modules-4.9.0-1-686-di serial-modules-4.9.0-1-686-di usb-serial-modules-4.9.0-1-686-di ppp-modules-4.9.0-1-686-di pata-modules-4.9.0-1-686-di cdrom-core-modules-4.9.0-1-686-di firewire-core-modules-4.9.0-1-686-di scsi-core-modules-4.9.0-1-686-di scsi-modules-4.9.0-1-686-di loop-modules-4.9.0-1-686-di btrfs-modules-4.9.0-1-686-di ext4-modules-4.9.0-1-686-di isofs-modules-4.9.0-1-686-di jfs-modules-4.9.0-1-686-di ntfs-modules-4.9.0-1-686-di xfs-modules-4.9.0-1-686-di fat-modules-4.9.0-1-686-di md-modules-4.9.0-1-686-di multipath-modules-4.9.0-1-686-di usb-modules-4.9.0-1-686-di usb-storage-modules-4.9.0-1-686-di pcmcia-storage-modules-4.9.0-1-686-di fb-modules-4.9.0-1-686-di input-modules-4.9.0-1-686-di event-modules-4.9.0-1-686-di mouse-modules-4.9.0-1-686-di nic-pcmcia-modules-4.9.0-1-686-di pcmcia-modules-4.9.0-1-686-di nic-usb-modules-4.9.0-1-686-di sata-modules-4.9.0-1-686-di acpi-modules-4.9.0-1-686-di i2c-modules-4.9.0-1-686-di crc-modules-4.9.0-1-686-di crypto-modules-4.9.0-1-686-di crypto-dm-modules-4.9.0-1-686-di efi-modules-4.9.0-1-686-di ata-modules-4.9.0-1-686-di mmc-core-modules-4.9.0-1-686-di mmc-modules-4.9.0-1-686-di nbd-modules-4.9.0-1-686-di squashfs-modules-4.9.0-1-686-di speakup-modules-4.9.0-1-686-di virtio-modules-4.9.0-1-686-di uinput-modules-4.9.0-1-686-di sound-modules-4.9.0-1-686-di hyperv-modules-4.9.0-1-686-di udf-modules-4.9.0-1-686-di fuse-modules-4.9.0-1-686-di kernel-image-4.9.0-1-686-pae-di nic-modules-4.9.0-1-686-pae-di nic-wireless-modules-4.9.0-1-686-pae-di nic-shared-modules-4.9.0-1-686-pae-di serial-modules-4.9.0-1-686-pae-di usb-serial-modules-4.9.0-1-686-pae-di ppp-modules-4.9.0-1-686-pae-di pata-modules-4.9.0-1-686-pae-di cdrom-core-modules-4.9.0-1-686-pae-di firewire-core-modules-4.9.0-1-686-pae-di scsi-core-modules-4.9.0-1-686-pae-di scsi-modules-4.9.0-1-686-pae-di loop-modules-4.9.0-1-686-pae-di btrfs-modules-4.9.0-1-686-pae-di ext4-modules-4.9.0-1-686-pae-di isofs-modules-4.9.0-1-686-pae-di jfs-modules-4.9.0-1-686-pae-di ntfs-modules-4.9.0-1-686-pae-di xfs-modules-4.9.0-1-686-pae-di fat-modules-4.9.0-1-686-pae-di md-modules-4.9.0-1-686-pae-di multipath-modules-4.9.0-1-686-pae-di usb-modules-4.9.0-1-686-pae-di usb-storage-modules-4.9.0-1-686-pae-di pcmcia-storage-modules-4.9.0-1-686-pae-di fb-modules-4.9.0-1-686-pae-di input-modules-4.9.0-1-686-pae-di event-modules-4.9.0-1-686-pae-di mouse-modules-4.9.0-1-686-pae-di nic-pcmcia-modules-4.9.0-1-686-pae-di pcmcia-modules-4.9.0-1-686-pae-di nic-usb-modules-4.9.0-1-686-pae-di sata-modules-4.9.0-1-686-pae-di acpi-modules-4.9.0-1-686-pae-di i2c-modules-4.9.0-1-686-pae-di crc-modules-4.9.0-1-686-pae-di crypto-modules-4.9.0-1-686-pae-di crypto-dm-modules-4.9.0-1-686-pae-di efi-modules-4.9.0-1-686-pae-di ata-modules-4.9.0-1-686-pae-di mmc-core-modules-4.9.0-1-686-pae-di mmc-modules-4.9.0-1-686-pae-di nbd-modules-4.9.0-1-686-pae-di squashfs-modules-4.9.0-1-686-pae-di speakup-modules-4.9.0-1-686-pae-di virtio-modules-4.9.0-1-686-pae-di uinput-modules-4.9.0-1-686-pae-di sound-modules-4.9.0-1-686-pae-di hyperv-modules-4.9.0-1-686-pae-di udf-modules-4.9.0-1-686-pae-di fuse-modules-4.9.0-1-686-pae-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_i386_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='i386' DH_OPTIONS='-plinux-compiler-gcc-6-x86' +binary-arch_i386_none: binary-arch_i386_none_686 binary-arch_i386_none_686-pae binary-arch_i386_none_real +binary-arch_i386_none_686: binary-arch_i386_none_686_real +binary-arch_i386_none_686-pae: binary-arch_i386_none_686-pae_real +binary-arch_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_i386_none_686_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_i386_none_real: +binary-arch_i386_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_i386_rt: binary-arch_i386_rt_686-pae binary-arch_i386_rt_real +binary-arch_i386_rt_686-pae: binary-arch_i386_rt_686-pae_real +binary-arch_i386_rt_686-pae_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_i386_rt_real: +binary-arch_m68k:: binary-arch_m68k_none binary-arch_m68k_real +binary-arch_m68k:: + $(MAKE) -f debian/rules.real install-udeb_m68k ABINAME='4.9.0-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-m68k-di nic-shared-modules-4.9.0-1-m68k-di ppp-modules-4.9.0-1-m68k-di cdrom-core-modules-4.9.0-1-m68k-di scsi-modules-4.9.0-1-m68k-di btrfs-modules-4.9.0-1-m68k-di ext4-modules-4.9.0-1-m68k-di isofs-modules-4.9.0-1-m68k-di fat-modules-4.9.0-1-m68k-di md-modules-4.9.0-1-m68k-di crc-modules-4.9.0-1-m68k-di crypto-modules-4.9.0-1-m68k-di nbd-modules-4.9.0-1-m68k-di squashfs-modules-4.9.0-1-m68k-di zlib-modules-4.9.0-1-m68k-di udf-modules-4.9.0-1-m68k-di fuse-modules-4.9.0-1-m68k-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_m68k_none: binary-arch_m68k_none_m68k binary-arch_m68k_none_real +binary-arch_m68k_none_m68k: binary-arch_m68k_none_m68k_real +binary-arch_m68k_none_m68k_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_m68k_none_real: +binary-arch_m68k_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips:: binary-arch_mips_none binary-arch_mips_real +binary-arch_mips:: + $(MAKE) -f debian/rules.real install-udeb_mips ABINAME='4.9.0-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-4kc-malta-di nic-modules-4.9.0-1-4kc-malta-di nic-wireless-modules-4.9.0-1-4kc-malta-di nic-shared-modules-4.9.0-1-4kc-malta-di usb-serial-modules-4.9.0-1-4kc-malta-di ppp-modules-4.9.0-1-4kc-malta-di pata-modules-4.9.0-1-4kc-malta-di cdrom-core-modules-4.9.0-1-4kc-malta-di scsi-core-modules-4.9.0-1-4kc-malta-di scsi-modules-4.9.0-1-4kc-malta-di loop-modules-4.9.0-1-4kc-malta-di btrfs-modules-4.9.0-1-4kc-malta-di ext4-modules-4.9.0-1-4kc-malta-di isofs-modules-4.9.0-1-4kc-malta-di jfs-modules-4.9.0-1-4kc-malta-di ntfs-modules-4.9.0-1-4kc-malta-di xfs-modules-4.9.0-1-4kc-malta-di fat-modules-4.9.0-1-4kc-malta-di hfs-modules-4.9.0-1-4kc-malta-di affs-modules-4.9.0-1-4kc-malta-di minix-modules-4.9.0-1-4kc-malta-di md-modules-4.9.0-1-4kc-malta-di multipath-modules-4.9.0-1-4kc-malta-di usb-modules-4.9.0-1-4kc-malta-di usb-storage-modules-4.9.0-1-4kc-malta-di input-modules-4.9.0-1-4kc-malta-di event-modules-4.9.0-1-4kc-malta-di mouse-modules-4.9.0-1-4kc-malta-di nic-usb-modules-4.9.0-1-4kc-malta-di sata-modules-4.9.0-1-4kc-malta-di i2c-modules-4.9.0-1-4kc-malta-di crc-modules-4.9.0-1-4kc-malta-di crypto-modules-4.9.0-1-4kc-malta-di crypto-dm-modules-4.9.0-1-4kc-malta-di ata-modules-4.9.0-1-4kc-malta-di mmc-core-modules-4.9.0-1-4kc-malta-di mmc-modules-4.9.0-1-4kc-malta-di nbd-modules-4.9.0-1-4kc-malta-di squashfs-modules-4.9.0-1-4kc-malta-di virtio-modules-4.9.0-1-4kc-malta-di sound-modules-4.9.0-1-4kc-malta-di zlib-modules-4.9.0-1-4kc-malta-di udf-modules-4.9.0-1-4kc-malta-di fuse-modules-4.9.0-1-4kc-malta-di kernel-image-4.9.0-1-octeon-di nic-modules-4.9.0-1-octeon-di nic-wireless-modules-4.9.0-1-octeon-di nic-shared-modules-4.9.0-1-octeon-di usb-serial-modules-4.9.0-1-octeon-di ppp-modules-4.9.0-1-octeon-di pata-modules-4.9.0-1-octeon-di cdrom-core-modules-4.9.0-1-octeon-di scsi-core-modules-4.9.0-1-octeon-di scsi-modules-4.9.0-1-octeon-di loop-modules-4.9.0-1-octeon-di btrfs-modules-4.9.0-1-octeon-di ext4-modules-4.9.0-1-octeon-di isofs-modules-4.9.0-1-octeon-di jfs-modules-4.9.0-1-octeon-di ntfs-modules-4.9.0-1-octeon-di xfs-modules-4.9.0-1-octeon-di fat-modules-4.9.0-1-octeon-di hfs-modules-4.9.0-1-octeon-di affs-modules-4.9.0-1-octeon-di minix-modules-4.9.0-1-octeon-di md-modules-4.9.0-1-octeon-di multipath-modules-4.9.0-1-octeon-di usb-modules-4.9.0-1-octeon-di usb-storage-modules-4.9.0-1-octeon-di input-modules-4.9.0-1-octeon-di event-modules-4.9.0-1-octeon-di nic-usb-modules-4.9.0-1-octeon-di sata-modules-4.9.0-1-octeon-di crc-modules-4.9.0-1-octeon-di crypto-modules-4.9.0-1-octeon-di crypto-dm-modules-4.9.0-1-octeon-di nbd-modules-4.9.0-1-octeon-di squashfs-modules-4.9.0-1-octeon-di rtc-modules-4.9.0-1-octeon-di virtio-modules-4.9.0-1-octeon-di sound-modules-4.9.0-1-octeon-di zlib-modules-4.9.0-1-octeon-di udf-modules-4.9.0-1-octeon-di fuse-modules-4.9.0-1-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_mips64:: binary-arch_mips64_none binary-arch_mips64_real +binary-arch_mips64:: + $(MAKE) -f debian/rules.real install-udeb_mips64 ABINAME='4.9.0-1' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-5kc-malta-di nic-modules-4.9.0-1-5kc-malta-di nic-wireless-modules-4.9.0-1-5kc-malta-di nic-shared-modules-4.9.0-1-5kc-malta-di usb-serial-modules-4.9.0-1-5kc-malta-di ppp-modules-4.9.0-1-5kc-malta-di pata-modules-4.9.0-1-5kc-malta-di cdrom-core-modules-4.9.0-1-5kc-malta-di scsi-core-modules-4.9.0-1-5kc-malta-di scsi-modules-4.9.0-1-5kc-malta-di loop-modules-4.9.0-1-5kc-malta-di btrfs-modules-4.9.0-1-5kc-malta-di ext4-modules-4.9.0-1-5kc-malta-di isofs-modules-4.9.0-1-5kc-malta-di jfs-modules-4.9.0-1-5kc-malta-di ntfs-modules-4.9.0-1-5kc-malta-di xfs-modules-4.9.0-1-5kc-malta-di fat-modules-4.9.0-1-5kc-malta-di hfs-modules-4.9.0-1-5kc-malta-di affs-modules-4.9.0-1-5kc-malta-di minix-modules-4.9.0-1-5kc-malta-di md-modules-4.9.0-1-5kc-malta-di multipath-modules-4.9.0-1-5kc-malta-di usb-modules-4.9.0-1-5kc-malta-di usb-storage-modules-4.9.0-1-5kc-malta-di input-modules-4.9.0-1-5kc-malta-di event-modules-4.9.0-1-5kc-malta-di mouse-modules-4.9.0-1-5kc-malta-di nic-usb-modules-4.9.0-1-5kc-malta-di sata-modules-4.9.0-1-5kc-malta-di i2c-modules-4.9.0-1-5kc-malta-di crc-modules-4.9.0-1-5kc-malta-di crypto-modules-4.9.0-1-5kc-malta-di crypto-dm-modules-4.9.0-1-5kc-malta-di ata-modules-4.9.0-1-5kc-malta-di mmc-core-modules-4.9.0-1-5kc-malta-di mmc-modules-4.9.0-1-5kc-malta-di nbd-modules-4.9.0-1-5kc-malta-di squashfs-modules-4.9.0-1-5kc-malta-di virtio-modules-4.9.0-1-5kc-malta-di sound-modules-4.9.0-1-5kc-malta-di zlib-modules-4.9.0-1-5kc-malta-di udf-modules-4.9.0-1-5kc-malta-di fuse-modules-4.9.0-1-5kc-malta-di kernel-image-4.9.0-1-octeon-di nic-modules-4.9.0-1-octeon-di nic-wireless-modules-4.9.0-1-octeon-di nic-shared-modules-4.9.0-1-octeon-di usb-serial-modules-4.9.0-1-octeon-di ppp-modules-4.9.0-1-octeon-di pata-modules-4.9.0-1-octeon-di cdrom-core-modules-4.9.0-1-octeon-di scsi-core-modules-4.9.0-1-octeon-di scsi-modules-4.9.0-1-octeon-di loop-modules-4.9.0-1-octeon-di btrfs-modules-4.9.0-1-octeon-di ext4-modules-4.9.0-1-octeon-di isofs-modules-4.9.0-1-octeon-di jfs-modules-4.9.0-1-octeon-di ntfs-modules-4.9.0-1-octeon-di xfs-modules-4.9.0-1-octeon-di fat-modules-4.9.0-1-octeon-di hfs-modules-4.9.0-1-octeon-di affs-modules-4.9.0-1-octeon-di minix-modules-4.9.0-1-octeon-di md-modules-4.9.0-1-octeon-di multipath-modules-4.9.0-1-octeon-di usb-modules-4.9.0-1-octeon-di usb-storage-modules-4.9.0-1-octeon-di input-modules-4.9.0-1-octeon-di event-modules-4.9.0-1-octeon-di nic-usb-modules-4.9.0-1-octeon-di sata-modules-4.9.0-1-octeon-di crc-modules-4.9.0-1-octeon-di crypto-modules-4.9.0-1-octeon-di crypto-dm-modules-4.9.0-1-octeon-di nbd-modules-4.9.0-1-octeon-di squashfs-modules-4.9.0-1-octeon-di rtc-modules-4.9.0-1-octeon-di virtio-modules-4.9.0-1-octeon-di sound-modules-4.9.0-1-octeon-di zlib-modules-4.9.0-1-octeon-di udf-modules-4.9.0-1-octeon-di fuse-modules-4.9.0-1-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_mips64_none: binary-arch_mips64_none_5kc-malta binary-arch_mips64_none_octeon binary-arch_mips64_none_real +binary-arch_mips64_none_5kc-malta: binary-arch_mips64_none_5kc-malta_real +binary-arch_mips64_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64_none_octeon: binary-arch_mips64_none_octeon_real +binary-arch_mips64_none_octeon_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64_none_real: +binary-arch_mips64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64el:: binary-arch_mips64el_none binary-arch_mips64el_real +binary-arch_mips64el:: + $(MAKE) -f debian/rules.real install-udeb_mips64el ABINAME='4.9.0-1' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-5kc-malta-di nic-modules-4.9.0-1-5kc-malta-di nic-wireless-modules-4.9.0-1-5kc-malta-di nic-shared-modules-4.9.0-1-5kc-malta-di usb-serial-modules-4.9.0-1-5kc-malta-di ppp-modules-4.9.0-1-5kc-malta-di pata-modules-4.9.0-1-5kc-malta-di cdrom-core-modules-4.9.0-1-5kc-malta-di scsi-core-modules-4.9.0-1-5kc-malta-di scsi-modules-4.9.0-1-5kc-malta-di loop-modules-4.9.0-1-5kc-malta-di btrfs-modules-4.9.0-1-5kc-malta-di ext4-modules-4.9.0-1-5kc-malta-di isofs-modules-4.9.0-1-5kc-malta-di jfs-modules-4.9.0-1-5kc-malta-di ntfs-modules-4.9.0-1-5kc-malta-di xfs-modules-4.9.0-1-5kc-malta-di fat-modules-4.9.0-1-5kc-malta-di hfs-modules-4.9.0-1-5kc-malta-di affs-modules-4.9.0-1-5kc-malta-di minix-modules-4.9.0-1-5kc-malta-di md-modules-4.9.0-1-5kc-malta-di multipath-modules-4.9.0-1-5kc-malta-di usb-modules-4.9.0-1-5kc-malta-di usb-storage-modules-4.9.0-1-5kc-malta-di input-modules-4.9.0-1-5kc-malta-di event-modules-4.9.0-1-5kc-malta-di mouse-modules-4.9.0-1-5kc-malta-di nic-usb-modules-4.9.0-1-5kc-malta-di sata-modules-4.9.0-1-5kc-malta-di i2c-modules-4.9.0-1-5kc-malta-di crc-modules-4.9.0-1-5kc-malta-di crypto-modules-4.9.0-1-5kc-malta-di crypto-dm-modules-4.9.0-1-5kc-malta-di ata-modules-4.9.0-1-5kc-malta-di mmc-core-modules-4.9.0-1-5kc-malta-di mmc-modules-4.9.0-1-5kc-malta-di nbd-modules-4.9.0-1-5kc-malta-di squashfs-modules-4.9.0-1-5kc-malta-di virtio-modules-4.9.0-1-5kc-malta-di sound-modules-4.9.0-1-5kc-malta-di zlib-modules-4.9.0-1-5kc-malta-di udf-modules-4.9.0-1-5kc-malta-di fuse-modules-4.9.0-1-5kc-malta-di kernel-image-4.9.0-1-loongson-3-di nic-modules-4.9.0-1-loongson-3-di nic-wireless-modules-4.9.0-1-loongson-3-di nic-shared-modules-4.9.0-1-loongson-3-di usb-serial-modules-4.9.0-1-loongson-3-di ppp-modules-4.9.0-1-loongson-3-di pata-modules-4.9.0-1-loongson-3-di cdrom-core-modules-4.9.0-1-loongson-3-di firewire-core-modules-4.9.0-1-loongson-3-di scsi-core-modules-4.9.0-1-loongson-3-di scsi-modules-4.9.0-1-loongson-3-di loop-modules-4.9.0-1-loongson-3-di btrfs-modules-4.9.0-1-loongson-3-di ext4-modules-4.9.0-1-loongson-3-di isofs-modules-4.9.0-1-loongson-3-di jfs-modules-4.9.0-1-loongson-3-di ntfs-modules-4.9.0-1-loongson-3-di xfs-modules-4.9.0-1-loongson-3-di fat-modules-4.9.0-1-loongson-3-di hfs-modules-4.9.0-1-loongson-3-di affs-modules-4.9.0-1-loongson-3-di minix-modules-4.9.0-1-loongson-3-di nfs-modules-4.9.0-1-loongson-3-di md-modules-4.9.0-1-loongson-3-di multipath-modules-4.9.0-1-loongson-3-di usb-modules-4.9.0-1-loongson-3-di usb-storage-modules-4.9.0-1-loongson-3-di fb-modules-4.9.0-1-loongson-3-di input-modules-4.9.0-1-loongson-3-di event-modules-4.9.0-1-loongson-3-di nic-usb-modules-4.9.0-1-loongson-3-di sata-modules-4.9.0-1-loongson-3-di crc-modules-4.9.0-1-loongson-3-di crypto-modules-4.9.0-1-loongson-3-di crypto-dm-modules-4.9.0-1-loongson-3-di ata-modules-4.9.0-1-loongson-3-di nbd-modules-4.9.0-1-loongson-3-di squashfs-modules-4.9.0-1-loongson-3-di speakup-modules-4.9.0-1-loongson-3-di virtio-modules-4.9.0-1-loongson-3-di sound-modules-4.9.0-1-loongson-3-di zlib-modules-4.9.0-1-loongson-3-di udf-modules-4.9.0-1-loongson-3-di fuse-modules-4.9.0-1-loongson-3-di kernel-image-4.9.0-1-octeon-di nic-modules-4.9.0-1-octeon-di nic-wireless-modules-4.9.0-1-octeon-di nic-shared-modules-4.9.0-1-octeon-di usb-serial-modules-4.9.0-1-octeon-di ppp-modules-4.9.0-1-octeon-di pata-modules-4.9.0-1-octeon-di cdrom-core-modules-4.9.0-1-octeon-di scsi-core-modules-4.9.0-1-octeon-di scsi-modules-4.9.0-1-octeon-di loop-modules-4.9.0-1-octeon-di btrfs-modules-4.9.0-1-octeon-di ext4-modules-4.9.0-1-octeon-di isofs-modules-4.9.0-1-octeon-di jfs-modules-4.9.0-1-octeon-di ntfs-modules-4.9.0-1-octeon-di xfs-modules-4.9.0-1-octeon-di fat-modules-4.9.0-1-octeon-di hfs-modules-4.9.0-1-octeon-di affs-modules-4.9.0-1-octeon-di minix-modules-4.9.0-1-octeon-di md-modules-4.9.0-1-octeon-di multipath-modules-4.9.0-1-octeon-di usb-modules-4.9.0-1-octeon-di usb-storage-modules-4.9.0-1-octeon-di input-modules-4.9.0-1-octeon-di event-modules-4.9.0-1-octeon-di nic-usb-modules-4.9.0-1-octeon-di sata-modules-4.9.0-1-octeon-di crc-modules-4.9.0-1-octeon-di crypto-modules-4.9.0-1-octeon-di crypto-dm-modules-4.9.0-1-octeon-di nbd-modules-4.9.0-1-octeon-di squashfs-modules-4.9.0-1-octeon-di rtc-modules-4.9.0-1-octeon-di virtio-modules-4.9.0-1-octeon-di sound-modules-4.9.0-1-octeon-di zlib-modules-4.9.0-1-octeon-di udf-modules-4.9.0-1-octeon-di fuse-modules-4.9.0-1-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_mips64el_none: binary-arch_mips64el_none_5kc-malta binary-arch_mips64el_none_loongson-3 binary-arch_mips64el_none_octeon binary-arch_mips64el_none_real +binary-arch_mips64el_none_5kc-malta: binary-arch_mips64el_none_5kc-malta_real +binary-arch_mips64el_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64el_none_loongson-3: binary-arch_mips64el_none_loongson-3_real +binary-arch_mips64el_none_loongson-3_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64el_none_octeon: binary-arch_mips64el_none_octeon_real +binary-arch_mips64el_none_octeon_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips64el_none_real: +binary-arch_mips64el_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips_none: binary-arch_mips_none_4kc-malta binary-arch_mips_none_5kc-malta binary-arch_mips_none_octeon binary-arch_mips_none_real +binary-arch_mips_none_4kc-malta: binary-arch_mips_none_4kc-malta_real +binary-arch_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips_none_5kc-malta: binary-arch_mips_none_5kc-malta_real +binary-arch_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips_none_octeon: binary-arch_mips_none_octeon_real +binary-arch_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mips_none_real: +binary-arch_mips_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsel:: binary-arch_mipsel_none binary-arch_mipsel_real +binary-arch_mipsel:: + $(MAKE) -f debian/rules.real install-udeb_mipsel ABINAME='4.9.0-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-4kc-malta-di nic-modules-4.9.0-1-4kc-malta-di nic-wireless-modules-4.9.0-1-4kc-malta-di nic-shared-modules-4.9.0-1-4kc-malta-di usb-serial-modules-4.9.0-1-4kc-malta-di ppp-modules-4.9.0-1-4kc-malta-di pata-modules-4.9.0-1-4kc-malta-di cdrom-core-modules-4.9.0-1-4kc-malta-di scsi-core-modules-4.9.0-1-4kc-malta-di scsi-modules-4.9.0-1-4kc-malta-di loop-modules-4.9.0-1-4kc-malta-di btrfs-modules-4.9.0-1-4kc-malta-di ext4-modules-4.9.0-1-4kc-malta-di isofs-modules-4.9.0-1-4kc-malta-di jfs-modules-4.9.0-1-4kc-malta-di ntfs-modules-4.9.0-1-4kc-malta-di xfs-modules-4.9.0-1-4kc-malta-di fat-modules-4.9.0-1-4kc-malta-di hfs-modules-4.9.0-1-4kc-malta-di affs-modules-4.9.0-1-4kc-malta-di minix-modules-4.9.0-1-4kc-malta-di md-modules-4.9.0-1-4kc-malta-di multipath-modules-4.9.0-1-4kc-malta-di usb-modules-4.9.0-1-4kc-malta-di usb-storage-modules-4.9.0-1-4kc-malta-di input-modules-4.9.0-1-4kc-malta-di event-modules-4.9.0-1-4kc-malta-di mouse-modules-4.9.0-1-4kc-malta-di nic-usb-modules-4.9.0-1-4kc-malta-di sata-modules-4.9.0-1-4kc-malta-di i2c-modules-4.9.0-1-4kc-malta-di crc-modules-4.9.0-1-4kc-malta-di crypto-modules-4.9.0-1-4kc-malta-di crypto-dm-modules-4.9.0-1-4kc-malta-di ata-modules-4.9.0-1-4kc-malta-di mmc-core-modules-4.9.0-1-4kc-malta-di mmc-modules-4.9.0-1-4kc-malta-di nbd-modules-4.9.0-1-4kc-malta-di squashfs-modules-4.9.0-1-4kc-malta-di virtio-modules-4.9.0-1-4kc-malta-di sound-modules-4.9.0-1-4kc-malta-di zlib-modules-4.9.0-1-4kc-malta-di udf-modules-4.9.0-1-4kc-malta-di fuse-modules-4.9.0-1-4kc-malta-di kernel-image-4.9.0-1-loongson-3-di nic-modules-4.9.0-1-loongson-3-di nic-wireless-modules-4.9.0-1-loongson-3-di nic-shared-modules-4.9.0-1-loongson-3-di usb-serial-modules-4.9.0-1-loongson-3-di ppp-modules-4.9.0-1-loongson-3-di pata-modules-4.9.0-1-loongson-3-di cdrom-core-modules-4.9.0-1-loongson-3-di firewire-core-modules-4.9.0-1-loongson-3-di scsi-core-modules-4.9.0-1-loongson-3-di scsi-modules-4.9.0-1-loongson-3-di loop-modules-4.9.0-1-loongson-3-di btrfs-modules-4.9.0-1-loongson-3-di ext4-modules-4.9.0-1-loongson-3-di isofs-modules-4.9.0-1-loongson-3-di jfs-modules-4.9.0-1-loongson-3-di ntfs-modules-4.9.0-1-loongson-3-di xfs-modules-4.9.0-1-loongson-3-di fat-modules-4.9.0-1-loongson-3-di hfs-modules-4.9.0-1-loongson-3-di affs-modules-4.9.0-1-loongson-3-di minix-modules-4.9.0-1-loongson-3-di nfs-modules-4.9.0-1-loongson-3-di md-modules-4.9.0-1-loongson-3-di multipath-modules-4.9.0-1-loongson-3-di usb-modules-4.9.0-1-loongson-3-di usb-storage-modules-4.9.0-1-loongson-3-di fb-modules-4.9.0-1-loongson-3-di input-modules-4.9.0-1-loongson-3-di event-modules-4.9.0-1-loongson-3-di nic-usb-modules-4.9.0-1-loongson-3-di sata-modules-4.9.0-1-loongson-3-di crc-modules-4.9.0-1-loongson-3-di crypto-modules-4.9.0-1-loongson-3-di crypto-dm-modules-4.9.0-1-loongson-3-di ata-modules-4.9.0-1-loongson-3-di nbd-modules-4.9.0-1-loongson-3-di squashfs-modules-4.9.0-1-loongson-3-di speakup-modules-4.9.0-1-loongson-3-di virtio-modules-4.9.0-1-loongson-3-di sound-modules-4.9.0-1-loongson-3-di zlib-modules-4.9.0-1-loongson-3-di udf-modules-4.9.0-1-loongson-3-di fuse-modules-4.9.0-1-loongson-3-di kernel-image-4.9.0-1-octeon-di nic-modules-4.9.0-1-octeon-di nic-wireless-modules-4.9.0-1-octeon-di nic-shared-modules-4.9.0-1-octeon-di usb-serial-modules-4.9.0-1-octeon-di ppp-modules-4.9.0-1-octeon-di pata-modules-4.9.0-1-octeon-di cdrom-core-modules-4.9.0-1-octeon-di scsi-core-modules-4.9.0-1-octeon-di scsi-modules-4.9.0-1-octeon-di loop-modules-4.9.0-1-octeon-di btrfs-modules-4.9.0-1-octeon-di ext4-modules-4.9.0-1-octeon-di isofs-modules-4.9.0-1-octeon-di jfs-modules-4.9.0-1-octeon-di ntfs-modules-4.9.0-1-octeon-di xfs-modules-4.9.0-1-octeon-di fat-modules-4.9.0-1-octeon-di hfs-modules-4.9.0-1-octeon-di affs-modules-4.9.0-1-octeon-di minix-modules-4.9.0-1-octeon-di md-modules-4.9.0-1-octeon-di multipath-modules-4.9.0-1-octeon-di usb-modules-4.9.0-1-octeon-di usb-storage-modules-4.9.0-1-octeon-di input-modules-4.9.0-1-octeon-di event-modules-4.9.0-1-octeon-di nic-usb-modules-4.9.0-1-octeon-di sata-modules-4.9.0-1-octeon-di crc-modules-4.9.0-1-octeon-di crypto-modules-4.9.0-1-octeon-di crypto-dm-modules-4.9.0-1-octeon-di nbd-modules-4.9.0-1-octeon-di squashfs-modules-4.9.0-1-octeon-di rtc-modules-4.9.0-1-octeon-di virtio-modules-4.9.0-1-octeon-di sound-modules-4.9.0-1-octeon-di zlib-modules-4.9.0-1-octeon-di udf-modules-4.9.0-1-octeon-di fuse-modules-4.9.0-1-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_mipsel_none: binary-arch_mipsel_none_4kc-malta binary-arch_mipsel_none_5kc-malta binary-arch_mipsel_none_loongson-3 binary-arch_mipsel_none_octeon binary-arch_mipsel_none_real +binary-arch_mipsel_none_4kc-malta: binary-arch_mipsel_none_4kc-malta_real +binary-arch_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsel_none_5kc-malta: binary-arch_mipsel_none_5kc-malta_real +binary-arch_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsel_none_loongson-3: binary-arch_mipsel_none_loongson-3_real +binary-arch_mipsel_none_loongson-3_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsel_none_octeon: binary-arch_mipsel_none_octeon_real +binary-arch_mipsel_none_octeon_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsel_none_real: +binary-arch_mipsel_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsn32: binary-arch_mipsn32_real +binary-arch_mipsn32_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mipsn32' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_mipsn32el: binary-arch_mipsn32el_real +binary-arch_mipsn32el_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='mipsn32el' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_or1k: binary-arch_or1k_real +binary-arch_or1k_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='or1k' DO_HEADERS_ALL='False' KERNEL_ARCH='openrisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_powerpc:: binary-arch_powerpc_none binary-arch_powerpc_real +binary-arch_powerpc:: + $(MAKE) -f debian/rules.real install-udeb_powerpc ABINAME='4.9.0-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-powerpc-di nic-modules-4.9.0-1-powerpc-di nic-shared-modules-4.9.0-1-powerpc-di serial-modules-4.9.0-1-powerpc-di usb-serial-modules-4.9.0-1-powerpc-di ppp-modules-4.9.0-1-powerpc-di pata-modules-4.9.0-1-powerpc-di cdrom-core-modules-4.9.0-1-powerpc-di firewire-core-modules-4.9.0-1-powerpc-di scsi-core-modules-4.9.0-1-powerpc-di scsi-modules-4.9.0-1-powerpc-di loop-modules-4.9.0-1-powerpc-di btrfs-modules-4.9.0-1-powerpc-di ext4-modules-4.9.0-1-powerpc-di isofs-modules-4.9.0-1-powerpc-di jfs-modules-4.9.0-1-powerpc-di xfs-modules-4.9.0-1-powerpc-di fat-modules-4.9.0-1-powerpc-di hfs-modules-4.9.0-1-powerpc-di affs-modules-4.9.0-1-powerpc-di md-modules-4.9.0-1-powerpc-di multipath-modules-4.9.0-1-powerpc-di usb-modules-4.9.0-1-powerpc-di usb-storage-modules-4.9.0-1-powerpc-di pcmcia-storage-modules-4.9.0-1-powerpc-di fb-modules-4.9.0-1-powerpc-di input-modules-4.9.0-1-powerpc-di event-modules-4.9.0-1-powerpc-di mouse-modules-4.9.0-1-powerpc-di nic-pcmcia-modules-4.9.0-1-powerpc-di pcmcia-modules-4.9.0-1-powerpc-di sata-modules-4.9.0-1-powerpc-di crc-modules-4.9.0-1-powerpc-di crypto-modules-4.9.0-1-powerpc-di crypto-dm-modules-4.9.0-1-powerpc-di ata-modules-4.9.0-1-powerpc-di nbd-modules-4.9.0-1-powerpc-di squashfs-modules-4.9.0-1-powerpc-di virtio-modules-4.9.0-1-powerpc-di uinput-modules-4.9.0-1-powerpc-di zlib-modules-4.9.0-1-powerpc-di udf-modules-4.9.0-1-powerpc-di fuse-modules-4.9.0-1-powerpc-di kernel-image-4.9.0-1-powerpc64-di nic-modules-4.9.0-1-powerpc64-di nic-shared-modules-4.9.0-1-powerpc64-di serial-modules-4.9.0-1-powerpc64-di usb-serial-modules-4.9.0-1-powerpc64-di ppp-modules-4.9.0-1-powerpc64-di pata-modules-4.9.0-1-powerpc64-di cdrom-core-modules-4.9.0-1-powerpc64-di firewire-core-modules-4.9.0-1-powerpc64-di scsi-core-modules-4.9.0-1-powerpc64-di scsi-modules-4.9.0-1-powerpc64-di loop-modules-4.9.0-1-powerpc64-di btrfs-modules-4.9.0-1-powerpc64-di ext4-modules-4.9.0-1-powerpc64-di isofs-modules-4.9.0-1-powerpc64-di jfs-modules-4.9.0-1-powerpc64-di xfs-modules-4.9.0-1-powerpc64-di fat-modules-4.9.0-1-powerpc64-di hfs-modules-4.9.0-1-powerpc64-di affs-modules-4.9.0-1-powerpc64-di md-modules-4.9.0-1-powerpc64-di multipath-modules-4.9.0-1-powerpc64-di usb-modules-4.9.0-1-powerpc64-di usb-storage-modules-4.9.0-1-powerpc64-di pcmcia-storage-modules-4.9.0-1-powerpc64-di input-modules-4.9.0-1-powerpc64-di event-modules-4.9.0-1-powerpc64-di mouse-modules-4.9.0-1-powerpc64-di nic-pcmcia-modules-4.9.0-1-powerpc64-di pcmcia-modules-4.9.0-1-powerpc64-di sata-modules-4.9.0-1-powerpc64-di crc-modules-4.9.0-1-powerpc64-di crypto-modules-4.9.0-1-powerpc64-di crypto-dm-modules-4.9.0-1-powerpc64-di ata-modules-4.9.0-1-powerpc64-di nbd-modules-4.9.0-1-powerpc64-di squashfs-modules-4.9.0-1-powerpc64-di virtio-modules-4.9.0-1-powerpc64-di uinput-modules-4.9.0-1-powerpc64-di udf-modules-4.9.0-1-powerpc64-di fuse-modules-4.9.0-1-powerpc64-di hypervisor-modules-4.9.0-1-powerpc64-di fancontrol-modules-4.9.0-1-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_powerpc_none: binary-arch_powerpc_none_powerpc binary-arch_powerpc_none_powerpc-smp binary-arch_powerpc_none_powerpc64 binary-arch_powerpc_none_real +binary-arch_powerpc_none_powerpc: binary-arch_powerpc_none_powerpc_real +binary-arch_powerpc_none_powerpc-smp: binary-arch_powerpc_none_powerpc-smp_real +binary-arch_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-smp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_powerpc_none_powerpc64: binary-arch_powerpc_none_powerpc64_real +binary-arch_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_powerpc_none_real: +binary-arch_powerpc_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_powerpcspe: binary-arch_powerpcspe_none binary-arch_powerpcspe_real +binary-arch_powerpcspe_none: binary-arch_powerpcspe_none_powerpcspe binary-arch_powerpcspe_none_real +binary-arch_powerpcspe_none_powerpcspe: binary-arch_powerpcspe_none_powerpcspe_real +binary-arch_powerpcspe_none_powerpcspe_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='powerpcspe' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_powerpcspe_none_real: +binary-arch_powerpcspe_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='powerpcspe' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_ppc64:: binary-arch_ppc64_none binary-arch_ppc64_real +binary-arch_ppc64:: + $(MAKE) -f debian/rules.real install-udeb_ppc64 ABINAME='4.9.0-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-powerpc64-di nic-modules-4.9.0-1-powerpc64-di nic-shared-modules-4.9.0-1-powerpc64-di serial-modules-4.9.0-1-powerpc64-di usb-serial-modules-4.9.0-1-powerpc64-di ppp-modules-4.9.0-1-powerpc64-di pata-modules-4.9.0-1-powerpc64-di cdrom-core-modules-4.9.0-1-powerpc64-di firewire-core-modules-4.9.0-1-powerpc64-di scsi-core-modules-4.9.0-1-powerpc64-di scsi-modules-4.9.0-1-powerpc64-di loop-modules-4.9.0-1-powerpc64-di btrfs-modules-4.9.0-1-powerpc64-di ext4-modules-4.9.0-1-powerpc64-di isofs-modules-4.9.0-1-powerpc64-di jfs-modules-4.9.0-1-powerpc64-di xfs-modules-4.9.0-1-powerpc64-di fat-modules-4.9.0-1-powerpc64-di hfs-modules-4.9.0-1-powerpc64-di affs-modules-4.9.0-1-powerpc64-di md-modules-4.9.0-1-powerpc64-di multipath-modules-4.9.0-1-powerpc64-di usb-modules-4.9.0-1-powerpc64-di usb-storage-modules-4.9.0-1-powerpc64-di pcmcia-storage-modules-4.9.0-1-powerpc64-di input-modules-4.9.0-1-powerpc64-di event-modules-4.9.0-1-powerpc64-di mouse-modules-4.9.0-1-powerpc64-di nic-pcmcia-modules-4.9.0-1-powerpc64-di pcmcia-modules-4.9.0-1-powerpc64-di sata-modules-4.9.0-1-powerpc64-di crc-modules-4.9.0-1-powerpc64-di crypto-modules-4.9.0-1-powerpc64-di crypto-dm-modules-4.9.0-1-powerpc64-di ata-modules-4.9.0-1-powerpc64-di nbd-modules-4.9.0-1-powerpc64-di squashfs-modules-4.9.0-1-powerpc64-di virtio-modules-4.9.0-1-powerpc64-di uinput-modules-4.9.0-1-powerpc64-di udf-modules-4.9.0-1-powerpc64-di fuse-modules-4.9.0-1-powerpc64-di hypervisor-modules-4.9.0-1-powerpc64-di fancontrol-modules-4.9.0-1-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_ppc64_none: binary-arch_ppc64_none_powerpc64 binary-arch_ppc64_none_real +binary-arch_ppc64_none_powerpc64: binary-arch_ppc64_none_powerpc64_real +binary-arch_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_ppc64_none_real: +binary-arch_ppc64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_ppc64el:: binary-arch_ppc64el_none binary-arch_ppc64el_real +binary-arch_ppc64el:: + $(MAKE) -f debian/rules.real install-udeb_ppc64el ABINAME='4.9.0-1' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-powerpc64le-di nic-modules-4.9.0-1-powerpc64le-di nic-shared-modules-4.9.0-1-powerpc64le-di serial-modules-4.9.0-1-powerpc64le-di usb-serial-modules-4.9.0-1-powerpc64le-di ppp-modules-4.9.0-1-powerpc64le-di cdrom-core-modules-4.9.0-1-powerpc64le-di firewire-core-modules-4.9.0-1-powerpc64le-di scsi-core-modules-4.9.0-1-powerpc64le-di scsi-modules-4.9.0-1-powerpc64le-di loop-modules-4.9.0-1-powerpc64le-di btrfs-modules-4.9.0-1-powerpc64le-di ext4-modules-4.9.0-1-powerpc64le-di isofs-modules-4.9.0-1-powerpc64le-di jfs-modules-4.9.0-1-powerpc64le-di xfs-modules-4.9.0-1-powerpc64le-di fat-modules-4.9.0-1-powerpc64le-di md-modules-4.9.0-1-powerpc64le-di multipath-modules-4.9.0-1-powerpc64le-di usb-modules-4.9.0-1-powerpc64le-di usb-storage-modules-4.9.0-1-powerpc64le-di input-modules-4.9.0-1-powerpc64le-di event-modules-4.9.0-1-powerpc64le-di mouse-modules-4.9.0-1-powerpc64le-di sata-modules-4.9.0-1-powerpc64le-di crc-modules-4.9.0-1-powerpc64le-di crypto-modules-4.9.0-1-powerpc64le-di crypto-dm-modules-4.9.0-1-powerpc64le-di ata-modules-4.9.0-1-powerpc64le-di nbd-modules-4.9.0-1-powerpc64le-di squashfs-modules-4.9.0-1-powerpc64le-di virtio-modules-4.9.0-1-powerpc64le-di uinput-modules-4.9.0-1-powerpc64le-di udf-modules-4.9.0-1-powerpc64le-di fuse-modules-4.9.0-1-powerpc64le-di hypervisor-modules-4.9.0-1-powerpc64le-di fancontrol-modules-4.9.0-1-powerpc64le-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_ppc64el_none: binary-arch_ppc64el_none_powerpc64le binary-arch_ppc64el_none_real +binary-arch_ppc64el_none_powerpc64le: binary-arch_ppc64el_none_powerpc64le_real +binary-arch_ppc64el_none_powerpc64le_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64le-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_ppc64el_none_real: +binary-arch_ppc64el_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_s390: binary-arch_s390_extra binary-arch_s390_real +binary-arch_s390_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='s390' DH_OPTIONS='-plinux-compiler-gcc-6-s390' +binary-arch_s390_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='s390' DO_HEADERS_ALL='False' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_s390x:: binary-arch_s390x_extra binary-arch_s390x_none binary-arch_s390x_real +binary-arch_s390x:: + $(MAKE) -f debian/rules.real install-udeb_s390x ABINAME='4.9.0-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-s390x-di nic-modules-4.9.0-1-s390x-di scsi-core-modules-4.9.0-1-s390x-di scsi-modules-4.9.0-1-s390x-di loop-modules-4.9.0-1-s390x-di btrfs-modules-4.9.0-1-s390x-di ext4-modules-4.9.0-1-s390x-di isofs-modules-4.9.0-1-s390x-di xfs-modules-4.9.0-1-s390x-di fat-modules-4.9.0-1-s390x-di md-modules-4.9.0-1-s390x-di multipath-modules-4.9.0-1-s390x-di crc-modules-4.9.0-1-s390x-di crypto-modules-4.9.0-1-s390x-di crypto-dm-modules-4.9.0-1-s390x-di nbd-modules-4.9.0-1-s390x-di virtio-modules-4.9.0-1-s390x-di zlib-modules-4.9.0-1-s390x-di udf-modules-4.9.0-1-s390x-di fuse-modules-4.9.0-1-s390x-di dasd-modules-4.9.0-1-s390x-di dasd-extra-modules-4.9.0-1-s390x-di' UDEB_UNSIGNED_TEST_BUILD=True +binary-arch_s390x_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='s390x' DH_OPTIONS='-plinux-compiler-gcc-6-s390' +binary-arch_s390x_none: binary-arch_s390x_none_real binary-arch_s390x_none_s390x +binary-arch_s390x_none_real: +binary-arch_s390x_none_s390x: binary-arch_s390x_none_s390x_real +binary-arch_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='s390x' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-s390x-unsigned' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +binary-arch_s390x_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sh3: binary-arch_sh3_real +binary-arch_sh3_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='sh3' DO_HEADERS_ALL='False' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sh4:: binary-arch_sh4_none binary-arch_sh4_real +binary-arch_sh4:: + $(MAKE) -f debian/rules.real install-udeb_sh4 ABINAME='4.9.0-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-sh7751r-di nic-modules-4.9.0-1-sh7751r-di usb-serial-modules-4.9.0-1-sh7751r-di ppp-modules-4.9.0-1-sh7751r-di pata-modules-4.9.0-1-sh7751r-di cdrom-core-modules-4.9.0-1-sh7751r-di firewire-core-modules-4.9.0-1-sh7751r-di loop-modules-4.9.0-1-sh7751r-di btrfs-modules-4.9.0-1-sh7751r-di ext4-modules-4.9.0-1-sh7751r-di isofs-modules-4.9.0-1-sh7751r-di jfs-modules-4.9.0-1-sh7751r-di xfs-modules-4.9.0-1-sh7751r-di fat-modules-4.9.0-1-sh7751r-di minix-modules-4.9.0-1-sh7751r-di md-modules-4.9.0-1-sh7751r-di multipath-modules-4.9.0-1-sh7751r-di usb-storage-modules-4.9.0-1-sh7751r-di nic-usb-modules-4.9.0-1-sh7751r-di sata-modules-4.9.0-1-sh7751r-di i2c-modules-4.9.0-1-sh7751r-di crc-modules-4.9.0-1-sh7751r-di crypto-modules-4.9.0-1-sh7751r-di crypto-dm-modules-4.9.0-1-sh7751r-di nbd-modules-4.9.0-1-sh7751r-di squashfs-modules-4.9.0-1-sh7751r-di speakup-modules-4.9.0-1-sh7751r-di virtio-modules-4.9.0-1-sh7751r-di sound-modules-4.9.0-1-sh7751r-di zlib-modules-4.9.0-1-sh7751r-di udf-modules-4.9.0-1-sh7751r-di fuse-modules-4.9.0-1-sh7751r-di kernel-image-4.9.0-1-sh7785lcr-di nic-modules-4.9.0-1-sh7785lcr-di usb-serial-modules-4.9.0-1-sh7785lcr-di ppp-modules-4.9.0-1-sh7785lcr-di pata-modules-4.9.0-1-sh7785lcr-di cdrom-core-modules-4.9.0-1-sh7785lcr-di firewire-core-modules-4.9.0-1-sh7785lcr-di loop-modules-4.9.0-1-sh7785lcr-di btrfs-modules-4.9.0-1-sh7785lcr-di ext4-modules-4.9.0-1-sh7785lcr-di isofs-modules-4.9.0-1-sh7785lcr-di jfs-modules-4.9.0-1-sh7785lcr-di xfs-modules-4.9.0-1-sh7785lcr-di fat-modules-4.9.0-1-sh7785lcr-di minix-modules-4.9.0-1-sh7785lcr-di md-modules-4.9.0-1-sh7785lcr-di multipath-modules-4.9.0-1-sh7785lcr-di nic-usb-modules-4.9.0-1-sh7785lcr-di sata-modules-4.9.0-1-sh7785lcr-di crc-modules-4.9.0-1-sh7785lcr-di crypto-modules-4.9.0-1-sh7785lcr-di crypto-dm-modules-4.9.0-1-sh7785lcr-di nbd-modules-4.9.0-1-sh7785lcr-di squashfs-modules-4.9.0-1-sh7785lcr-di speakup-modules-4.9.0-1-sh7785lcr-di sound-modules-4.9.0-1-sh7785lcr-di zlib-modules-4.9.0-1-sh7785lcr-di udf-modules-4.9.0-1-sh7785lcr-di fuse-modules-4.9.0-1-sh7785lcr-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_sh4_none: binary-arch_sh4_none_real binary-arch_sh4_none_sh7751r binary-arch_sh4_none_sh7785lcr +binary-arch_sh4_none_real: +binary-arch_sh4_none_sh7751r: binary-arch_sh4_none_sh7751r_real +binary-arch_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sh4_none_sh7785lcr: binary-arch_sh4_none_sh7785lcr_real +binary-arch_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sh4_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sparc: binary-arch_sparc_real +binary-arch_sparc64:: binary-arch_sparc64_none binary-arch_sparc64_real +binary-arch_sparc64:: + $(MAKE) -f debian/rules.real install-udeb_sparc64 ABINAME='4.9.0-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' PACKAGE_NAMES='kernel-image-4.9.0-1-sparc64-di nic-modules-4.9.0-1-sparc64-di ppp-modules-4.9.0-1-sparc64-di pata-modules-4.9.0-1-sparc64-di cdrom-core-modules-4.9.0-1-sparc64-di scsi-core-modules-4.9.0-1-sparc64-di scsi-modules-4.9.0-1-sparc64-di btrfs-modules-4.9.0-1-sparc64-di ext4-modules-4.9.0-1-sparc64-di isofs-modules-4.9.0-1-sparc64-di jfs-modules-4.9.0-1-sparc64-di xfs-modules-4.9.0-1-sparc64-di fat-modules-4.9.0-1-sparc64-di md-modules-4.9.0-1-sparc64-di multipath-modules-4.9.0-1-sparc64-di usb-modules-4.9.0-1-sparc64-di usb-storage-modules-4.9.0-1-sparc64-di input-modules-4.9.0-1-sparc64-di sata-modules-4.9.0-1-sparc64-di crc-modules-4.9.0-1-sparc64-di crypto-modules-4.9.0-1-sparc64-di crypto-dm-modules-4.9.0-1-sparc64-di ata-modules-4.9.0-1-sparc64-di nbd-modules-4.9.0-1-sparc64-di squashfs-modules-4.9.0-1-sparc64-di virtio-modules-4.9.0-1-sparc64-di zlib-modules-4.9.0-1-sparc64-di udf-modules-4.9.0-1-sparc64-di fuse-modules-4.9.0-1-sparc64-di' UDEB_UNSIGNED_TEST_BUILD=False +binary-arch_sparc64_none: binary-arch_sparc64_none_real binary-arch_sparc64_none_sparc64 binary-arch_sparc64_none_sparc64-smp +binary-arch_sparc64_none_real: +binary-arch_sparc64_none_sparc64: binary-arch_sparc64_none_sparc64_real +binary-arch_sparc64_none_sparc64-smp: binary-arch_sparc64_none_sparc64-smp_real +binary-arch_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sparc64_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_sparc_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='sparc' DO_HEADERS_ALL='False' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_tilegx: binary-arch_tilegx_real +binary-arch_tilegx_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='tilegx' DO_HEADERS_ALL='False' KERNEL_ARCH='tile' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-arch_x32: binary-arch_x32_extra binary-arch_x32_real +binary-arch_x32_extra:: + $(MAKE) -f debian/rules.real install-dummy ARCH='x32' DH_OPTIONS='-plinux-compiler-gcc-6-x86' +binary-arch_x32_real:: + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='4.9.0-1' ARCH='x32' DO_HEADERS_ALL='False' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-indep:: binary-indep_none binary-indep_rt setup +binary-indep:: + $(MAKE) -f debian/rules.real binary-indep ABINAME='4.9.0-1' ALL_FEATURESETS='none rt' ALL_TRIPLETS='alpha_none_alpha-generic alpha_none_alpha-smp amd64_none_amd64 amd64_rt_amd64 arm64_none_arm64 armel_none_marvell armhf_none_armmp armhf_none_armmp-lpae hppa_none_parisc hppa_none_parisc64-smp i386_none_686 i386_none_686-pae i386_rt_686-pae m68k_none_m68k mips_none_4kc-malta mips_none_5kc-malta mips_none_octeon mipsel_none_4kc-malta mipsel_none_5kc-malta mipsel_none_loongson-3 mipsel_none_octeon mips64_none_5kc-malta mips64_none_octeon mips64el_none_5kc-malta mips64el_none_loongson-3 mips64el_none_octeon powerpc_none_powerpc powerpc_none_powerpc-smp powerpc_none_powerpc64 powerpcspe_none_powerpcspe ppc64_none_powerpc64 ppc64el_none_powerpc64le s390x_none_s390x sh4_none_sh7751r sh4_none_sh7785lcr sparc64_none_sparc64 sparc64_none_sparc64-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-indep_none: binary-indep_none_real +binary-indep_none_real:: + $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='4.9.0-1' ALL_KERNEL_ARCHES='alpha arm arm64 m68k mips parisc powerpc s390 sh sparc x86' FEATURESET='none' LOCALVERSION='' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-indep_rt: binary-indep_rt_real +binary-indep_rt_real:: + $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='4.9.0-1' ALL_KERNEL_ARCHES='x86' FEATURESET='rt' LOCALVERSION='-rt' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_alpha:: source_none_real +binary-libc-dev_alpha:: + $(MAKE) -f debian/rules.real install-libc-dev_alpha ABINAME='4.9.0-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_amd64:: source_none_real +binary-libc-dev_amd64:: + $(MAKE) -f debian/rules.real install-libc-dev_amd64 ABINAME='4.9.0-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_arm64:: source_none_real +binary-libc-dev_arm64:: + $(MAKE) -f debian/rules.real install-libc-dev_arm64 ABINAME='4.9.0-1' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_armel:: source_none_real +binary-libc-dev_armel:: + $(MAKE) -f debian/rules.real install-libc-dev_armel ABINAME='4.9.0-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_armhf:: source_none_real +binary-libc-dev_armhf:: + $(MAKE) -f debian/rules.real install-libc-dev_armhf ABINAME='4.9.0-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_hppa:: source_none_real +binary-libc-dev_hppa:: + $(MAKE) -f debian/rules.real install-libc-dev_hppa ABINAME='4.9.0-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_i386:: source_none_real +binary-libc-dev_i386:: + $(MAKE) -f debian/rules.real install-libc-dev_i386 ABINAME='4.9.0-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_m68k:: source_none_real +binary-libc-dev_m68k:: + $(MAKE) -f debian/rules.real install-libc-dev_m68k ABINAME='4.9.0-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mips:: source_none_real +binary-libc-dev_mips:: + $(MAKE) -f debian/rules.real install-libc-dev_mips ABINAME='4.9.0-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mips64:: source_none_real +binary-libc-dev_mips64:: + $(MAKE) -f debian/rules.real install-libc-dev_mips64 ABINAME='4.9.0-1' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mips64el:: source_none_real +binary-libc-dev_mips64el:: + $(MAKE) -f debian/rules.real install-libc-dev_mips64el ABINAME='4.9.0-1' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mipsel:: source_none_real +binary-libc-dev_mipsel:: + $(MAKE) -f debian/rules.real install-libc-dev_mipsel ABINAME='4.9.0-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mipsn32:: source_none_real +binary-libc-dev_mipsn32:: + $(MAKE) -f debian/rules.real install-libc-dev_mipsn32 ABINAME='4.9.0-1' ARCH='mipsn32' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_mipsn32el:: source_none_real +binary-libc-dev_mipsn32el:: + $(MAKE) -f debian/rules.real install-libc-dev_mipsn32el ABINAME='4.9.0-1' ARCH='mipsn32el' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_or1k:: source_none_real +binary-libc-dev_or1k:: + $(MAKE) -f debian/rules.real install-libc-dev_or1k ABINAME='4.9.0-1' ARCH='or1k' DO_HEADERS_ALL='False' KERNEL_ARCH='openrisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_powerpc:: source_none_real +binary-libc-dev_powerpc:: + $(MAKE) -f debian/rules.real install-libc-dev_powerpc ABINAME='4.9.0-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_powerpcspe:: source_none_real +binary-libc-dev_powerpcspe:: + $(MAKE) -f debian/rules.real install-libc-dev_powerpcspe ABINAME='4.9.0-1' ARCH='powerpcspe' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_ppc64:: source_none_real +binary-libc-dev_ppc64:: + $(MAKE) -f debian/rules.real install-libc-dev_ppc64 ABINAME='4.9.0-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_ppc64el:: source_none_real +binary-libc-dev_ppc64el:: + $(MAKE) -f debian/rules.real install-libc-dev_ppc64el ABINAME='4.9.0-1' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_s390:: source_none_real +binary-libc-dev_s390:: + $(MAKE) -f debian/rules.real install-libc-dev_s390 ABINAME='4.9.0-1' ARCH='s390' DO_HEADERS_ALL='False' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_s390x:: source_none_real +binary-libc-dev_s390x:: + $(MAKE) -f debian/rules.real install-libc-dev_s390x ABINAME='4.9.0-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_sh3:: source_none_real +binary-libc-dev_sh3:: + $(MAKE) -f debian/rules.real install-libc-dev_sh3 ABINAME='4.9.0-1' ARCH='sh3' DO_HEADERS_ALL='False' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_sh4:: source_none_real +binary-libc-dev_sh4:: + $(MAKE) -f debian/rules.real install-libc-dev_sh4 ABINAME='4.9.0-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_sparc:: source_none_real +binary-libc-dev_sparc:: + $(MAKE) -f debian/rules.real install-libc-dev_sparc ABINAME='4.9.0-1' ARCH='sparc' DO_HEADERS_ALL='False' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_sparc64:: source_none_real +binary-libc-dev_sparc64:: + $(MAKE) -f debian/rules.real install-libc-dev_sparc64 ABINAME='4.9.0-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_tilegx:: source_none_real +binary-libc-dev_tilegx:: + $(MAKE) -f debian/rules.real install-libc-dev_tilegx ABINAME='4.9.0-1' ARCH='tilegx' DO_HEADERS_ALL='False' KERNEL_ARCH='tile' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +binary-libc-dev_x32:: source_none_real +binary-libc-dev_x32:: + $(MAKE) -f debian/rules.real install-libc-dev_x32 ABINAME='4.9.0-1' ARCH='x32' DO_HEADERS_ALL='False' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch: build-arch_alpha build-arch_amd64 build-arch_arm64 build-arch_armel build-arch_armhf build-arch_hppa build-arch_i386 build-arch_m68k build-arch_mips build-arch_mips64 build-arch_mips64el build-arch_mipsel build-arch_mipsn32 build-arch_mipsn32el build-arch_or1k build-arch_powerpc build-arch_powerpcspe build-arch_ppc64 build-arch_ppc64el build-arch_s390 build-arch_s390x build-arch_sh3 build-arch_sh4 build-arch_sparc build-arch_sparc64 build-arch_tilegx build-arch_x32 +build-arch_alpha: build-arch_alpha_none build-arch_alpha_real +build-arch_alpha_none: build-arch_alpha_none_alpha-generic build-arch_alpha_none_alpha-smp build-arch_alpha_none_real +build-arch_alpha_none_alpha-generic: build-arch_alpha_none_alpha-generic_real +build-arch_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_alpha_none_alpha-smp: build-arch_alpha_none_alpha-smp_real +build-arch_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_alpha_none_real: +build-arch_alpha_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_amd64: build-arch_amd64_none build-arch_amd64_real build-arch_amd64_rt +build-arch_amd64_none: build-arch_amd64_none_amd64 build-arch_amd64_none_real +build-arch_amd64_none_amd64: build-arch_amd64_none_amd64_real +build-arch_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_amd64_none_real: +build-arch_amd64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_amd64_rt: build-arch_amd64_rt_amd64 build-arch_amd64_rt_real +build-arch_amd64_rt_amd64: build-arch_amd64_rt_amd64_real +build-arch_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_amd64_rt_real: +build-arch_arm64: build-arch_arm64_none build-arch_arm64_real +build-arch_arm64_none: build-arch_arm64_none_arm64 build-arch_arm64_none_real +build-arch_arm64_none_arm64: build-arch_arm64_none_arm64_real +build-arch_arm64_none_arm64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='arm64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_arm64_none_real: +build-arch_arm64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_armel: build-arch_armel_none build-arch_armel_real +build-arch_armel_none: build-arch_armel_none_marvell build-arch_armel_none_real +build-arch_armel_none_marvell: build-arch_armel_none_marvell_real +build-arch_armel_none_marvell_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='armel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_armel_none_real: +build-arch_armel_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_armhf: build-arch_armhf_none build-arch_armhf_real +build-arch_armhf_none: build-arch_armhf_none_armmp build-arch_armhf_none_armmp-lpae build-arch_armhf_none_real +build-arch_armhf_none_armmp: build-arch_armhf_none_armmp_real +build-arch_armhf_none_armmp-lpae: build-arch_armhf_none_armmp-lpae_real +build-arch_armhf_none_armmp-lpae_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-lpae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_armhf_none_armmp_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_armhf_none_real: +build-arch_armhf_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_hppa: build-arch_hppa_none build-arch_hppa_real +build-arch_hppa_none: build-arch_hppa_none_parisc build-arch_hppa_none_parisc64-smp build-arch_hppa_none_real +build-arch_hppa_none_parisc: build-arch_hppa_none_parisc_real +build-arch_hppa_none_parisc64-smp: build-arch_hppa_none_parisc64-smp_real +build-arch_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_hppa_none_real: +build-arch_hppa_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_i386: build-arch_i386_none build-arch_i386_real build-arch_i386_rt +build-arch_i386_none: build-arch_i386_none_686 build-arch_i386_none_686-pae build-arch_i386_none_real +build-arch_i386_none_686: build-arch_i386_none_686_real +build-arch_i386_none_686-pae: build-arch_i386_none_686-pae_real +build-arch_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_i386_none_686_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_i386_none_real: +build-arch_i386_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_i386_rt: build-arch_i386_rt_686-pae build-arch_i386_rt_real +build-arch_i386_rt_686-pae: build-arch_i386_rt_686-pae_real +build-arch_i386_rt_686-pae_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_i386_rt_real: +build-arch_m68k: build-arch_m68k_none build-arch_m68k_real +build-arch_m68k_none: build-arch_m68k_none_m68k build-arch_m68k_none_real +build-arch_m68k_none_m68k: build-arch_m68k_none_m68k_real +build-arch_m68k_none_m68k_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_m68k_none_real: +build-arch_m68k_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips: build-arch_mips_none build-arch_mips_real +build-arch_mips64: build-arch_mips64_none build-arch_mips64_real +build-arch_mips64_none: build-arch_mips64_none_5kc-malta build-arch_mips64_none_octeon build-arch_mips64_none_real +build-arch_mips64_none_5kc-malta: build-arch_mips64_none_5kc-malta_real +build-arch_mips64_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64_none_octeon: build-arch_mips64_none_octeon_real +build-arch_mips64_none_octeon_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64_none_real: +build-arch_mips64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64el: build-arch_mips64el_none build-arch_mips64el_real +build-arch_mips64el_none: build-arch_mips64el_none_5kc-malta build-arch_mips64el_none_loongson-3 build-arch_mips64el_none_octeon build-arch_mips64el_none_real +build-arch_mips64el_none_5kc-malta: build-arch_mips64el_none_5kc-malta_real +build-arch_mips64el_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64el_none_loongson-3: build-arch_mips64el_none_loongson-3_real +build-arch_mips64el_none_loongson-3_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64el_none_octeon: build-arch_mips64el_none_octeon_real +build-arch_mips64el_none_octeon_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips64el_none_real: +build-arch_mips64el_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips_none: build-arch_mips_none_4kc-malta build-arch_mips_none_5kc-malta build-arch_mips_none_octeon build-arch_mips_none_real +build-arch_mips_none_4kc-malta: build-arch_mips_none_4kc-malta_real +build-arch_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips_none_5kc-malta: build-arch_mips_none_5kc-malta_real +build-arch_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips_none_octeon: build-arch_mips_none_octeon_real +build-arch_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mips_none_real: +build-arch_mips_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsel: build-arch_mipsel_none build-arch_mipsel_real +build-arch_mipsel_none: build-arch_mipsel_none_4kc-malta build-arch_mipsel_none_5kc-malta build-arch_mipsel_none_loongson-3 build-arch_mipsel_none_octeon build-arch_mipsel_none_real +build-arch_mipsel_none_4kc-malta: build-arch_mipsel_none_4kc-malta_real +build-arch_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsel_none_5kc-malta: build-arch_mipsel_none_5kc-malta_real +build-arch_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsel_none_loongson-3: build-arch_mipsel_none_loongson-3_real +build-arch_mipsel_none_loongson-3_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsel_none_octeon: build-arch_mipsel_none_octeon_real +build-arch_mipsel_none_octeon_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsel_none_real: +build-arch_mipsel_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsn32: build-arch_mipsn32_real +build-arch_mipsn32_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mipsn32' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_mipsn32el: build-arch_mipsn32el_real +build-arch_mipsn32el_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='mipsn32el' DO_HEADERS_ALL='False' KERNEL_ARCH='mips' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_or1k: build-arch_or1k_real +build-arch_or1k_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='or1k' DO_HEADERS_ALL='False' KERNEL_ARCH='openrisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_powerpc: build-arch_powerpc_none build-arch_powerpc_real +build-arch_powerpc_none: build-arch_powerpc_none_powerpc build-arch_powerpc_none_powerpc-smp build-arch_powerpc_none_powerpc64 build-arch_powerpc_none_real +build-arch_powerpc_none_powerpc: build-arch_powerpc_none_powerpc_real +build-arch_powerpc_none_powerpc-smp: build-arch_powerpc_none_powerpc-smp_real +build-arch_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-smp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_powerpc_none_powerpc64: build-arch_powerpc_none_powerpc64_real +build-arch_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_powerpc_none_real: +build-arch_powerpc_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_powerpcspe: build-arch_powerpcspe_none build-arch_powerpcspe_real +build-arch_powerpcspe_none: build-arch_powerpcspe_none_powerpcspe build-arch_powerpcspe_none_real +build-arch_powerpcspe_none_powerpcspe: build-arch_powerpcspe_none_powerpcspe_real +build-arch_powerpcspe_none_powerpcspe_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='powerpcspe' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_powerpcspe_none_real: +build-arch_powerpcspe_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='powerpcspe' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_ppc64: build-arch_ppc64_none build-arch_ppc64_real +build-arch_ppc64_none: build-arch_ppc64_none_powerpc64 build-arch_ppc64_none_real +build-arch_ppc64_none_powerpc64: build-arch_ppc64_none_powerpc64_real +build-arch_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_ppc64_none_real: +build-arch_ppc64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_ppc64el: build-arch_ppc64el_none build-arch_ppc64el_real +build-arch_ppc64el_none: build-arch_ppc64el_none_powerpc64le build-arch_ppc64el_none_real +build-arch_ppc64el_none_powerpc64le: build-arch_ppc64el_none_powerpc64le_real +build-arch_ppc64el_none_powerpc64le_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64le-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_ppc64el_none_real: +build-arch_ppc64el_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_s390: build-arch_s390_real +build-arch_s390_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='s390' DO_HEADERS_ALL='False' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_s390x: build-arch_s390x_none build-arch_s390x_real +build-arch_s390x_none: build-arch_s390x_none_real build-arch_s390x_none_s390x +build-arch_s390x_none_real: +build-arch_s390x_none_s390x: build-arch_s390x_none_s390x_real +build-arch_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='s390x' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-s390x-unsigned' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +build-arch_s390x_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sh3: build-arch_sh3_real +build-arch_sh3_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='sh3' DO_HEADERS_ALL='False' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sh4: build-arch_sh4_none build-arch_sh4_real +build-arch_sh4_none: build-arch_sh4_none_real build-arch_sh4_none_sh7751r build-arch_sh4_none_sh7785lcr +build-arch_sh4_none_real: +build-arch_sh4_none_sh7751r: build-arch_sh4_none_sh7751r_real +build-arch_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sh4_none_sh7785lcr: build-arch_sh4_none_sh7785lcr_real +build-arch_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sh4_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sparc: build-arch_sparc_real +build-arch_sparc64: build-arch_sparc64_none build-arch_sparc64_real +build-arch_sparc64_none: build-arch_sparc64_none_real build-arch_sparc64_none_sparc64 build-arch_sparc64_none_sparc64-smp +build-arch_sparc64_none_real: +build-arch_sparc64_none_sparc64: build-arch_sparc64_none_sparc64_real +build-arch_sparc64_none_sparc64-smp: build-arch_sparc64_none_sparc64-smp_real +build-arch_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sparc64_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_sparc_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='sparc' DO_HEADERS_ALL='False' KERNEL_ARCH='sparc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_tilegx: build-arch_tilegx_real +build-arch_tilegx_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='tilegx' DO_HEADERS_ALL='False' KERNEL_ARCH='tile' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-arch_x32: build-arch_x32_real +build-arch_x32_real:: + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='4.9.0-1' ARCH='x32' DO_HEADERS_ALL='False' KERNEL_ARCH='x86' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-indep:: build-indep_none build-indep_rt +build-indep:: + $(MAKE) -f debian/rules.real build-indep ABINAME='4.9.0-1' ALL_FEATURESETS='none rt' ALL_TRIPLETS='alpha_none_alpha-generic alpha_none_alpha-smp amd64_none_amd64 amd64_rt_amd64 arm64_none_arm64 armel_none_marvell armhf_none_armmp armhf_none_armmp-lpae hppa_none_parisc hppa_none_parisc64-smp i386_none_686 i386_none_686-pae i386_rt_686-pae m68k_none_m68k mips_none_4kc-malta mips_none_5kc-malta mips_none_octeon mipsel_none_4kc-malta mipsel_none_5kc-malta mipsel_none_loongson-3 mipsel_none_octeon mips64_none_5kc-malta mips64_none_octeon mips64el_none_5kc-malta mips64el_none_loongson-3 mips64el_none_octeon powerpc_none_powerpc powerpc_none_powerpc-smp powerpc_none_powerpc64 powerpcspe_none_powerpcspe ppc64_none_powerpc64 ppc64el_none_powerpc64le s390x_none_s390x sh4_none_sh7751r sh4_none_sh7785lcr sparc64_none_sparc64 sparc64_none_sparc64-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +build-indep_none: build-indep_none_real +build-indep_none_real: +build-indep_rt: build-indep_rt_real +build-indep_rt_real: +setup: setup_alpha setup_amd64 setup_arm64 setup_armel setup_armhf setup_hppa setup_i386 setup_m68k setup_mips setup_mips64 setup_mips64el setup_mipsel setup_mipsn32 setup_mipsn32el setup_none setup_or1k setup_powerpc setup_powerpcspe setup_ppc64 setup_ppc64el setup_rt setup_s390 setup_s390x setup_sh3 setup_sh4 setup_sparc setup_sparc64 setup_tilegx setup_x32 +setup_alpha: setup_alpha_none setup_alpha_real +setup_alpha_none: setup_alpha_none_alpha-generic setup_alpha_none_alpha-smp setup_alpha_none_real +setup_alpha_none_alpha-generic: setup_alpha_none_alpha-generic_real +setup_alpha_none_alpha-generic_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_alpha_none_alpha-smp: setup_alpha_none_alpha-smp_real +setup_alpha_none_alpha-smp_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='alpha' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_alpha_none_real: +setup_alpha_real: +setup_amd64: setup_amd64_none setup_amd64_real setup_amd64_rt +setup_amd64_none: setup_amd64_none_amd64 setup_amd64_none_real +setup_amd64_none_amd64: setup_amd64_none_amd64_real +setup_amd64_none_amd64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_amd64_none_real: +setup_amd64_real: +setup_amd64_rt: setup_amd64_rt_amd64 setup_amd64_rt_real +setup_amd64_rt_amd64: setup_amd64_rt_amd64_real +setup_amd64_rt_amd64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='amd64' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_amd64_rt_real: +setup_arm64: setup_arm64_none setup_arm64_real +setup_arm64_none: setup_arm64_none_arm64 setup_arm64_none_real +setup_arm64_none_arm64: setup_arm64_none_arm64_real +setup_arm64_none_arm64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='arm64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_arm64_none_real: +setup_arm64_real: +setup_armel: setup_armel_none setup_armel_real +setup_armel_none: setup_armel_none_marvell setup_armel_none_real +setup_armel_none_marvell: setup_armel_none_marvell_real +setup_armel_none_marvell_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='armel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_armel_none_real: +setup_armel_real: +setup_armhf: setup_armhf_none setup_armhf_real +setup_armhf_none: setup_armhf_none_armmp setup_armhf_none_armmp-lpae setup_armhf_none_real +setup_armhf_none_armmp: setup_armhf_none_armmp_real +setup_armhf_none_armmp-lpae: setup_armhf_none_armmp-lpae_real +setup_armhf_none_armmp-lpae_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-lpae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_armhf_none_armmp_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='armhf' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-armmp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_armhf_none_real: +setup_armhf_real: +setup_hppa: setup_hppa_none setup_hppa_real +setup_hppa_none: setup_hppa_none_parisc setup_hppa_none_parisc64-smp setup_hppa_none_real +setup_hppa_none_parisc: setup_hppa_none_parisc_real +setup_hppa_none_parisc64-smp: setup_hppa_none_parisc64-smp_real +setup_hppa_none_parisc64-smp_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' CFLAGS_KERNEL='-fno-cse-follow-jumps' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc64-smp' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64-smp' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_hppa_none_parisc_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='hppa' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_hppa_none_real: +setup_hppa_real: +setup_i386: setup_i386_none setup_i386_real setup_i386_rt +setup_i386_none: setup_i386_none_686 setup_i386_none_686-pae setup_i386_none_real +setup_i386_none_686: setup_i386_none_686_real +setup_i386_none_686-pae: setup_i386_none_686-pae_real +setup_i386_none_686-pae_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_i386_none_686_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_i386_none_real: +setup_i386_real: +setup_i386_rt: setup_i386_rt_686-pae setup_i386_rt_real +setup_i386_rt_686-pae: setup_i386_rt_686-pae_real +setup_i386_rt_686-pae_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='i386' COMPILER='gcc-6' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_i386_rt_real: +setup_m68k: setup_m68k_none setup_m68k_real +setup_m68k_none: setup_m68k_none_m68k setup_m68k_none_real +setup_m68k_none_m68k: setup_m68k_none_m68k_real +setup_m68k_none_m68k_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='m68k' CFLAGS_KERNEL='-ffreestanding' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-m68k' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_m68k_none_real: +setup_m68k_real: +setup_mips: setup_mips_none setup_mips_real +setup_mips64: setup_mips64_none setup_mips64_real +setup_mips64_none: setup_mips64_none_5kc-malta setup_mips64_none_octeon setup_mips64_none_real +setup_mips64_none_5kc-malta: setup_mips64_none_5kc-malta_real +setup_mips64_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips64_none_octeon: setup_mips64_none_octeon_real +setup_mips64_none_octeon_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips64_none_real: +setup_mips64_real: +setup_mips64el: setup_mips64el_none setup_mips64el_real +setup_mips64el_none: setup_mips64el_none_5kc-malta setup_mips64el_none_loongson-3 setup_mips64el_none_octeon setup_mips64el_none_real +setup_mips64el_none_5kc-malta: setup_mips64el_none_5kc-malta_real +setup_mips64el_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips64el_none_loongson-3: setup_mips64el_none_loongson-3_real +setup_mips64el_none_loongson-3_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips64el_none_octeon: setup_mips64el_none_octeon_real +setup_mips64el_none_octeon_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips64el_none_real: +setup_mips64el_real: +setup_mips_none: setup_mips_none_4kc-malta setup_mips_none_5kc-malta setup_mips_none_octeon setup_mips_none_real +setup_mips_none_4kc-malta: setup_mips_none_4kc-malta_real +setup_mips_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips_none_5kc-malta: setup_mips_none_5kc-malta_real +setup_mips_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips_none_octeon: setup_mips_none_octeon_real +setup_mips_none_octeon_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mips' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mips_none_real: +setup_mips_real: +setup_mipsel: setup_mipsel_none setup_mipsel_real +setup_mipsel_none: setup_mipsel_none_4kc-malta setup_mipsel_none_5kc-malta setup_mipsel_none_loongson-3 setup_mipsel_none_octeon setup_mipsel_none_real +setup_mipsel_none_4kc-malta: setup_mipsel_none_4kc-malta_real +setup_mipsel_none_4kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mipsel_none_5kc-malta: setup_mipsel_none_5kc-malta_real +setup_mipsel_none_5kc-malta_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mipsel_none_loongson-3: setup_mipsel_none_loongson-3_real +setup_mipsel_none_loongson-3_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mipsel_none_octeon: setup_mipsel_none_octeon_real +setup_mipsel_none_octeon_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='mipsel' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_mipsel_none_real: +setup_mipsel_real: +setup_mipsn32: setup_mipsn32_real +setup_mipsn32_real: +setup_mipsn32el: setup_mipsn32el_real +setup_mipsn32el_real: +setup_none: setup_none_real +setup_none_real: +setup_or1k: setup_or1k_real +setup_or1k_real: +setup_powerpc: setup_powerpc_none setup_powerpc_real +setup_powerpc_none: setup_powerpc_none_powerpc setup_powerpc_none_powerpc-smp setup_powerpc_none_powerpc64 setup_powerpc_none_real +setup_powerpc_none_powerpc: setup_powerpc_none_powerpc_real +setup_powerpc_none_powerpc-smp: setup_powerpc_none_powerpc-smp_real +setup_powerpc_none_powerpc-smp_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-smp-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_powerpc_none_powerpc64: setup_powerpc_none_powerpc64_real +setup_powerpc_none_powerpc64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_powerpc_none_powerpc_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='powerpc' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_powerpc_none_real: +setup_powerpc_real: +setup_powerpcspe: setup_powerpcspe_none setup_powerpcspe_real +setup_powerpcspe_none: setup_powerpcspe_none_powerpcspe setup_powerpcspe_none_real +setup_powerpcspe_none_powerpcspe: setup_powerpcspe_none_powerpcspe_real +setup_powerpcspe_none_powerpcspe_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='powerpcspe' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpcspe' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpcspe' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpcspe/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpcspe' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpcspe' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_powerpcspe_none_real: +setup_powerpcspe_real: +setup_ppc64: setup_ppc64_none setup_ppc64_real +setup_ppc64_none: setup_ppc64_none_powerpc64 setup_ppc64_none_real +setup_ppc64_none_powerpc64: setup_ppc64_none_powerpc64_real +setup_ppc64_none_powerpc64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_ppc64_none_real: +setup_ppc64_real: +setup_ppc64el: setup_ppc64el_none setup_ppc64el_real +setup_ppc64el_none: setup_ppc64el_none_powerpc64le setup_ppc64el_none_real +setup_ppc64el_none_powerpc64le: setup_ppc64el_none_powerpc64le_real +setup_ppc64el_none_powerpc64le_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='ppc64el' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-powerpc64le-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_ppc64el_none_real: +setup_ppc64el_real: +setup_rt: setup_rt_real +setup_rt_real: +setup_s390: setup_s390_real +setup_s390_real: +setup_s390x: setup_s390x_none setup_s390x_real +setup_s390x_none: setup_s390x_none_real setup_s390x_none_s390x +setup_s390x_none_real: +setup_s390x_none_s390x: setup_s390x_none_s390x_real +setup_s390x_none_s390x_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='s390x' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-s390x-unsigned' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o MODULE_SIG=y' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VDSO='True' VERSION='4.9' +setup_s390x_real: +setup_sh3: setup_sh3_real +setup_sh3_real: +setup_sh4: setup_sh4_none setup_sh4_real +setup_sh4_none: setup_sh4_none_real setup_sh4_none_sh7751r setup_sh4_none_sh7785lcr +setup_sh4_none_real: +setup_sh4_none_sh7751r: setup_sh4_none_sh7751r_real +setup_sh4_none_sh7751r_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_sh4_none_sh7785lcr: setup_sh4_none_sh7785lcr_real +setup_sh4_none_sh7785lcr_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='sh4' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_sh4_real: +setup_sparc: setup_sparc_real +setup_sparc64: setup_sparc64_none setup_sparc64_real +setup_sparc64_none: setup_sparc64_none_real setup_sparc64_none_sparc64 setup_sparc64_none_sparc64-smp +setup_sparc64_none_real: +setup_sparc64_none_sparc64: setup_sparc64_none_sparc64_real +setup_sparc64_none_sparc64-smp: setup_sparc64_none_sparc64-smp_real +setup_sparc64_none_sparc64-smp_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_sparc64_none_sparc64_real:: + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='4.9.0-1' ARCH='sparc64' COMPILER='gcc-6' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='arch/sparc/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-4.9.0-1-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +setup_sparc64_real: +setup_sparc_real: +setup_tilegx: setup_tilegx_real +setup_tilegx_real: +setup_x32: setup_x32_real +setup_x32_real: +source: source_none source_rt +source_none: source_none_real +source_none_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='4.9.0-1' FEATURESET='none' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' +source_rt: source_rt_real +source_rt_real:: + $(MAKE) -f debian/rules.real source-featureset ABINAME='4.9.0-1' FEATURESET='rt' SOURCEVERSION='4.9.2-2' UPSTREAMVERSION='4.9' VERSION='4.9' diff --git a/rules.real b/rules.real new file mode 100644 index 00000000000..cecbac49eb3 --- /dev/null +++ b/rules.real @@ -0,0 +1,714 @@ +# +# This Makefile executes the unpack/build/binary targets for a single +# subarch, which is passed in the subarch variable. Empty subarch +# variable means that we are building for an arch without the subarch. +# Additionally, variables version, abiname and ltver are +# expected to be available (need to be exported from the parent process). +# +SHELL := bash -e +MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control) +SOURCE_PACKAGE_NAME := $(shell dpkg-parsechangelog -SSource) +DISTRIBUTION := $(shell dpkg-parsechangelog -SDistribution) +SOURCE_DATE := $(shell dpkg-parsechangelog -SDate) +SOURCE_DATE_UTC_ISO := $(shell date -u -d '$(SOURCE_DATE)' +%Y-%m-%d) + +DISTRIBUTOR := $(shell lsb_release -is 2>/dev/null) +ifeq ($(DISTRIBUTOR),) +DISTRIBUTOR := Debian +endif + +ifdef OVERRIDE_HOST_TYPE + CROSS_COMPILE := $(OVERRIDE_HOST_TYPE)- +else ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + CROSS_COMPILE := $(DEB_HOST_GNU_TYPE)- +else + CROSS_COMPILE := +endif +export CROSS_COMPILE + +export PYTHONPATH = $(CURDIR)/debian/lib/python +export DH_OPTIONS +export DEB_HOST_ARCH DEB_HOST_GNU_TYPE DEB_BUILD_ARCH +export DEB_BUILD_PATH = $(CURDIR) # for dpkg-buildflags +export LC_ALL = C.UTF-8 + +include debian/rules.defs + +stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@ + +setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION +setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTOR="$(DISTRIBUTOR)" DISTRIBUTION_VERSION="$(SOURCEVERSION)" KBUILD_BUILD_TIMESTAMP="$(SOURCE_DATE)" KBUILD_BUILD_VERSION_TIMESTAMP="$(DISTRIBUTOR) $(SOURCEVERSION) ($(SOURCE_DATE_UTC_ISO))" KBUILD_BUILD_USER="$(word 1,$(subst @, ,$(MAINTAINER)))" KBUILD_BUILD_HOST="$(word 2,$(subst @, ,$(MAINTAINER)))" + +MAKE_CLEAN = $(setup_env) $(MAKE) CFLAGS_KERNEL=-fdebug-prefix-map=$(CURDIR)=. CFLAGS_MODULE=-fdebug-prefix-map=$(CURDIR)=. +MAKE_SELF := $(MAKE) -f debian/rules.real $(MAKEOVERRIDES) +MAKEOVERRIDES = + +# +# Targets +# + +build-arch-arch: +build-indep: +binary-arch-arch: +binary-indep: + +ifneq ($(DO_HEADERS_ALL),False) + binary-arch-arch: install-headers_$(ARCH) +endif +ifneq ($(DO_LIBC),False) + binary-arch-arch: install-libc-dev_$(ARCH) +endif +binary-arch-flavour: install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +ifeq ($(DEBUG),True) + binary-arch-flavour: install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +endif +binary-arch-flavour: install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +ifneq ($(DO_DOCS),False) + binary-indep: install-doc + binary-indep: install-manual + build-indep: $(STAMPS_DIR)/build-doc +endif +binary-indep: install-source +binary-indep: install-support + +ifneq ($(DO_TOOLS),False) + build-arch-arch: $(STAMPS_DIR)/build-tools + binary-arch-arch: install-kbuild install-usbip install-cpupower +# binary-arch-arch: install-liblockdep + ifneq ($(filter alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_HOST_ARCH)),) + ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) + binary-arch-arch: install-perf + endif + endif + ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),) + binary-arch-arch: install-hyperv-daemons + endif +# binary-indep: install-lockdep +endif + +binary-indep-featureset: install-common-headers_$(FEATURESET) + +build-arch-flavour: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +setup-arch-flavour: $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +source-featureset: $(STAMPS_DIR)/source_$(FEATURESET) + +$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG) + mkdir -p '$(dir $@)' + debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS) + +define copy_source +mkdir -p '$(1)' +cp -al $(filter-out debian .pc .svk .svn .git, $(wildcard * .[^.]*)) '$(1)' +endef + +$(BUILD_DIR)/$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION).tar.xz: DIR = $(BUILD_DIR)/$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION) +$(BUILD_DIR)/$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION).tar.xz: $(STAMPS_DIR)/source + rm -rf '$@' '$(DIR)' + $(call copy_source,$(DIR)) + chmod -R u+rw,go=rX '$(DIR)' + find '$(DIR)' -depth -newermt '$(SOURCE_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(SOURCE_DATE)' + cd '$(BUILD_DIR)'; \ + find '$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION)' \ + -name '*.pyc' -prune -o \ + -print0 | \ + sort -z | \ + tar --no-recursion --null -T - -caf '$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION).tar.xz' + rm -rf '$(DIR)' + +$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-%.patch.xz: $(STAMPS_DIR)/source_none $(STAMPS_DIR)/source_% + set -o pipefail; \ + (cd '$(BUILD_DIR)'; \ + set +e; \ + diff -urN -p -x debian -x .pc -x .svk -x .svn -x .git -x '*.pyc' source_none source_$*; \ + test $$? -eq 1) | \ + filterdiff --remove-timestamps --strip=1 --addoldprefix=a/ --addnewprefix=b/ | \ + xz -c >$@ || \ + (rm -f $@; exit 1) + +define patch_cmd +cd '$(DIR)' && QUILT_PATCHES='$(CURDIR)/debian/patches' QUILT_SERIES=series-$(1) QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0 +endef + +$(STAMPS_DIR)/source: + test -d .pc + set +e; QUILT_PC=.pc quilt unapplied --quiltrc - >/dev/null && echo 'Patch series not fully applied'; test $$? -eq 1 + @$(stamp) + +$(STAMPS_DIR)/source_%: SOURCE_DIR=$(BUILD_DIR)/source +$(STAMPS_DIR)/source_%: DIR=$(BUILD_DIR)/source_$* +$(STAMPS_DIR)/source_%: $(STAMPS_DIR)/source + mkdir -p '$(BUILD_DIR)' + rm -rf '$(DIR)' + $(call copy_source,$(DIR)) + $(call patch_cmd,$*) + @$(stamp) +.PRECIOUS: $(STAMPS_DIR)/source_% + +$(STAMPS_DIR)/source_none: DIR=$(BUILD_DIR)/source_none +$(STAMPS_DIR)/source_none: $(STAMPS_DIR)/source + mkdir -p '$(BUILD_DIR)' + rm -f '$(DIR)' + ln -s '$(CURDIR)' '$(DIR)' + @$(stamp) + +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(FEATURESET) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR) + rm -rf '$(DIR)' + mkdir '$(DIR)' + cp '$(CONFIG)' '$(DIR)/.config' + echo 'override ARCH = $(KERNEL_ARCH)' >> '$(DIR)/.kernelvariables' + echo 'override KERNELRELEASE = $(ABINAME)$(LOCALVERSION_IMAGE)' >> '$(DIR)/.kernelvariables' + echo 'CCACHE = ccache' >> '$(DIR)/.kernelvariables' + echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(CROSS_COMPILE)$(COMPILER)' >> '$(DIR)/.kernelvariables' +# TODO: Should we set CROSS_COMPILE always? +ifdef OVERRIDE_HOST_TYPE + echo 'override CROSS_COMPILE = $(OVERRIDE_HOST_TYPE)-' >> '$(DIR)/.kernelvariables' +else + echo 'ifneq ($$(DEB_BUILD_ARCH),$$(DEB_HOST_ARCH))' >> '$(DIR)/.kernelvariables' + echo 'override CROSS_COMPILE = $$(DEB_HOST_GNU_TYPE)-' >> '$(DIR)/.kernelvariables' + echo 'endif' >> '$(DIR)/.kernelvariables' +endif +ifdef CFLAGS_KERNEL + echo 'CFLAGS_KERNEL += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables' + echo 'CFLAGS_MODULE += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables' +endif + +$(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' V=1 listnewconfig + +yes "" | $(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' oldconfig >/dev/null + @$(stamp) + +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): + +$(MAKE_CLEAN) -C '$(DIR)' $(BUILD_TARGET) + debian/bin/buildcheck.py $(DIR) $(ARCH) $(FEATURESET) $(FLAVOUR) + @$(stamp) + +$(STAMPS_DIR)/build-doc: DIR=$(BUILD_DIR)/build-doc +$(STAMPS_DIR)/build-doc: $(STAMPS_DIR)/source + rm -rf $(DIR) + mkdir -p $(DIR) + +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' xmldocs + +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' htmldocs mandocs + @$(stamp) + +install-base: +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs $(INSTALLDOCS_ARGS) +endif + dh_installchangelogs + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol -- $(GENCONTROL_ARGS) + dh_md5sums + dh_builddeb -- -Zxz $(BUILDDEB_ARGS) + +install-dummy: + dh_testdir + dh_testroot + dh_prep + +$(MAKE_SELF) install-base + +install-doc: PACKAGE_NAME = $(SOURCE_PACKAGE_NAME)-doc-$(VERSION) +install-doc: DIR = $(BUILD_DIR)/build-doc +install-doc: PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-doc: OUT_DIR = $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME) +install-doc: DH_OPTIONS = -p$(PACKAGE_NAME) +install-doc: $(STAMPS_DIR)/build-doc + dh_prep + mkdir -p $(OUT_DIR) + set -o pipefail; \ + find CREDITS MAINTAINERS README REPORTING-BUGS Documentation \ + -name '.gitignore' -prune -o -name DocBook -prune -o \ + -name '*.rst' -prune -o -path Documentation/media -prune -o \ + -path Documentation/sphinx -prune -o \ + -name 'Makefile*' -prune -o \ + -print | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)' +# Some HTML pages are generated by xmlto from DocBook XML and some by +# Sphinx from reStructedText. Unfortunately these each generate their +# own top level index.html, so we put them in two separate +# subdirectories until the conversion to RST is complete. + set -o pipefail; \ + cd $(DIR)/Documentation/DocBook; \ + find * -name '*.html' -print | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)/html/oldstyle' + set -o pipefail; \ + cd $(DIR)/Documentation/output; \ + find * -name '*.rst' -prune -o -name objects.inv -prune \ + -o -name xml -prune -o -print | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)/html/newstyle' + gzip -9nqfr $(OUT_DIR)/Documentation + +$(MAKE_SELF) install-base + +install-manual: PACKAGE_NAME = $(SOURCE_PACKAGE_NAME)-manual-$(VERSION) +install-manual: DIR=$(BUILD_DIR)/build-doc +install-manual: DH_OPTIONS = -p$(PACKAGE_NAME) +install-manual: $(STAMPS_DIR)/build-doc + dh_prep +# Some manual pages are generated multiple times with different +# metadata, and need to be de-duplicated. This matches what the +# upstream installmandocs target does, except that we use +# dh_installman. + set -o pipefail; \ + find $(DIR)/Documentation/DocBook/man/ -name '*.9.gz' -printf '%h %f\n' | \ + sort -k 2 -k 1 | uniq -f 1 | sed -e 's: :/:' | \ + xargs dh_installman + +$(MAKE_SELF) install-base + +install-headers_$(ARCH): PACKAGE_NAMES = linux-headers-$(ABINAME)-all linux-headers-$(ABINAME)-all-$(ARCH) +install-headers_$(ARCH): DH_OPTIONS = $(foreach p, $(PACKAGE_NAMES), -p$(p)) +install-headers_$(ARCH): + dh_testdir + dh_testroot + +$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Arch=$(ARCH)' + +install-common-headers_$(FEATURESET): PACKAGE_NAME = linux-headers-$(ABINAME)-common$(LOCALVERSION) +install-common-headers_$(FEATURESET): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION) +install-common-headers_$(FEATURESET): DH_OPTIONS = -p$(PACKAGE_NAME) +install-common-headers_$(FEATURESET): BASE_DIR = /usr/src/$(PACKAGE_NAME) +install-common-headers_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(FEATURESET) +install-common-headers_$(FEATURESET): DIR = debian/$(PACKAGE_NAME)/$(BASE_DIR) +install-common-headers_$(FEATURESET): $(STAMPS_DIR)/source_$(FEATURESET) + dh_testdir + dh_testroot + dh_prep + + set -o pipefail; \ + cd $(SOURCE_DIR); \ + ( \ + echo Makefile; \ + for arch in $(ALL_KERNEL_ARCHES); do \ + find arch/$$arch -maxdepth 1 -name 'Makefile*' -print; \ + find arch/$$arch \( -name 'module.lds' -o -name 'Kbuild.platforms' -o -name 'Platform' \) -print; \ + find $$(find arch/$$arch \( -name include -o -name scripts \) -type d -print) -print; \ + done; \ + find include -print; \ + ) \ + | \ + cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)' + + dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts + + +$(MAKE_SELF) install-base + +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-headers-$(REAL_VERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_COMMON = linux-headers-$(ABINAME)-common$(LOCALVERSION_HEADERS) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR = /usr/src/$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR_COMMON = /usr/src/$(PACKAGE_NAME_COMMON) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(FEATURESET) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(PACKAGE_DIR)/$(BASE_DIR) +install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + dh_testdir + dh_testroot + dh_prep + + mkdir -p $(DIR)/arch/$(KERNEL_ARCH)/kernel + cp -a $(SOURCE_DIR)/{.config,.kernel*,Module.symvers,include} $(DIR) + cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/include $(DIR)/arch/$(KERNEL_ARCH) + find $(DIR) -name '*.cmd' -delete + + if [ -f $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o ]; then \ + mkdir $(DIR)/arch/$(KERNEL_ARCH)/lib; \ + cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o $(DIR)/arch/$(KERNEL_ARCH)/lib; \ + fi + + @echo 'VERSION = 2' > $(DIR)/Makefile + @echo 'PATCHLEVEL = 6' >> $(DIR)/Makefile + + @echo 'MAKEARGS := -C $(BASE_DIR_COMMON) O=$(BASE_DIR)' >> $(DIR)/Makefile + @echo 'MAKEFLAGS += --no-print-directory' >> $(DIR)/Makefile + + @echo '.PHONY: all $$(MAKECMDGOALS)' >> $(DIR)/Makefile + @echo 'cmd := $$(filter-out all Makefile,$$(MAKECMDGOALS))' >> $(DIR)/Makefile + @echo 'all:' >> $(DIR)/Makefile + @echo ' @$$(MAKE) $$(MAKEARGS) $$(cmd)' >> $(DIR)/Makefile + @echo 'Makefile:;' >> $(DIR)/Makefile + @echo '$$(cmd): all' >> $(DIR)/Makefile + @echo ' @:' >> $(DIR)/Makefile + @echo '%/: all' >> $(DIR)/Makefile + @echo ' @:' >> $(DIR)/Makefile + + dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts + + mkdir -p $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION) + ln -s /usr/src/$(PACKAGE_NAME) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build + ln -s /usr/src/$(PACKAGE_NAME_COMMON) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source + + +$(MAKE_SELF) install-base INSTALLDOCS_ARGS="--link-doc=$(PACKAGE_NAME_COMMON)" + +install-libc-dev_$(ARCH): PACKAGE_NAME = linux-libc-dev +install-libc-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) +install-libc-dev_$(ARCH): DIR = $(BUILD_DIR)/build-libc-dev +install-libc-dev_$(ARCH): OUT_DIR = debian/$(PACKAGE_NAME)/usr +install-libc-dev_$(ARCH): + dh_testdir + dh_testroot + dh_prep + rm -rf '$(DIR)' + mkdir -p $(DIR) + +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_check ARCH=$(KERNEL_ARCH) + +$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_install ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR) + + rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi + find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} + + +# Move include/asm to arch-specific directory + mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH) + mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/ + test ! -d $(OUT_DIR)/include/arch || \ + mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/ + + +$(MAKE_SELF) install-base + +install-support: PACKAGE_NAME = $(SOURCE_PACKAGE_NAME)-support-$(ABINAME) +install-support: DH_OPTIONS = -p$(PACKAGE_NAME) +install-support: PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-support: PACKAGE_ROOT = /usr/share/$(PACKAGE_NAME) +install-support: + dh_testdir + dh_testroot + dh_prep + dh_installdirs $(PACKAGE_ROOT)/lib/python/debian_linux $(PACKAGE_ROOT)/modules + cp debian/config.defines.dump $(PACKAGE_DIR)$(PACKAGE_ROOT) + cp -R debian/installer $(PACKAGE_DIR)$(PACKAGE_ROOT)/installer + cp debian/lib/python/debian_linux/*.py $(PACKAGE_DIR)$(PACKAGE_ROOT)/lib/python/debian_linux + dh_python3 + dh_link $(PACKAGE_ROOT) /usr/src/$(PACKAGE_NAME) + +$(MAKE_SELF) install-base + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = $(IMAGE_PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): INSTALL_DIR = $(PACKAGE_DIR)/boot +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): + dh_testdir + dh_testroot + dh_prep + dh_installdirs 'boot' +ifeq ($(IMAGE_FILE),vmlinux) +# This is the unprocessed ELF image, so we need to strip debug symbols + $(CROSS_COMPILE)objcopy --strip-debug '$(DIR)/vmlinux' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION) +else + install -m644 '$(DIR)/$(IMAGE_FILE)' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION) +endif + +$(MAKE_SELF) \ + install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt \ + DIR='$(DIR)' PACKAGE_DIR='$(PACKAGE_DIR)' REAL_VERSION='$(REAL_VERSION)' + +$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR) INSTALL_MOD_STRIP=1 +ifeq ($(DEBUG),True) + set -o pipefail; \ + find $(PACKAGE_DIR) -name '*.ko' | sed 's|$(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read module ; do \ + $(CROSS_COMPILE)objcopy --add-gnu-debuglink=$(DIR)/$$module $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/$$module || exit; \ + done +endif + cp $(DIR)/.config $(PACKAGE_DIR)/boot/config-$(REAL_VERSION) + cp $(DIR)/System.map $(PACKAGE_DIR)/boot/System.map-$(REAL_VERSION) + rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build + rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source + rm $(PACKAGE_DIR)/lib/firmware -rf + +$(MAKE_SELF) \ + install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug \ + PACKAGE_DIR='$(PACKAGE_DIR)' PACKAGE_NAME='$(PACKAGE_NAME)' REAL_VERSION='$(REAL_VERSION)' + dh_strip --no-automatic-dbgsym -Xvmlinux + +$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Recommends='"$$( \ + if grep -q '^CONFIG_SMP=y' $(DIR)/.config; then \ + printf irqbalance,; \ + fi)" + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt: DT_INSTALL_DIR = $(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION) +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt: +ifneq ($(filter arm64 armel armhf,$(ARCH)),) + +$(MAKE_CLEAN) -C $(DIR) dtbs + +$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH=$(CURDIR)/$(DT_INSTALL_DIR) +endif +ifneq ($(filter powerpc powerpcspe ppc64,$(ARCH)),) + +$(MAKE_CLEAN) -C '$(DIR)' bootwrapper_install \ + WRAPPER_OBJDIR='$(CURDIR)/$(DT_INSTALL_DIR)' \ + WRAPPER_DTSDIR='$(CURDIR)/$(DT_INSTALL_DIR)'/dts \ + WRAPPER_BINDIR='$(CURDIR)/$(DT_INSTALL_DIR)' +endif + +install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug: + dh_installdirs usr/share/bug/$(PACKAGE_NAME) + dh_install debian/templates/image.bug/* usr/share/bug/$(PACKAGE_NAME) + chmod 755 $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/script + printf "RELEASE='$(REAL_VERSION)'\nDISTRIBUTOR='$(DISTRIBUTOR)'\nSOURCEVERSION='$(SOURCEVERSION)'\nPACKAGE_NAME='$(PACKAGE_NAME)'\nPACKAGE_VERSION='$(SOURCEVERSION)'" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info + +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-image-$(REAL_VERSION)-dbgsym +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DEBUG_DIR = $(PACKAGE_DIR)/usr/lib/debug +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) + dh_testdir + dh_testroot + dh_prep + dh_installdirs usr/lib/debug usr/lib/debug/boot usr/share/lintian/overrides/ + dh_lintian + install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/boot/vmlinux-$(REAL_VERSION) + +$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR) + find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/ -mindepth 1 -maxdepth 1 \! -name kernel -exec rm {} \+ + rm $(DEBUG_DIR)/lib/firmware -rf +ifeq ($(VDSO),True) + +$(MAKE_CLEAN) -C $(DIR) vdso_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR) +# Create .build-id links. Some architectures already do so, but in the +# wrong place, so delete those first. + rm -rf $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id + find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/ -type f | while read vdso; do \ + if buildid="$$(readelf -n "$$vdso" | sed -rne 's/^\s+Build ID: (.*)$$/\1/p')" && [ "$$buildid" ]; then \ + mkdir -p "$(DEBUG_DIR)/.build-id/$${buildid:0:2}"; \ + ln -s -r "$$vdso" "$(DEBUG_DIR)/.build-id/$${buildid:0:2}/$${buildid:2}.debug"; \ + fi; \ + done +endif +# Add symlinks to vmlinux from the locations expected by kdump-tools, +# systemtap and others + ln -s boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/ + mkdir -p $(DEBUG_DIR)/lib/modules/$(REAL_VERSION) + ln -s ../../../boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vmlinux + +$(MAKE_SELF) install-base GENCONTROL_ARGS='-DAuto-Built-Package=debug-symbols' + +install-udeb_$(ARCH): export KW_DEFCONFIG_DIR=debian/installer +install-udeb_$(ARCH): export KW_CONFIG_DIR=debian/installer/$(ARCH) +install-udeb_$(ARCH): DH_OPTIONS=$(PACKAGE_NAMES:%=-p%) +install-udeb_$(ARCH): + dh_testdir + dh_prep +ifeq ($(UDEB_UNSIGNED_TEST_BUILD),True) +# kernel-wedge doesn't expect a -unsigned suffix; work around that for now + while read flavour; do \ + rm -f debian/linux-image-$(ABINAME)-$$flavour; \ + ln -s linux-image-$(ABINAME)-$$flavour-unsigned \ + debian/linux-image-$(ABINAME)-$$flavour; \ + done < <(awk '!/^#/ { print $$3 }' $(KW_CONFIG_DIR)/kernel-versions) +endif + kernel-wedge install-files $(ABINAME) + kernel-wedge check $(PACKAGE_NAMES) + dh_fixperms +ifeq ($(UDEB_UNSIGNED_TEST_BUILD),False) + dh_gencontrol + dh_builddeb +endif + +install-source: PACKAGE_NAME = $(SOURCE_PACKAGE_NAME)-source-$(VERSION) +install-source: DH_OPTIONS = -p$(PACKAGE_NAME) +install-source: $(BUILD_DIR)/$(SOURCE_PACKAGE_NAME)-source-$(UPSTREAMVERSION).tar.xz $(foreach FEATURESET,$(filter-out none,$(ALL_FEATURESETS)),$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-$(FEATURESET).patch.xz) + dh_testdir + dh_testroot + dh_installdirs /usr/src/linux-config-$(UPSTREAMVERSION) + dh_install '$^' /usr/src +# Include our kernel config files, but with the module signing +# configuration fixed to work for custom kernels. + for triplet in $(ALL_TRIPLETS); do \ + sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\)[ =]/d' $(BUILD_DIR)/build_$$triplet/.config | xz -c >debian/$(PACKAGE_NAME)/usr/src/linux-config-$(UPSTREAMVERSION)/config.$$triplet.xz; \ + done +# We don't want to recompress, but -Znone is not compatible with older +# tools and is currently rejected by dak. -Zgzip -z0 (uncompressed +# data.tar.gz!) makes dpkg and dak happy, but is incomaptible with +# other things (#725492). So use the fastest real gzip mode. + +$(MAKE_SELF) install-base BUILDDEB_ARGS='-Zgzip -z1' + +define make-tools ++mkdir -p $(BUILD_DIR)/build-tools/$(1) && $(MAKE_CLEAN) -C $(BUILD_DIR)/build-tools/$(1) -f $(CURDIR)/debian/rules.d/$(1)/Makefile top_srcdir=$(CURDIR) top_rulesdir=$(CURDIR)/debian/rules.d OUTDIR=$(1) VERSION=$(VERSION) +endef + +$(STAMPS_DIR)/build-tools: + $(call make-tools,.) + @$(stamp) + +install-kbuild: PACKAGE_NAME = linux-kbuild-$(VERSION) +install-kbuild: DH_OPTIONS = -p$(PACKAGE_NAME) +install-kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME) +install-kbuild: DIR = $(CURDIR)/debian/$(PACKAGE_NAME) +install-kbuild: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,scripts) install DESTDIR=$(DIR) prefix=$(PREFIX_DIR) + dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME) + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +install-cpupower: DH_OPTIONS = -plinux-cpupower -plibcpupower1 -plibcpupower-dev +install-cpupower: DIR = $(CURDIR)/debian/cpupower-tmp +install-cpupower: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,tools/power/cpupower) install DESTDIR=$(DIR) + dh_install --sourcedir=$(DIR) + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_strip + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +install-perf: PACKAGE_NAME = linux-perf-$(VERSION) +install-perf: DH_OPTIONS = -p$(PACKAGE_NAME) +install-perf: DIR = $(CURDIR)/debian/$(PACKAGE_NAME) +install-perf: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,tools/perf) install DESTDIR=$(DIR) + dh_perl /usr/share/perf_$(VERSION)-core/scripts/perl/Perf-Trace-Util/lib/ + dh_python2 /usr/share/perf_$(VERSION)-core/scripts/python/Perf-Trace-Util/lib/ + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_lintian + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps -Xperf-read-vdso + dh_gencontrol + dh_md5sums + dh_builddeb + +install-usbip: DH_OPTIONS = -plibusbip-dev -pusbip +install-usbip: DIR = $(CURDIR)/debian/usbip-tmp +install-usbip: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,tools/usb/usbip) install DESTDIR=$(DIR) + dh_install --sourcedir=$(DIR) + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs + dh_installman +endif + dh_lintian + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + VERSION=$$(sed -ne 's,^#define PACKAGE_VERSION "\(.*\)"$$,\1,p' $(BUILD_DIR)/build-tools/tools/usb/usbip/config.h) && \ + test -n "$$VERSION" -a -n "$(DEB_VERSION)" && \ + dh_gencontrol -- -v$$VERSION+$(DEB_VERSION) + dh_md5sums + dh_builddeb + +install-hyperv-daemons: PACKAGE_NAME = hyperv-daemons +install-hyperv-daemons: DH_OPTIONS = -p$(PACKAGE_NAME) +install-hyperv-daemons: DIR = $(CURDIR)/debian/$(PACKAGE_NAME) +install-hyperv-daemons: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,tools/hv) install DESTDIR=$(DIR) + dh_install + for service in fcopy kvp vss; do \ + install -D -m755 debian/hyperv-daemons.hv-$$service-daemon.init \ + $(DIR)/etc/init.d/hyperv-daemons.hv-$$service-daemon \ + || break; \ + done + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_systemd_enable + for service in fcopy kvp vss; do \ + dh_installinit --name hyperv-daemons.hv-$$service-daemon \ + --onlyscripts \ + || break; \ + done + dh_systemd_start + dh_lintian + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +install-liblockdep: DH_OPTIONS = -pliblockdep$(VERSION) -pliblockdep-dev +install-liblockdep: DIR = $(CURDIR)/debian/liblockdep-tmp +install-liblockdep: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,tools/lib/lockdep) install DESTDIR=$(DIR) + env -u DH_OPTIONS dh_install -pliblockdep$(VERSION) --sourcedir=$(DIR) \ + 'usr/lib/*/liblockdep.so.*' + dh_install --sourcedir=$(DIR) + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_strip + dh_compress + dh_fixperms + env -u DH_OPTIONS dh_makeshlibs -pliblockdep$(VERSION) \ + liblockdep$(VERSION) + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +install-lockdep: PACKAGE_NAME = lockdep +install-lockdep: DH_OPTIONS = -p$(PACKAGE_NAME) +install-lockdep: DIR = $(CURDIR)/debian/$(PACKAGE_NAME) +install-lockdep: + dh_testdir + dh_testroot + dh_prep + dh_installdirs +# Upstream lockdep preload script is not suitable for installation + sed 's/@VERSION@/$(VERSION)/' debian/rules.d/tools/lib/lockdep/lockdep.in \ + > $(DIR)/usr/bin/lockdep + chmod 755 $(DIR)/usr/bin/lockdep + dh_installchangelogs +ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES))) + dh_installdocs +endif + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +# vim: filetype=make diff --git a/source/format b/source/format new file mode 100644 index 00000000000..c3d9f240741 --- /dev/null +++ b/source/format @@ -0,0 +1,2 @@ +3.0 (quilt) + diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 00000000000..a61050820de --- /dev/null +++ b/source/include-binaries @@ -0,0 +1 @@ +debian/upstream/signing-key.pgp diff --git a/source/options b/source/options new file mode 100644 index 00000000000..3badfe8963d --- /dev/null +++ b/source/options @@ -0,0 +1,2 @@ +compression = "xz" +tar-ignore = debian/*.local diff --git a/templates/control.docs.in b/templates/control.docs.in new file mode 100644 index 00000000000..9b16f091889 --- /dev/null +++ b/templates/control.docs.in @@ -0,0 +1,33 @@ +Package: @source_package@-doc-@version@ +Build-Profiles: +Architecture: all +Depends: ${misc:Depends} +Section: doc +Multi-Arch: foreign +Description: Linux kernel specific documentation for version @version@ + This package provides the various README files and HTML documentation for + the Linux kernel version @version@. Plenty of information, including the + descriptions of various kernel subsystems, filesystems, driver-specific + notes and the like. Consult the file + /usr/share/doc/linux-doc-@version@/Documentation/00-INDEX + for the detailed description of the contents. + +Package: @source_package@-manual-@version@ +Build-Profiles: +Architecture: all +Depends: ${misc:Depends} +Section: doc +Provides: linux-manual +Conflicts: linux-manual +Replaces: linux-manual +Multi-Arch: foreign +Description: Linux kernel API manual pages for version @version@ + This package provides the Kernel Hacker's Guide in the form of + manual pages, describing the kernel API functions. They + are installed into section 9 of the manual. + . + As the files containing manual pages for different kernel versions + are installed in the same location, only one linux-manual package + may be installed at a time. The linux-doc package containing the + documentation in other formats is free from such restriction. + diff --git a/templates/control.extra.in b/templates/control.extra.in new file mode 100644 index 00000000000..b0f3e86252a --- /dev/null +++ b/templates/control.extra.in @@ -0,0 +1,26 @@ +Package: linux-compiler-gcc-6-arm +Build-Profiles: +Depends: gcc-6, ${misc:Depends} +Architecture: armel armhf +Multi-Arch: foreign +Description: Compiler for Linux on ARM (meta-package) + This package depends on gcc 6 of the appropriate architecture for + Linux on armel and armhf. + +Package: linux-compiler-gcc-6-s390 +Build-Profiles: +Depends: gcc-6, ${misc:Depends} +Architecture: s390 s390x +Multi-Arch: foreign +Description: Compiler for Linux on IBM zSeries (meta-package) + This package depends on gcc 6 of the appropriate architecture for + Linux on s390 and s390x. + +Package: linux-compiler-gcc-6-x86 +Build-Profiles: +Depends: gcc-6, ${misc:Depends} +Architecture: amd64 i386 x32 +Multi-Arch: foreign +Description: Compiler for Linux on x86 (meta-package) + This package depends on gcc 6 of the appropriate architecture for + Linux on amd64, i386 and x32. diff --git a/templates/control.headers.arch.in b/templates/control.headers.arch.in new file mode 100644 index 00000000000..75bfd50e541 --- /dev/null +++ b/templates/control.headers.arch.in @@ -0,0 +1,16 @@ +Package: linux-headers-@abiname@-all +Build-Profiles: +Depends: linux-headers-@abiname@-all-${kernel:Arch} (= ${binary:Version}), ${misc:Depends} +Description: All header files for Linux @version@ (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version @upstreamversion@, generally used for building out-of-tree + kernel modules. + +Package: linux-headers-@abiname@-all-@arch@ +Build-Profiles: +Depends: ${misc:Depends} +Description: All header files for Linux @version@ (meta-package) + This package depends against all architecture-specific kernel header files + for Linux kernel version @upstreamversion@, generally used for building out-of-tree + kernel modules. + diff --git a/templates/control.headers.featureset.in b/templates/control.headers.featureset.in new file mode 100644 index 00000000000..d9e52cb0d3e --- /dev/null +++ b/templates/control.headers.featureset.in @@ -0,0 +1,11 @@ +Package: linux-headers-@abiname@-common@localversion@ +Build-Profiles: +Architecture: all +Depends: ${misc:Depends} +Multi-Arch: foreign +Description: Common header files for Linux @abiname@@localversion@ + This package provides the common kernel header files for Linux kernel + version @abiname@@featureset_desc@, generally used for building + out-of-tree kernel modules. To obtain a complete set of headers you + also need to install the linux-headers-@abiname@-(flavour) package, + matching the flavour of the kernel you intend the build for. diff --git a/templates/control.headers.in b/templates/control.headers.in new file mode 100644 index 00000000000..e399b8ff518 --- /dev/null +++ b/templates/control.headers.in @@ -0,0 +1,10 @@ +Package: linux-headers-@abiname@@localversion@ +Build-Profiles: +Depends: linux-headers-@abiname@-common@localversion_headers@ (= ${binary:Version}), linux-kbuild-@version@, ${misc:Depends} +Description: Header files for Linux @abiname@@localversion@ + This package provides the architecture-specific kernel header files + for Linux kernel @abiname@@localversion@, generally + used for building out-of-tree kernel modules. These files are going to be + installed into /usr/src/linux-headers-@abiname@@localversion@, and can + be used for building modules that load into the kernel provided by the + linux-image-@abiname@@localversion@ package. diff --git a/templates/control.image-dbg.in b/templates/control.image-dbg.in new file mode 100644 index 00000000000..c3c8d636ad8 --- /dev/null +++ b/templates/control.image-dbg.in @@ -0,0 +1,6 @@ +Package: linux-image-@abiname@@localversion@-dbgsym +Build-Profiles: +Depends: ${misc:Depends} +Section: debug +Priority: extra +Description: Debug symbols for linux-image-@abiname@@localversion@ diff --git a/templates/control.image-unsigned.in b/templates/control.image-unsigned.in new file mode 100644 index 00000000000..6a1fb1fa04d --- /dev/null +++ b/templates/control.image-unsigned.in @@ -0,0 +1,10 @@ +Package: linux-image-@abiname@@localversion@-unsigned +Build-Profiles: +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends} +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-@version@, debian-kernel-handbook +Conflicts: linux-image-@abiname@@localversion@ +Replaces: linux-image-@abiname@@localversion@ +Provides: linux-image-@abiname@@localversion@ +Description: Linux @upstreamversion@ for @class@ + The Linux kernel @upstreamversion@ and modules for use on @longclass@. diff --git a/templates/control.image.in b/templates/control.image.in new file mode 100644 index 00000000000..266757f5595 --- /dev/null +++ b/templates/control.image.in @@ -0,0 +1,7 @@ +Package: linux-image-@abiname@@localversion@ +Build-Profiles: +Depends: kmod, linux-base (>= 4.3~), ${misc:Depends} +Recommends: firmware-linux-free, ${kernel:Recommends} +Suggests: linux-doc-@version@, debian-kernel-handbook +Description: Linux @upstreamversion@ for @class@ + The Linux kernel @upstreamversion@ and modules for use on @longclass@. diff --git a/templates/control.libc-dev.in b/templates/control.libc-dev.in new file mode 100644 index 00000000000..6e975e4c35e --- /dev/null +++ b/templates/control.libc-dev.in @@ -0,0 +1,9 @@ +Package: linux-libc-dev +Section: devel +Depends: ${misc:Depends} +# Remove this Provides when #826519 is closed +Provides: linux-kernel-headers +Multi-Arch: same +Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These headers + are used by the installed headers for GNU libc and other system libraries. diff --git a/templates/control.main.in b/templates/control.main.in new file mode 100644 index 00000000000..80794db645c --- /dev/null +++ b/templates/control.main.in @@ -0,0 +1,26 @@ +Package: @source_package@-source-@version@ +Build-Profiles: +Architecture: all +Section: kernel +Depends: binutils, xz-utils, ${misc:Depends} +Recommends: libc6-dev | libc-dev, gcc, make, bc +Suggests: libncurses-dev | ncurses-dev, libqt4-dev, pkg-config +Multi-Arch: foreign +Description: Linux kernel source for version @version@ with Debian patches + This package provides source code for the Linux kernel version @version@. + This source closely tracks official Linux kernel releases. Debian's + modifications to that source consist of security fixes, bug fixes, and + features that have already been (or are believed to be) accepted by the + upstream maintainers. + +Package: @source_package@-support-@abiname@ +Build-Profiles: +Architecture: all +Section: devel +Depends: ${python3:Depends}, ${misc:Depends} +Multi-Arch: foreign +Description: Support files for Linux @upstreamversion@ + This package provides support files for the Linux kernel build, + e.g. scripts to handle ABI information and for generation of + build system meta data. + diff --git a/templates/control.source.in b/templates/control.source.in new file mode 100644 index 00000000000..6123d082dc2 --- /dev/null +++ b/templates/control.source.in @@ -0,0 +1,69 @@ +Section: kernel +Priority: optional +Maintainer: Debian Kernel Team +Uploaders: Bastian Blank , maximilian attems , Ben Hutchings , Salvatore Bonaccorso +Standards-Version: 3.9.8 +Build-Depends: + debhelper (>= 10.1~), +# used to run debian/bin/*.py + python3:any, +# used by debian/rules.real to prepare the source + quilt, +# used by debian/rules.real to build linux-doc and linux-headers + cpio , +# used by upstream to compress kernel and by debian/rules.real to build linux-source + xz-utils , +# used by debian/rules.real to build udebs + kernel-wedge (>= 2.93~) , +# used by kernel-wedge (only on Linux, thus not declared as a dependency) + kmod , +# used by upstream to build include/generated/timeconst.h + bc , +# used by upstream to build signing tools and to process certificates +# - libssl-dev arch-qualification is a workaround for #827628 and #827633 + libssl-dev:native , libssl-dev [linux-any] , +# - openssl needs to run on the host; need :native for older versions that do +# not have M-A: allowed but need unqualified name for newer versions + openssl (>= 1.1.0-1~) | openssl:native , +# used by upstream to build perf documentation + asciidoc-base | asciidoc , + xmlto , +# used by upstream to build perf + bison , +# - flex needs to run on the host; we have the same problem as for openssl + flex (>= 2.6.1-1.1~) | flex:native , + gcc-multilib [amd64 ppc64 s390x sparc64] , + libaudit-dev , + libbabeltrace-dev (>= 1.5.0) , + libbabeltrace-ctf-dev (>= 1.5.0) , + libdw-dev , + libelf-dev , + libiberty-dev , + libnewt-dev , + libnuma-dev [amd64 arm64 hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc powerpcspe ppc64 ppc64el sparc x32] , + libperl-dev , + libunwind8-dev [amd64 armel armhf arm64 i386] , + python-dev , +# used by upstream to build usbip + autoconf , + automake , + libtool , + libglib2.0-dev , + libudev-dev , + libwrap0-dev , +# used by debian/rules.d/tools/usb/usbip to build usbip + rsync , +# used by upstream to build cpupower + libpci-dev , +# used by debian/rules.real to build linux-perf and linux-support + dh-python , +Build-Depends-Indep: +# used by debian/rules.real to build linux-source + patchutils , +# used by upstream to build documentation + python-sphinx , + python-sphinx-rtd-theme , + xmlto , +Vcs-Git: https://anonscm.debian.org/git/kernel/linux.git +Vcs-Browser: https://anonscm.debian.org/cgit/kernel/linux.git +Homepage: https://www.kernel.org/ diff --git a/templates/control.tools.in b/templates/control.tools.in new file mode 100644 index 00000000000..2dbf58a42ec --- /dev/null +++ b/templates/control.tools.in @@ -0,0 +1,140 @@ +Package: linux-kbuild-@version@ +Build-Profiles: +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: foreign +Description: Kbuild infrastructure for Linux @version@ + This package provides the kbuild infrastructure for the headers packages for Linux kernel version @version@. + +Package: linux-cpupower +Build-Profiles: +Section: admin +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: CPU frequency and voltage scaling tools for Linux + This package contains the 'power/cpupower' tools for Linux. + . + This set of userspace tools allow inspection and control of cpufreq and + cpuidle tunables for hardware that support these features. + The "cpupower" command replaces "cpufreq-info" and "cpufreq-set" in + cpufrequtils. + +Package: libcpupower1 +Build-Profiles: +Section: libs +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: CPU frequency and voltage scaling tools for Linux (libraries) + This package contains the shared library. + +Package: libcpupower-dev +Build-Profiles: +Section: libdevel +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends}, libcpupower1 (= ${binary:Version}) +Provides: libcpufreq-dev +Conflicts: libcpufreq-dev +Replaces: libcpufreq-dev +Description: CPU frequency and voltage scaling tools for Linux (development files) + This package contains the 'power/cpupower' headers and library shared objects. + +Package: linux-perf-@version@ +Build-Profiles: +Section: devel +Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc powerpcspe ppc64 ppc64el s390 s390x sh4 sparc sparc64 +Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends} +Recommends: linux-base +Provides: linux-tools-@version@ +Conflicts: linux-tools-@version@ +Replaces: linux-tools-@version@ +Suggests: linux-doc-@version@ +Description: Performance analysis tools for Linux @version@ + This package contains the 'perf' performance analysis tools for Linux + kernel version @version@. + . + The linux-base package contains a 'perf' command which will invoke the + appropriate version for the running kernel. + +Package: libusbip-dev +Build-Profiles: +Architecture: linux-any +Depends: ${misc:Depends} +Section: libdevel +Description: USB device sharing system over IP network (development files) + USB/IP is a system for sharing USB devices over the network. + . + This package provides headers for the libusbip library and + the library itself for static linking. + +Package: usbip +Build-Profiles: +Architecture: linux-any +Depends: usbutils, ${shlibs:Depends}, ${misc:Depends} +Section: admin +Description: USB device sharing system over IP network + USB/IP is a system for sharing USB devices over the network. + . + To share USB devices between computers with their full + functionality, USB/IP encapsulates "USB requests" into IP + packets and transmits them between computers. + . + Original USB device drivers and applications can be used + for remote USB devices without any modification of them. A + computer can use remote USB devices as if they were + directly attached. + . + Currently USB/IP provides no access control or encryption. + It should only be used in trusted environments. + . + This package provides the server component 'usbipd' and the + client tool 'usbip'. + +Package: hyperv-daemons +Build-Profiles: +Architecture: i386 amd64 x32 +Depends: lsb-base, ${shlibs:Depends}, ${misc:Depends} +Section: admin +Description: Support daemons for Linux running on Hyper-V + Suite of daemons for Linux guests running on Hyper-V, consisting of + hv_fcopy_daemon, hv_kvp_daemon and hv_vss_daemon. + . + hv_fcopy_daemon provides the file copy service, allowing the host to + copy files into the guest. + . + hv_kvp_daemon provides the key-value pair (KVP) service, allowing the + host to get and set the IP networking configuration of the guest. + (This requires helper scripts which are not currently included.) + . + hv_vss_daemon provides the volume shadow copy service (VSS), allowing + the host to freeze the guest filesystems while taking a snapshot. + +#Package: lockdep +#Build-Profiles: +#Architecture: all +#Depends: ${shlibs:Depends}, ${misc:Depends}, liblockdep@version@ +#Recommends: liblockdep-dev +#Section: devel +#Multi-Arch: allowed +#Description: Runtime locking correctness validator +# lockdep is a wrapper for programs that use the pthreads API, which detects +# actual and potential deadlocks and other locking bugs. +# +#Package: liblockdep@version@ +#Build-Profiles: +#Architecture: linux-any +#Depends: ${shlibs:Depends}, ${misc:Depends} +#Section: libs +#Multi-Arch: same +#Description: Runtime locking correctness validator (shared library) +# liblockdep is a library for programs that use the pthreads API, which can +# be used to detect actual and potential deadlocks and other locking bugs. +# +#Package: liblockdep-dev +#Build-Profiles: +#Architecture: linux-any +#Depends: ${shlibs:Depends}, ${misc:Depends}, liblockdep@version@ (= ${binary:Version}) +#Section: libdevel +#Multi-Arch: same +#Description: Runtime locking correctness validator (development files) +# liblockdep is a library for programs that use the pthreads API, which can +# be used to detect actual and potential deadlocks and other locking bugs. diff --git a/templates/headers.postinst.in b/templates/headers.postinst.in new file mode 100644 index 00000000000..c13e6dc54e4 --- /dev/null +++ b/templates/headers.postinst.in @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "@abiname@@localversion@"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff --git a/templates/image-dbg.lintian-override.in b/templates/image-dbg.lintian-override.in new file mode 100644 index 00000000000..26c857a6ad7 --- /dev/null +++ b/templates/image-dbg.lintian-override.in @@ -0,0 +1,2 @@ +# Kernel dbg packages contain a full image with debug data +linux-image-@abiname@@localversion@-dbgsym: dbg-package-missing-depends diff --git a/templates/image.bug/control b/templates/image.bug/control new file mode 100644 index 00000000000..b60912c4cd5 --- /dev/null +++ b/templates/image.bug/control @@ -0,0 +1,2 @@ +Submit-As: src:linux +Package-Status: firmware-amd-graphics firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-intelwimax firmware-intel-sound firmware-ipw2x00 firmware-ivtv firmware-iwlwifi firmware-libertas firmware-linux-nonfree firmware-misc-nonfree firmware-myricom firmware-netxen firmware-qlogic firmware-realtek firmware-samsung firmware-siano firmware-ti-connectivity xen-hypervisor diff --git a/templates/image.bug/include-0version b/templates/image.bug/include-0version new file mode 100644 index 00000000000..b5b32bfbd12 --- /dev/null +++ b/templates/image.bug/include-0version @@ -0,0 +1,9 @@ +add_0version() { + echo '** Version:' >&3 + cat /proc/version >&3 + echo >&3 +} + +ask_0version() { + true +} diff --git a/templates/image.bug/include-1cmdline b/templates/image.bug/include-1cmdline new file mode 100644 index 00000000000..3fcc9409823 --- /dev/null +++ b/templates/image.bug/include-1cmdline @@ -0,0 +1,9 @@ +add_1cmdline() { + echo '** Command line:' >&3 + cat /proc/cmdline >&3 + echo >&3 +} + +ask_1cmdline() { + true +} diff --git a/templates/image.bug/include-1tainted b/templates/image.bug/include-1tainted new file mode 100644 index 00000000000..921922e3c05 --- /dev/null +++ b/templates/image.bug/include-1tainted @@ -0,0 +1,55 @@ +TAINT_PROPRIETARY_MODULE=0 +TAINT_FORCED_MODULE=1 +TAINT_UNSAFE_SMP=2 +TAINT_FORCED_RMMOD=3 +TAINT_MACHINE_CHECK=4 +TAINT_BAD_PAGE=5 +TAINT_USER=6 +TAINT_DIE=7 +TAINT_OVERRIDDEN_ACPI_TABLE=8 +TAINT_WARN=9 +TAINT_CRAP=10 +TAINT_FIRMWARE_WORKAROUND=11 +TAINT_OOT_MODULE=12 +TAINT_UNSIGNED_MODULE=13 +TAINT_SOFTLOCKUP=14 +TAINT_LIVEPATCH=15 + +_check() { + if [ $(($tainted & 1<<$1)) -ne 0 ]; then + result_short="$result_short$2" + result_long="$result_long * $3\n" + fi +} + +add_1tainted() { + tainted=$(cat /proc/sys/kernel/tainted) + if [ "$tainted" -gt 0 ]; then + local result_short result_long + _check $TAINT_PROPRIETARY_MODULE 'P' 'Proprietary module has been loaded.' + _check $TAINT_FORCED_MODULE 'F' 'Module has been forcibly loaded.' + _check $TAINT_UNSAFE_SMP 'S' 'SMP with CPUs not designed for SMP.' + _check $TAINT_FORCED_RMMOD 'R' 'User forced a module unload.' + _check $TAINT_MACHINE_CHECK 'M' 'System experienced a machine check exception.' + _check $TAINT_BAD_PAGE 'B' 'System has hit bad_page.' + _check $TAINT_USER 'U' 'Userspace-defined naughtiness.' + _check $TAINT_DIE 'D' 'Kernel has oopsed before.' + _check $TAINT_OVERRIDDEN_ACPI_TABLE 'A' 'ACPI table overridden.' + _check $TAINT_WARN 'W' 'Taint on warning.' + _check $TAINT_CRAP 'C' 'Module from drivers/staging has been loaded.' + _check $TAINT_FIRMWARE_WORKAROUND 'I' 'Working around severe firmware bug.' + _check $TAINT_OOT_MODULE 'O' 'Out-of-tree module has been loaded.' + _check $TAINT_UNSIGNED_MODULE 'E' 'Unsigned module has been loaded.' + _check $TAINT_SOFTLOCKUP 'L' 'Kernel has detected soft lockup before.' + _check $TAINT_LIVEPATCH 'K' 'Live patch has been loaded.' + echo "** Tainted: $result_short ($tainted)" >&3 + printf "$result_long" >&3 + else + echo '** Not tainted' >&3 + fi + echo >&3 +} + +ask_1tainted() { + true +} diff --git a/templates/image.bug/include-dmesg b/templates/image.bug/include-dmesg new file mode 100644 index 00000000000..634dc99acb1 --- /dev/null +++ b/templates/image.bug/include-dmesg @@ -0,0 +1,21 @@ +add_dmesg() { + local got_log= + echo '** Kernel log:' >&3 + if [ "$(cat /proc/sys/kernel/dmesg_restrict)" = 0 ]; then + dmesg > >(tail -n 100 >&3) && got_log=y + elif command -v sudo >/dev/null; then + yesno "Use sudo to read the kernel log? " yep + if [ "$REPLY" = yep ]; then + sudo dmesg > >(tail -n 100 >&3) && got_log=y + fi + fi + test "$got_log" || echo 'Unable to read kernel log; any relevant messages should be attached' >&3 + echo >&3 +} + +ask_dmesg() { + # Remind the user to attach the kernel log. This should also trigger + # a reminder in some MUAs if the user tries to send without it. + echo '** Kernel log: boot messages should be attached' >&3 + echo >&3 +} diff --git a/templates/image.bug/include-model b/templates/image.bug/include-model new file mode 100644 index 00000000000..9c6aedd6a51 --- /dev/null +++ b/templates/image.bug/include-model @@ -0,0 +1,60 @@ +grep_model() { + case "$(uname -m)" in + alpha) + egrep '^(system (type|variation|revision)|platform string)\b' /proc/cpuinfo + ;; + arm*) + egrep '^(Processor|Hardware|Revision)\b' /proc/cpuinfo + ;; + i386|x86_64) + local found= + for name in {sys,product,chassis,bios,board}_{vendor,name,version}; do + if [ -f /sys/class/dmi/id/$name ]; then + echo -n "$name: " + cat /sys/class/dmi/id/$name + found=y + fi + done + test -n "$found" + ;; + mips|mips64) + egrep '^(system type|cpu model)\b' /proc/cpuinfo + ;; + parisc|parisc64) + egrep '^(model|[hs]version)\b' /proc/cpuinfo + ;; + ppc|ppc64|ppc64le) + egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo + ;; + s390|s390x) + egrep '^processor\b' /proc/cpuinfo + ;; + sparc|sparc64) + egrep '^(cpu|fpu|pmu|prom|type)\b' /proc/cpuinfo + ;; + sh4|sh4a) + egrep '^(machine|cpu)\b' /proc/cpuinfo + ;; + *) + false + ;; + esac + + # Device Tree model + if [ -r /proc/device-tree/model ]; then + echo "Device Tree model:" $(cat /proc/device-tree/model) + fi +} + +add_model() { + local found= + echo '** Model information' >&3 + grep_model >&3 2>/dev/null || echo "not available" >&3 + echo >&3 +} + +ask_model() { + # This is still valid as long as the bug is being reported on the same + # system. + test $same_system = nop || add_model +} diff --git a/templates/image.bug/include-modules b/templates/image.bug/include-modules new file mode 100644 index 00000000000..22271c90588 --- /dev/null +++ b/templates/image.bug/include-modules @@ -0,0 +1,13 @@ +add_modules() { + echo '** Loaded modules:' >&3 + # List modules along with any taint flags. + # We should be able to tell cut to use an empty output delimiter, but + # currently (coreutils 8.13-3) this results in null bytes in the output. + cut -d' ' -f1,7 /proc/modules | sed 's/ //' >&3 + echo >&3 +} + +ask_modules() { + true +} + diff --git a/templates/image.bug/include-network b/templates/image.bug/include-network new file mode 100644 index 00000000000..bd12defe621 --- /dev/null +++ b/templates/image.bug/include-network @@ -0,0 +1,39 @@ +_add_etc_network_interfaces() { + echo '** Network interface configuration:' >&3 + # Hide passwords/keys + awk '$1 ~ /key|pass|^wpa-(anonymous|identity|phase|pin|private|psk)/ { gsub(".", "*", $2); } + $1 == "ethtool-wol" { gsub(".", "*", $3); } + !/^[[:space:]]*\#/ { print; } + ' &3 + echo >&3 +} + +add_network() { + yesno "Include network configuration and status from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces + echo '** Network status:' >&3 + if command -v ip >/dev/null; then + echo '*** IP interfaces and addresses:' >&3 + ip address show >&3 + echo >&3 + fi + echo '*** Device statistics:' >&3 + cat /proc/net/dev >&3 + echo >&3 + if command -v netstat >/dev/null; then + echo '*** Protocol statistics:' >&3 + netstat -s >&3 || true + echo >&3 + fi + echo >&3 +} + +ask_network() { + test $same_system = yep || return 0 + yesno "Include network configuration from this computer? " nop + test $REPLY = yep || return 0 + + _add_etc_network_interfaces +} diff --git a/templates/image.bug/include-pci b/templates/image.bug/include-pci new file mode 100644 index 00000000000..8e6528e5a7b --- /dev/null +++ b/templates/image.bug/include-pci @@ -0,0 +1,12 @@ +add_pci() { + echo '** PCI devices:' >&3 + lspci -nnvv >&3 2>/dev/null || echo 'not available' >&3 + echo >&3 +} + +ask_pci() { + # This information shouldn't vary much between kernel versions, so + # include it anyway. + test $same_system = nop || add_pci +} + diff --git a/templates/image.bug/include-pstore b/templates/image.bug/include-pstore new file mode 100644 index 00000000000..43285bd6a9b --- /dev/null +++ b/templates/image.bug/include-pstore @@ -0,0 +1,77 @@ +_add_pstore_log() { + if [ $# -le 3 ]; then + return + fi + + local backend="$1" + local event="$2" + local date="$3" + + yesno "Include log of $event at $(date -d @$date +%c) stored by $backend?" yep + if [ $REPLY != yep ]; then + return + fi + + echo >&3 + echo "*** Log of $event at $(date -d @$date -Iseconds) from $backend" >&3 + + shift 3 + for file in "$@"; do + tail -n +2 "$file" | sed 's/^<.>//' >&3 + done +} + +add_pstore() { + local backend + local i + local j + local file + local date + local head + local event + local log_files + + if ! mountpoint -q /sys/fs/pstore; then + return 0 + fi + + set -- /sys/fs/pstore/dmesg-*-1 + backend=${1#*/dmesg-} + backend=${backend%-1} + if [ "$backend" = '*' ]; then + return 0 + fi + + i=1 + while [ -f /sys/fs/pstore/dmesg-$backend-$i ]; do + file=/sys/fs/pstore/dmesg-$backend-$i + head="$(head -1 "$file")" + + # Is this the first part of a log? + if [ "x${head% Part1}" != "x$head" ]; then + # Flush previous log, if any + _add_pstore_log "$backend" "$event" "$date" $log_files + + event="${head% Part1}" + date=$(stat -c %Y $file) + log_files= + j=1 + fi + + if [ "x$head" = "x$event Part$j" ]; then + # Each part is prepended to the list, because they're numbered + # backward in log history + log_files="$file $log_files" + j=$((j + 1)) + fi + + i=$((i + 1)) + done + + # Flush last log, if any + _add_pstore_log "$backend" "$event" "$date" $log_files +} + +ask_pstore() { + add_pstore +} diff --git a/templates/image.bug/include-usb b/templates/image.bug/include-usb new file mode 100644 index 00000000000..e8eb67e42d1 --- /dev/null +++ b/templates/image.bug/include-usb @@ -0,0 +1,11 @@ +add_usb() { + echo '** USB devices:' >&3 + lsusb >&3 2>/dev/null || echo 'not available' >&3 + echo >&3 +} + +ask_usb() { + # This information shouldn't vary much between kernel versions, so + # include it anyway. + test $same_system = nop || add_usb +} diff --git a/templates/image.bug/presubj b/templates/image.bug/presubj new file mode 100644 index 00000000000..59b891acb96 --- /dev/null +++ b/templates/image.bug/presubj @@ -0,0 +1,8 @@ +Please ensure that you are currently running the kernel version that you +are reporting on. This will allow your bug report to include useful +diagnostic information about the running kernel. + +If you are reporting that the kernel fails to boot, please use a digital +camera, serial console or netconsole to record the boot messages and +attach these to your report. You can use the kernel parameter +'boot_delay=1000' to slow down the boot messages. diff --git a/templates/image.bug/script b/templates/image.bug/script new file mode 100644 index 00000000000..8e0b5d557d7 --- /dev/null +++ b/templates/image.bug/script @@ -0,0 +1,46 @@ +#!/bin/bash +set -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +dir="$(dirname $0)" + +. "$dir"/info + +for file in "$dir"/include-*; do + name="$(echo $file | sed -e 's,^.*/include-,,')" + hooks+=($name) + . "$file" +done + +if [ "$RELEASE" == "$(uname -r)" ]; then + running_ver="$(uname -v)" + running_ver="${running_ver#* $DISTRIBUTOR }" + running_ver="${running_ver%% *}" + if [ "$running_ver" != "$SOURCEVERSION" ]; then + cat </dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff --git a/templates/image.preinst.in b/templates/image.preinst.in new file mode 100755 index 00000000000..8a5658ecd1b --- /dev/null +++ b/templates/image.preinst.in @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=@abiname@@localversion@ +image_path=/boot/@image-stem@-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff --git a/templates/image.prerm.in b/templates/image.prerm.in new file mode 100755 index 00000000000..f1bde29b115 --- /dev/null +++ b/templates/image.prerm.in @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=@abiname@@localversion@ +image_path=/boot/@image-stem@-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff --git a/templates/lintian-overrides.perf.in b/templates/lintian-overrides.perf.in new file mode 100644 index 00000000000..858faa782ef --- /dev/null +++ b/templates/lintian-overrides.perf.in @@ -0,0 +1,3 @@ +# These executables are needed to handle processes running in compat mode +linux-perf-@version@: binary-from-other-architecture usr/lib/perf_@version@-core/perf-read-vdso32 +linux-perf-@version@: binary-from-other-architecture usr/lib/perf_@version@-core/perf-read-vdsox32 diff --git a/templates/tests-control.main.in b/templates/tests-control.main.in new file mode 100644 index 00000000000..62497c67ae0 --- /dev/null +++ b/templates/tests-control.main.in @@ -0,0 +1,4 @@ +Tests: selftests +Restrictions: breaks-testbed, needs-root, isolation-machine +Depends: kexec-tools, python3, gcc, make, libpopt-dev, gcc-multilib [amd64], bc, fuse, libfuse-dev, pkg-config +Classes: smp diff --git a/tests/control b/tests/control new file mode 100644 index 00000000000..11208746cbe --- /dev/null +++ b/tests/control @@ -0,0 +1,5 @@ +Tests: selftests +Restrictions: breaks-testbed, needs-root, isolation-machine +Depends: kexec-tools, python3, gcc, make, libpopt-dev, gcc-multilib [amd64], bc, fuse, libfuse-dev, pkg-config, linux-image-4.9.0-1-alpha-generic [alpha], linux-image-4.9.0-1-alpha-smp [alpha], linux-image-4.9.0-1-amd64-unsigned [amd64], linux-image-4.9.0-1-rt-amd64-unsigned [amd64], linux-image-4.9.0-1-arm64-unsigned [arm64], linux-image-4.9.0-1-marvell [armel], linux-image-4.9.0-1-armmp-unsigned [armhf], linux-image-4.9.0-1-armmp-lpae-unsigned [armhf], linux-image-4.9.0-1-parisc [hppa], linux-image-4.9.0-1-parisc64-smp [hppa], linux-image-4.9.0-1-686-unsigned [i386], linux-image-4.9.0-1-686-pae-unsigned [i386], linux-image-4.9.0-1-rt-686-pae-unsigned [i386], linux-image-4.9.0-1-m68k [m68k], linux-image-4.9.0-1-4kc-malta [mips mipsel], linux-image-4.9.0-1-5kc-malta [mips mipsel mips64 mips64el], linux-image-4.9.0-1-octeon [mips mipsel mips64 mips64el], linux-image-4.9.0-1-loongson-3 [mipsel mips64el], linux-image-4.9.0-1-powerpc-unsigned [powerpc], linux-image-4.9.0-1-powerpc-smp-unsigned [powerpc], linux-image-4.9.0-1-powerpc64-unsigned [powerpc], linux-image-4.9.0-1-powerpcspe [powerpcspe], linux-image-4.9.0-1-powerpc64 [ppc64], linux-image-4.9.0-1-powerpc64le-unsigned [ppc64el], linux-image-4.9.0-1-s390x-unsigned [s390x], linux-image-4.9.0-1-sh7751r [sh4], linux-image-4.9.0-1-sh7785lcr [sh4], linux-image-4.9.0-1-sparc64 [sparc64], linux-image-4.9.0-1-sparc64-smp [sparc64] +Classes: smp + diff --git a/tests/selftests b/tests/selftests new file mode 100644 index 00000000000..c19064ca61a --- /dev/null +++ b/tests/selftests @@ -0,0 +1,88 @@ +#!/bin/bash -eu + +PATH=/usr/sbin:/sbin:/usr/bin:/bin + +getconfig() { + debian/bin/getconfig.py "$@" +} + +# Look up current ABI name and 'localversion' (featureset/flavour) suffixes +abiname=$(getconfig version abiname) +arch=$(dpkg --print-architecture) +localversion=() +for featureset in $(getconfig base $arch featuresets); do + if [ "$(getconfig base '' $featureset enabled || echo True)" = True ]; then + for flavour in $(getconfig base $arch $featureset flavours); do + if [ "$featureset" = none ]; then + localversion+=(-$flavour) + else + localversion+=(-$featureset-$flavour) + fi + done + fi +done +steps=${#localversion[*]} + +case "${ADT_REBOOT_MARK:-}" in + "") + step=-1 + ;; + step*) + step=${ADT_REBOOT_MARK#step} + ;; +esac + +if [ "$step" -ge 0 ]; then + ver=$abiname${localversion[$step]} + + if [ "$(uname -r)" != "$ver" ]; then + echo >&2 "Should be running: $ver" + echo >&2 "Actually running: $(uname -r)" + else + cp -lR . $ADTTMP/build + cd $ADTTMP/build + make headers_install + + # Ignore compiler warnings + { + make -C tools/testing/selftests && + make -C tools/testing/selftests/memfd build_fuse + } 2>&1 || echo >&2 "Build failed" + + # Enable testing CLONE_USERNS by unprivileged users + sysctl kernel.unprivileged_userns_clone=1 + + # Some tests will write to stderr despite being successful, + # and the exit code from make will be 0 even if tests failed. + # So we have to do some post-analysis... + set -o pipefail + { + make -C tools/testing/selftests quicktest=1 run_tests && + make -C tools/testing/selftests/cpu-hotplug run_full_test && + make -C tools/testing/selftests/memory-hotplug run_full_test && + make -C tools/testing/selftests/memfd run_fuse && + make -C tools/testing/selftests/timers run_destructive_tests + } 2>&1 | tee $ADTTMP/log + set +o pipefail + if grep -E '\[(FAIL|UNSUPPORTED)\]|recipe for target .run_tests. failed' $ADTTMP/log | \ + grep -q -v \ + -e '^selftests: fw_userhelper.sh \[FAIL\]' \ + -e 'ftrace - function profiler with function tracing \[UNSUPPORTED\]' \ + -e '^selftests: ftracetest \[FAIL\]' \ + -e '|| echo .*\[FAIL\]' \ + ; then + echo >&2 "Unexpected failures found" + fi + fi +fi + +step=$((step + 1)) + +if [ "$step" -lt "$steps" ]; then + # Load the next kernel + ver=$abiname${localversion[$step]} + kexec -l /boot/vmlinuz-$ver --initrd /boot/initrd.img-$ver --reuse-cmdline + /tmp/autopkgtest-reboot step$step +fi + +exit 0 diff --git a/upstream/signing-key.pgp b/upstream/signing-key.pgp new file mode 100644 index 0000000000000000000000000000000000000000..f8324867b794d8346ca8741614e3a892c59da242 GIT binary patch literal 6867 zcma)=RZtwYB+q91TMJUkZ)-5 zsCh9nI&j0iM!DsCoczX8{Y8tETq-p(%C=rO3I3ck@2ixp=FeRKPxA$5yIl_`ZnTo& z!t)}dIkvZo1r~rcsm%!U$=7bpo$xyq+|tO~XB0D&%uWuzlIpkRJ^`1_&g}r`w`S4X z-aZ!;YcShxkmrjRxVIHXaGBcRxxa2U;krqbS3#t}52q@$%vkTaG!-eP)XEYrw)>2m zD{-^w!bL_rAN9MvV1o%y3LM(@q!Z_gycb0_eLE(Z3FS{V+F;G+g5`^g1iuKLb0+DK z)t)XKqA^itB#<%Pu-0Au!o=1d3SX_^Q3y_!)cGQ!jiHaD=@C+xiddF~wUL#9*J}NB zJ88NBgRnN#(}p%ZM zxjNN+V@wkOFAmomlt8U|0fP+-1KUU@1_G1IxVf5HS%WQI$mu1N#XgdA@Bx7=>>Ml{ z91P)bya+h3C@_?WaB{i@>TtyHNa(02$nbDTcxb37=maIi3Nq_A)VfiP&OSo>YW z$H}4Cs3PH5Fk=Z+hYvdMdYLdo)n7O@cLLnE-o)O?dMpLcJX~e(CS&|!%8Bp8849C{ zdJ(H(-vpH4x~p@dCkYVM*CsrD zIe~;Zltr1hdq?$KS^z^tCmrj0b}{%RC$J1xEi!Q|;a&1d(N>=&S`aZbrZ9&x>7ZM& zr@S!(sTY~cLzkk=&LOjya_lh&r{f}GI5jfK`DK?T)MuXGn}UptjFn{X+3p+dpD za9N&AGrD7bpD^=$Xk$t@+L;GbgnRL=IS?jbe`vMOUj1>{kWmshkgk30)E+rW+w{SE z1Y}kTW)jgkv_s~fGYl0;-R#}vD?TTpT5OaRACyu>KiODi zavx8eJa17lfkMMRP=hMt6~nd?KjkR;Q@?fIXj^IlP08(<7qcQcobffY0&$X}Xw7Nu z!p?REV@k2bdE43B-i+YusFn*tGrkiNeZ!+5W!&2S-Ep5IBn}R`){y#>#G|_sB*YMP zK+L6uL!wUH@){vOCLacj<_)|f=Nk6w{uN2UP2aobSqMa@0GJBw$l|Q>_}GyqK068s zmoTkK2h~F~og79%`;NjpGkQMxL}WI}!9>kN@xe%Oi?0MY69&sER3sFd;qTCWoc)f} zE&-$F)&$2q>ULIWvFX2*L>rtLqQkxzoUt4*f;!u}73unYR6DB0ha)M$KXK>mHJcuB zk01@u>eLCuu@_I+C0-d}-c7>wAa(d$*SVHMv*xxc{O}^b);;JnJV-M>t0zBf{(2r^ zqg65{?Ce4!EYK@^4A$Cm{yqf=fR048#bn?db!gwk;4zZG@izXbc#f-#V4u&W4Z`tq zsBM_#q+1Z?aICjmhn`7!*P!lAw)tx|W|^>cL4pgh$A=k%Npml+-|4o;yzP)6G}f9}ApKTf+?z$tgK~+b+KkCatw;3E6pDz%WWLIi=sq&E`;(X{mcOApL75rD)N1Z_Q}WJ4QEo#m zUHx1*sL=5GE>cDnOr!tc3-BtCFI-$Pxjku2dRV1WabrVwR& zTkzJf*-d_C^YCMmJS0W)MeED6bL!Kem0Qpv?9(DnCcS<9#30r&&CG%x3y)0)W998^ zy5|~*dGz*MvC4250w}zv14WQ6Aq&I)13s@XN>av#R>tlI7_TyNM)rNH6Kxh}WaA?{ zNQgsU-exP(2++9I7{C}555F?0=R6dFla`6NA+99zL58WEBSV!QT*fPfsGV>x>QT*V;X~D>$WvztIZ9`FRwUTqw<6%75wRDgI zPE3zimQhucNrwm><3%5*StaYPg9M>vtRR z*gE3PBOT6dD4oKD&UypuFi1@JMpTHvtBI?A|rOT zVe^e$3=&xgO1x=m7REdsj6A!RA7Fe-w@jQUY${8dt{D2sT`WT#5M3LFOhPx_A;EjmWf_&zhcK&TB_$m_!Nwq^pCoQ9Nd^er za8qJFHB%2~tOekb+vdFz_?4|3-$b~!DQARByv7Js8A+&n+eF-=6!mueG(&*93SrBv zz=6`wSai$PYNPdr?#vqio)QP8qIF_VBQ<9gB!iYs(D8%W&|{m~iESV!SR#2ViF~qL zzk)|}Y=Gjm=-A6!)% zC_Ry>12Tb&_Noc#(?Ry&y09F(t3N|#cDrtDZV%~>RHTdqJSE%}twf?7snzoQq)o3o z&QbWSk!v^7_nlyO{T)u$a7+zgp0erG8;6a+(Y6|SL;23gROP0jM*X~Rtj^0H@iMzY zL{5`cu1>!SPTKtjEKM@>*_Uw$Vk-5YgeQf=CPI#B`(BEhgZdlI zw`DDR(#cH0_=r6DvrerQPy2t7(HjvE}mtPO^k`a&Q~CK$>?bqnj! zWHY#I1%H+JZv>KGyVnfX?DBa?=X)egt`{VlU$=kd)i=Dql%*13f zKcsK+dOa?Mi=0EngYV3>+O?l{Lh-lZ&rZK4-_%X}4)$xq_V#Qzy~9AdyQ68$yk`X~ z4`#txj@+A@@+Ie}cMAcJD?E|5UJVi6k9gE{iMskdmT6MjXb7X+D)h+U||nKrM~!bVI>UZ0Z!J%QfH^8LxB7PxG5R z)(A_wla*#GQpB)*C*A3P5<|(iY3@&AEbdV==XFy5Hu&he;@|pQOxBATX^63Jbi(U{ zKbNR~9zi_~k$(6k&?g23uFnQ8+I2Wd#059gaxN!V;40D3Q|u?!V?DR*7vTcDY-cl> zDL_cI)5^$Oo>g@=`Ue@oH;d~o&4SwY)AL^oRX>!WaqO`L!j}Hd71%U2-%1>&t`41n zW%t>bAucVJq#SPnWDu;T->Ect{^FL8fq0lU@5V^g!Ft(XP@X!ydtA}fz_-3_gFO$a z!D=axqvh(?+&WUo?GBeaA~WzCvl~k99c_0nTaF96i^3E|4H+<4a$Yli&8)eln3enE{KlKw!{;2aAqP?!~L!o<LCyEx>nXDiLJkR5I zPL=o5tz0jCG0xl{(+|OTX8$xRMQLY{CAqw_gNYT3jES?Wy$P6{Ucnmd=1Fb~at4F! z$X#4bOzlAA&LBIGi3^C_#o7}5r-c2v^A8{#P;uNRx=0tf4dCa-yZgtvj21$ z6gX5g^glfe9`=8F81G8QuyKO5kdZzX%#fLpVuy@nuA#QeXmg>|bS0L1&BOBNa;`Fm zl-!YV>G~XC_$eJX`H?Ux*V)Rkm5|s^$3-P!p;K>%JL{S~$RrnxoR?aUH|wp{lkayr z0-;Aya=q7?(d#Vr0!uE%wGO&q>)%FW>jR*u=<8O%(HB*u=b{AlaaU-134 zQUMB>c(f`oUp`QV(w#^`wYcWpN|OZ#=l7LzQge>VQvn$t4Sjcb0PAD}M(cf~(*qY5 z;ct$9=FLuhvfVG9B40Jg?796U8E-vljgV_SZcG(iAO{dB+wLYS%)77I2p!kUUZLDx_Yh5t4YSdryvBnU!@d7iSIEMatsgq$9Q z9jJ^+CVWqiS&7n@)YCMpPv!U`sOUyIjk`R0Ztda`uXfaq(?cb?%DhA868$0`ex6i^ zEAIvZ@>nFX#?(10&F|D%x0tcE#J4*R5Mdt?5)q?2P0^Xh8}~Y5HowpMhQ`N-t3eG% zgpeo?e(^W@;rd;X2OK%y41jQ!Tj9_Flcsi1-=bzdm%8Xl8b|qvAQsqeO9-q^fWJu@ z05qpTowEQfYS^i3egX#>&A%@5?_{c{r0CiYw`>29pNjwqSQODJ`u_P&3(rdesmMwj z(`NSbp`cm@2ZHe8o+Te&ft^Oj#t1D|@|+}J(WB4_>g>9texQB=x}LH}-aSXiwJ8}L zYkIL&55r5u=EJ!%f;IEIati{O*DkaPY-um-ZSAiJn#qd!#G0ketV&vIDWVU=794@} zrTxfvF~EC`be?^&XYhSo+VsxO!#>c!^(!@~B0geAO3#{{{FH5If~ zWk6}?UN$)*kvW`)Va2;u)dq{cMUD`K>znk_{eeU4&@@_A>OKTn+mz^u_t`3JTYB}F zMrL!bYS`FB5U4mha_zMq_X53es<_fzwnq( zrlEZ*6%D)eIlB>kzas(StzX@pQ3HTkDAl+ZVWP=u>f~6NJ-IBA=XfdBqE(AjkdFn9 zCafjtJI(#p4Le(Pe#+%3*PTRdWQM(Jnkk-^N9ZSi0+cBO$otq)IvCxG2%A)HWvmA3 z0Z1>hmu3@(ZDC)AJK;oJd0iC$Y!@-VQ|yxyjlsVfGO=q zAvXWs+moM*RXZIaJ`x(c)>Sq76&!-g zW1a2cH2eB{om*E}nf3ryq~tk|^GFnh^q9V(B_ zt@C^oZK)zWK^x6DzW7X@X`9hH3=MI4q?Reh@_qR&-dmtvp^?5DX#J4XIxV3`4z+O&(v@M?Z@L#cQCsa)m`ac08;b6P#hxP#)Hy`eM;0dk4e0zxKQx692M{bMiD<>gg)lDNj!fdlSFCsZaDj?EG@+3l2Ie= zR{2!SEk5sJ>dp7Sjy;7PqrM<1KsR-e5}-C~->Y_kYegtzEF;}xED#EiMER^AAQUb5 z{ykaN)-8cHk|(56vG-f3qZWECs_@MYe?obIWhZ3;*)OFZXdI3bR7yGlRw!P zEivJ8iz!f!#*9kVj8)=!qGR%Na=67qct;9jcR68;636BVp~kJeqO;^fv0jFjtg1 zXcE6Yyyc1fHX`_lNfGTh)L90}6aqtDsLYwjNOHD|8|5Z&)EVr}aq^1gO7hhpsmjUv za|hltU51rwzwZ*AQY)7P*c=|?qep)JD5Lx7&F|T3NA$|}QMnz0h#OQpSSV98@yF1sc{?_6P1X>=TpJNH8rKP!@3XzczI*06tz=RaZn zFO>cj*8fe+Au;l+WTa{`aYl(ym8ZO9gt24`aKeqvA7bql@^$^O=I+LWRw+N2Qaj=T zT3uaD)S=o!4#eE?QB>y|=RB6tdQr9PPa=>RUaND;a+o?-J?cv|QP9@$3l@c>6lo-X zG}D}AS0HobSSS93Z#P6clV#;yI3(7MO+>hYTt}|M|5M4ZvH$t@{X4i|&*J8R>G<%< z(*sDGPSeLgKy%jq$GnaP`V=!5x